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を進めていく上で別途検討の必要あり
Where and how it seems bad?
PostButton.tsxにてRecordを作成する際、langs: [string]を強要してしまっているWhat it shoud become?
Lexicon上では
langsは未定義が許容されるパラメータであるため、Recordでの未設定の許可および、PostButtonコンポーネントが取り扱う変数について、undefinedが許容されるべきただし、i18n対応 https://github.com/nkte8/skyshare/milestone/3 により細かい部分で対処が変わってくるので、要すり合わせ
PostButton.tsxPostForm.tsx