Skip to content

[Improve code]: Recordのlangsパラメータのundefinedは許容されるべき #95

@nekono-dev

Description

@nekono-dev

Where and how it seems bad?

PostButton.tsxにてRecordを作成する際、langs: [string]を強要してしまっている

export const Component = ({
    postText,
    language,
...
}: {
    postText: string
    language: string
...
            let Record: record = {
                text: postText,
                createdAt: new Date(),
                langs: [language],
                $type: "app.bsky.feed.post",
                labels:
                    selfLabel !== null
                        ? {
...

What it shoud become?

Lexicon上ではlangsは未定義が許容されるパラメータであるため、Recordでの未設定の許可および、PostButtonコンポーネントが取り扱う変数について、undefinedが許容されるべき

ただし、i18n対応 https://github.com/nkte8/skyshare/milestone/3 により細かい部分で対処が変わってくるので、要すり合わせ
PostButton.tsx

export const Component = ({
    postText,
    language,
...
}: {
    postText: string
    language: string | null // <------- nullを許容
...
            let Record: record = {
                text: postText,
                createdAt: new Date(),
                langs: language !== null ? [language] : undefined, // <---- undefinedを許容
                $type: "app.bsky.feed.post",
                labels:
                    selfLabel !== null
                        ? {
...

PostForm.tsx

const Component = ({
...
}) => {
    // Post内容を格納する変数とディスパッチャー
    const [postText, setPostText] = useState<string>("")
    // Postの実行状態を管理する変数とディスパッチャー
    const [language, setLanguage] = useState<string | null>("ja") // <----- nullを許容/初期値についてはi18nを進めていく上で別途検討の必要あり

Metadata

Metadata

Assignees

No one assigned

    Labels

    RemindsLow Priority IssueinvalidThis doesn't seem right

    Projects

    Status

    No status

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions