Skip to content

Todo の state 管理の変更 #16

@watagit

Description

@watagit

#14 がマージされ次第取り組むイシューです。

✨ Summary

現状、以下のように Todo 周りの state を管理していると思います。

type TodoType = {
  title: string;
};

const Component = () => {
  // Todo のタイトル
  const [todos, setTodos] = useState<TodoType[]>(initialTodos);
  // Todo の状態(消化済みか否か)
  const [status, setStatus] = useState<boolean[]>([false, false, false]);
}

これらは1つの state として管理したほうが拡張性が上がると思われます。
以下のように型定義を変更して、リファクタリングしてみてください。

type TodoType = {
  // タイトル
  title: string;
  // 状態(消化済みか否か)
  isCompleted: boolean;
};

const initialTodos: TodoType[] = [
  { title: '資料を作る', isCompleted: false },
  { title: '歯医者に行く', isCompleted: false },
  { title: '課題をやる', isCompleted: false },
];

const Component = () => {
  // ✨ タイトルと状態をひとつの state で管理する
  const [todos, setTodos] = useState<TodoType[]>(initialState);
}

これらの型定義を変更するにあたって、ロジックも変更する必要があるので、やってみてください 🙄
余談ですが、これらの型定義が適切に反映されればチェックボックス周りのバグも直りそうな気がしてます!

🔥 Requirements

  • 別々に管理されている state がひとつにまとめられる
  • ロジックが適切に変更される

✅ Tasks

  • type TodoTypeisCompletedパラメーターを追加する(Todo の型を定義している全てのファイル)
  • initialTodosisCompletedのデータを追加する
  • ロジック周りを変更する(少し難易度が高いかもので詰まったら discord でみんなに聞いてください〜)

Metadata

Metadata

Assignees

Labels

change仕様変更

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions