From 90e2fffb17379cbe8f12865f692551140b67f069 Mon Sep 17 00:00:00 2001 From: "masato.fujita" Date: Wed, 18 Jun 2025 11:22:46 +0900 Subject: [PATCH] =?UTF-8?q?=E5=9C=A8=E5=BA=AB=E5=88=86=E6=B8=9B=E3=82=89?= =?UTF-8?q?=E3=81=99=E6=A9=9F=E8=83=BD(=E6=9C=AA=E5=AE=8C=E6=88=90)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- frontend/src/pages/AddRecipe.tsx | 30 ++++++++++++++++++++++++++++-- 1 file changed, 28 insertions(+), 2 deletions(-) diff --git a/frontend/src/pages/AddRecipe.tsx b/frontend/src/pages/AddRecipe.tsx index 75678cf..600ab79 100644 --- a/frontend/src/pages/AddRecipe.tsx +++ b/frontend/src/pages/AddRecipe.tsx @@ -18,6 +18,8 @@ import { DialogActions, TextField, Button, + Checkbox, + FormControlLabel, Box, } from '@mui/material'; import { @@ -27,7 +29,7 @@ import { import AddStuffAmountDialog from '../components/AddStuffAmountDialog'; import { StuffAndCategoryAndAmount } from '../types/types'; import EditAmountDialog from '../components/EditAmountDialog'; -import { recipeApi, toBuyApi } from '../services/api'; +import { recipeApi, toBuyApi, stockApi } from '../services/api'; import { useNavigate, useParams } from 'react-router-dom'; import MessageAlert from '../components/MessageAlert'; import { useMessage } from '../components/MessageContext'; @@ -60,6 +62,8 @@ const AddRecipe: React.FC = () => { const [editingItemIdx, setEditingItemIdx] = useState(0); //削除確認ダイアログの表示状態 const [openDeleteDialog, setOpenDeleteDialog] = useState(false); + // チェックボックスが押されたかどうか + const [checked, setChecked] = useState(false); // エラーメッセージ表示 const { showErrorMessage, showSuccessMessage } = useMessage(); @@ -150,7 +154,25 @@ const AddRecipe: React.FC = () => { console.log("yes2"); return false; } - await toBuyApi.addByRecipe(recipeId, numOfPeaple); + await toBuyApi.addByRecipe(recipeId, numOfPeaple, checked); + // const recipeStuffInfo = (await recipeApi.getById(recipeId)).stuffAndAmountArray; + // const recipeStuffId = recipeStuffInfo.map(item => item.stuffId); + // console.log(recipeStuffId); + // const stockStuff = await stockApi.getStocks(); + // const stockedStuffId = stockStuff.filter(stock => recipeStuff.stuffAndAmountArray).map(item => item.id); + // const stockedStuffAmountRecipe = recipeStuff.filter(recipe => (stockStuff.some(stuff => recipe.stuffId === stuff.stuffId))); + // console.log(stockedStuffAmountRecipe) + // const stockedStuffAmountStock = stockStuff.filter(stock => (stockedStuffAmountRecipe.some(stocked => stock.stuffId === stocked.stuffId))); + + // recipeStuff.map(item => { + // await Promise.all(stockStuff.map(async stock => { + // if (item.stuffId == stock.stuffId) + // await toBuyApi.updateToBuy({stuffName: item.stuffName, + // amount: item.amount - stock.amount, + // tobuyId: item.tobuyId, + // stuffId: item.stuffId}); + // })) + // }); showSuccessMessage('レシピが保存されて買うものリストに追加されました!'); navigate('/tasks'); } @@ -337,6 +359,10 @@ const AddRecipe: React.FC = () => { /> + setChecked(e.target.checked)} />} + label={足りない食材のみ登録} + />