kei615ykhm / logic-loom-nextjs14

LogicLoom is a memo app for engineers created as personal developers. There are no release plans. We will proceed with development while learning practical usage of Next.js, TypeScript, TailwindCSS, Vercel, and Supabase.
0 stars 0 forks source link

zodを使用して堅牢なバリデーションチェックを実装する #16

Closed kei615ykhm closed 1 month ago

kei615ykhm commented 1 month ago

現在のコードにzodライブラリによる堅牢なバリデーションチェックを実装し、型安全なコードにリファクタリングを行う。

現状

今後の予定

  1. src/schemas ディレクトリの作成

    • src/schemas/memoSchema.ts: メモのスキーマを定義
  2. src/types ディレクトリの更新

    • src/types/index.ts: zodスキーマから型を生成
  3. src/utils ディレクトリの作成

    • src/utils/zodParser.ts: 汎用的なzodパース関数を実装
  4. src/hooks/useManager.ts の更新

    • zodスキーマを使用してバリデーションを実装
    • 新規メモ作成時にバリデーションを適用
  5. src/components/memos/MemoForm.tsx の更新

    • フォームの送信時にzodスキーマを使用してバリデーションを実装
    • バリデーションエラーの表示機能を追加
  6. src/app/page.tsx の更新

    • 必要に応じて、新しいバリデーション機能に対応するように更新

ディレクトリ構成

src/
├── app/
│   ├── page.tsx
│   └── layout.tsx
├── components/
│   └── memos/
│       ├── MemoList.tsx
│       └── MemoForm.tsx
├── hooks/
│   └── useMemoManager.ts
├── schemas/           // 新しく追加
│   └── memoSchema.ts  // 新しく追加
├── types/
│   └── index.ts
└── utils/             // 新しく追加
    └── zodParser.ts   // 新しく追加

TODOリスト

kei615ykhm commented 1 month ago

変更点

  1. src/hooks/useManager.tsの更新を行う際に、バリデーションチェックの詳細な動作確認を行うためにローカルストレージへの保存機能を追加しました。
  2. src/schemas/memoSchema.tsの内容と重複するため、src/types/index.tsを削除し、各ファイルのインポートパスを書き換えました。
kei615ykhm commented 1 month ago

22 による大改修で情報が古くなってしまったため、こちらのIssueはクローズします。