diff --git a/frontend/src/pages/TaskListPage.tsx b/frontend/src/pages/TaskListPage.tsx index d8ac976..40d58fd 100644 --- a/frontend/src/pages/TaskListPage.tsx +++ b/frontend/src/pages/TaskListPage.tsx @@ -67,16 +67,26 @@ const TaskListPage: React.FC = () => { //数量変更ダイアログの表示状態 const [openAmountDialog, setOpenAmountDialog] = useState(false); + //削除確認ダイアログの表示状態 + const [openDeleteDialog, setOpenDeleteDialog] = useState(false); + const [selectedTask, setSelectedTask] = useState(0); const [selectedEditingTask, setSelectedEditingTask] = useState({ - tobuyId: 0, - stuffId: 0, - stuffName: "", - amount: 0, - shop: undefined, -}); - + tobuyId: 0, + stuffId: 0, + stuffName: "", + amount: 0, + shop: undefined, + }); + + const [selectedDeleteTask, setSelectedDeleteTask] = useState({ + tobuyId: 0, + stuffId: 0, + stuffName: "", + amount: 0, + shop: undefined, + }); const [newToBuy, setNewToBuy] = useState(EMPTY_TOBUY); @@ -194,7 +204,7 @@ const TaskListPage: React.FC = () => { * 入力されたタスク情報をAPIに送信して変更 * 作成後はダイアログを閉じ、入力内容をリセット */ - const handleUpdateTask = async () => { + const handleUpdateTask = async () => { try { if (isNaN(selectedEditingTask.amount)) { console.log('数量が正しくありません.'); @@ -211,19 +221,19 @@ const TaskListPage: React.FC = () => { } }; -// /** -// * クリックされたタスクの情報を取得するための関数 -// * @param tobuyId -// * @returns tobuyIdが一致するtoBuy -// */ -// const getToBuyDetails = (tobuyId: number): ToBuy => { -// console.log(tobuyId) -// const result = tobuys.find((toBuy) => toBuy.tobuyId === tobuyId); -// if(result === undefined){ -// throw new Error(`tobuyId: ${tobuyId} に対応するデータが見つかりません`); -// } -// return result; -// }; + // /** + // * クリックされたタスクの情報を取得するための関数 + // * @param tobuyId + // * @returns tobuyIdが一致するtoBuy + // */ + // const getToBuyDetails = (tobuyId: number): ToBuy => { + // console.log(tobuyId) + // const result = tobuys.find((toBuy) => toBuy.tobuyId === tobuyId); + // if(result === undefined){ + // throw new Error(`tobuyId: ${tobuyId} に対応するデータが見つかりません`); + // } + // return result; + // }; return ( @@ -256,7 +266,7 @@ const TaskListPage: React.FC = () => { - {/* 買い物リスト:食材情報記入ボタン */} + {/* 買い物リスト:食材情報記入ボタン */} {`× ${tobuy.amount}`} @@ -311,7 +321,11 @@ const TaskListPage: React.FC = () => { edge="end" sx={{ marginRight: 0, marginLeft: 0 }} aria-label="delete" - onClick={() => handleDeleteTask(tobuy.tobuyId)} + onClick={() => {//handleDeleteTask(tobuy.tobuyId) + setSelectedDeleteTask(tobuy) + setOpenDeleteDialog(true) + } + } > @@ -507,7 +521,7 @@ const TaskListPage: React.FC = () => { - + {/* 材料名表示 */} { + + {/* 削除ダイアログ */} + setOpenDeleteDialog(false)} disableScrollLock={true} + fullWidth + maxWidth="sm" + sx={{ overflow: "hidden" }} + > + 食材の削除 + + {selectedDeleteTask && ( + <> + {selectedDeleteTask.stuffName}を削除します。 + ⚠️ 注意: 削除すると復元できません。 + + + + )} + + );