在庫分減らす機能(未完成)

feature-addByRecipeOption
masato.fujita 4 months ago
parent 1fb9ffcbf9
commit 90e2fffb17
  1. 30
      frontend/src/pages/AddRecipe.tsx

@ -18,6 +18,8 @@ import {
DialogActions, DialogActions,
TextField, TextField,
Button, Button,
Checkbox,
FormControlLabel,
Box, Box,
} from '@mui/material'; } from '@mui/material';
import { import {
@ -27,7 +29,7 @@ import {
import AddStuffAmountDialog from '../components/AddStuffAmountDialog'; import AddStuffAmountDialog from '../components/AddStuffAmountDialog';
import { StuffAndCategoryAndAmount } from '../types/types'; import { StuffAndCategoryAndAmount } from '../types/types';
import EditAmountDialog from '../components/EditAmountDialog'; 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 { useNavigate, useParams } from 'react-router-dom';
import MessageAlert from '../components/MessageAlert'; import MessageAlert from '../components/MessageAlert';
import { useMessage } from '../components/MessageContext'; import { useMessage } from '../components/MessageContext';
@ -60,6 +62,8 @@ const AddRecipe: React.FC = () => {
const [editingItemIdx, setEditingItemIdx] = useState(0); const [editingItemIdx, setEditingItemIdx] = useState(0);
//削除確認ダイアログの表示状態 //削除確認ダイアログの表示状態
const [openDeleteDialog, setOpenDeleteDialog] = useState(false); const [openDeleteDialog, setOpenDeleteDialog] = useState(false);
// チェックボックスが押されたかどうか
const [checked, setChecked] = useState(false);
// エラーメッセージ表示 // エラーメッセージ表示
const { showErrorMessage, showSuccessMessage } = useMessage(); const { showErrorMessage, showSuccessMessage } = useMessage();
@ -150,7 +154,25 @@ const AddRecipe: React.FC = () => {
console.log("yes2"); console.log("yes2");
return false; 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('レシピが保存されて買うものリストに追加されました!'); showSuccessMessage('レシピが保存されて買うものリストに追加されました!');
navigate('/tasks'); navigate('/tasks');
} }
@ -337,6 +359,10 @@ const AddRecipe: React.FC = () => {
/> />
</div> </div>
<FormControlLabel
control={<Checkbox checked={checked} onChange={(e) => setChecked(e.target.checked)} />}
label={<Typography fontSize="clamp(8px, 1.5vw, 14px)"></Typography>}
/>
</DialogContent> </DialogContent>
<DialogActions> <DialogActions>
<Button onClick={() => setOpenNumOfPeapleDialog(false)}></Button> <Button onClick={() => setOpenNumOfPeapleDialog(false)}></Button>

Loading…
Cancel
Save