From dc98e438c5ee25fe5e64280445d94b546af25972 Mon Sep 17 00:00:00 2001 From: "akito.nishiwaki" Date: Tue, 10 Jun 2025 16:06:48 +0900 Subject: [PATCH] =?UTF-8?q?=E4=BE=A1=E6=A0=BC=E4=BF=AE=E6=AD=A3=E3=80=81?= =?UTF-8?q?=E5=BA=97=E8=88=97=E8=BF=BD=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- frontend/src/pages/TaskListPage.tsx | 43 ++++++++++++++++++++--------- 1 file changed, 30 insertions(+), 13 deletions(-) diff --git a/frontend/src/pages/TaskListPage.tsx b/frontend/src/pages/TaskListPage.tsx index 7c49132..d577f1e 100644 --- a/frontend/src/pages/TaskListPage.tsx +++ b/frontend/src/pages/TaskListPage.tsx @@ -34,7 +34,7 @@ import { Add as AddIcon, Delete as DeleteIcon, ShoppingBasket as ShoppingBasketIcon, SoupKitchen as SoupKitchenIcon } from '@mui/icons-material'; -import { ToBuy, Stuff, Stock } from '../types/types'; +import { ToBuy, Stuff, /*Stock*/ } from '../types/types'; import { TOBUY_ERRORS } from '../constants/errorMessages'; //import { FaCarrot } from "react-icons/fa6"; //エラー起きる いったん保留 @@ -64,7 +64,7 @@ const TaskListPage: React.FC = () => { //在庫登録ダイアログの表示状態 const [openInfoDialog, setOpenInfoDialog] = useState(false); - + const [selectedTask, setSelectedTask] = useState(0); const [newToBuy, setNewToBuy] = useState(EMPTY_TOBUY); @@ -73,6 +73,8 @@ const TaskListPage: React.FC = () => { const [newStock, setNewStock] = useState(EMPTY_STOCK); + const [newPrice, setNewPrice] = useState("");//入力用の価格(文字列) + // コンポーネントマウント時にタスク一覧を取得 useEffect(() => { @@ -126,14 +128,21 @@ const TaskListPage: React.FC = () => { console.error(`${TOBUY_ERRORS.DELETE_FAILED}:`, error); } }; - + /** * 買うものリストの在庫登録(購入処理)を行うハンドラー */ const handleBuy = async (tobuyId: number) => { try { const today = new Date().toISOString().substring(0, 10); - await toBuyApi.buy({tobuyId, ...newStock, lastUpdate: today}); + const parsedPrice = parseInt(newPrice, 10); + if (!isNaN(parsedPrice)) { + setNewStock({ ...newStock, price: parsedPrice }); + }else{ + alert('入力が無効です') + return + } + await toBuyApi.buy({ tobuyId, ...newStock, lastUpdate: today }); //データベースに送信 fetchTasks(); // 削除後の買うもの一覧を再取得 } catch (error) { console.error(`${TOBUY_ERRORS.BUY_FAILED}:`, error); @@ -253,12 +262,13 @@ const TaskListPage: React.FC = () => { {setOpenDialog(true); - //handleNavigate('/AddDishies1'); + onClick={() => { + setOpenDialog(true); + //handleNavigate('/AddDishies1'); }} - //selected={isSelected('/test')} + //selected={isSelected('/test')} + - > @@ -286,7 +296,7 @@ const TaskListPage: React.FC = () => {