wip: add dish

backend-tobuy-adddish
Masaharu.Kato 5 months ago
parent 6d568ec6bf
commit ab4996091e
  1. 33
      frontend/src/pages/AddDishes2.tsx

@ -31,35 +31,36 @@ import {
Add as AddIcon, Delete as DeleteIcon, ShoppingBasket as ShoppingBasketIcon, Add as AddIcon, Delete as DeleteIcon, ShoppingBasket as ShoppingBasketIcon,
SoupKitchen as SoupKitchenIcon SoupKitchen as SoupKitchenIcon
} from '@mui/icons-material'; } from '@mui/icons-material';
import { Task } from '../types/types'; import { Task, ToBuy } from '../types/types';
import { TASK_ERRORS } from '../constants/errorMessages'; import { TASK_ERRORS } from '../constants/errorMessages';
import { GENERAL_ERRORS } from '../constants/errorMessages'; import { GENERAL_ERRORS } from '../constants/errorMessages';
import CategoryDropDown from "../components/CategoryDropDown"; import CategoryDropDown from "../components/CategoryDropDown";
// 新規タスクの初期状態(画面表示用) // 新規タスクの初期状態(画面表示用)
const EMPTY_TASK = { id: 0, title: '', amount: 0, completed: false }; const EMPTY_TOBUY: Omit<ToBuy, 'tobuy_id' | 'stuff_id'> & { stuff_id: number | null, category: string } & { newAddition: boolean } = {
stuff_id: null,
stuff_name: '',
amount: 0,
shop: '',
category: '',
newAddition: false,
}
// 新規タスクの初期状態(データベース登録用) // 新規タスクの初期状態(データベース登録用)
const EMPTY_TASK_DATA_BASE = { id: 0, title: '', amount: 0, completed: false }; const EMPTY_TASK_DATA_BASE = { id: 0, title: '', amount: 0, completed: false };
interface Empty_Task {
title: string; // 食材名
amount: number; // 食材の個数
completed: boolean; //
}
const AddDishes2: React.FC = () => { const AddDishes2: React.FC = () => {
const receivedData = localStorage.getItem("dishName"); const receivedData = localStorage.getItem("dishName");
// タスク一覧の状態管理 // タスク一覧の状態管理
const [tasks, setTasks] = useState<Task[]>([]); const [tasks, setTasks] = useState<Task[]>([]);
const [addtasks, setAddTasks] = useState<Empty_Task[]>([]); const [addtasks, setAddTasks] = useState<ToBuy[]>([]);
// エラーメッセージの状態管理 // エラーメッセージの状態管理
const [error, setError] = useState(false); const [error, setError] = useState(false);
// 新規タスク作成ダイアログの表示状態 // 新規タスク作成ダイアログの表示状態
const [openDialog, setOpenDialog] = useState(false); const [openDialog, setOpenDialog] = useState(false);
// 新規タスクの入力内容 // 新規タスクの入力内容
const [newTask, setNewTask] = useState(EMPTY_TASK); const [newTask, setNewTask] = useState(EMPTY_TOBUY);
// コンポーネントマウント時にタスク一覧を取得 // コンポーネントマウント時にタスク一覧を取得
useEffect(() => { useEffect(() => {
@ -117,7 +118,7 @@ const AddDishes2: React.FC = () => {
newAddTasks.push(newTask); newAddTasks.push(newTask);
setAddTasks(newAddTasks); setAddTasks(newAddTasks);
setOpenDialog(false); // ダイアログを閉じる setOpenDialog(false); // ダイアログを閉じる
setNewTask(EMPTY_TASK); // 入力内容をリセット setNewTask(EMPTY_TOBUY); // 入力内容をリセット
// fetchTasks(); // 作成後のタスク一覧を再取得 // fetchTasks(); // 作成後のタスク一覧を再取得
} catch (error) { } catch (error) {
console.error(`${TASK_ERRORS.CREATE_FAILED}:`, error); console.error(`${TASK_ERRORS.CREATE_FAILED}:`, error);
@ -126,12 +127,12 @@ const AddDishes2: React.FC = () => {
const handleCreateTask_DataBase = async () => { const handleCreateTask_DataBase = async () => {
try { try {
// for (let i = 0; i < addtasks.length; i++) { for (let i = 0; i < addtasks.length; i++) {
// // await taskApi.createTask(addtasks[i]); // await taskApi.createTask(addtasks[i]);
// await toBuyApi.addToBuy(addtasks[i]); await toBuyApi.addToBuy(addtasks[i]);
// } }
setOpenDialog(false); // ダイアログを閉じる setOpenDialog(false); // ダイアログを閉じる
setNewTask(EMPTY_TASK); // 入力内容をリセット setNewTask(EMPTY_TOBUY); // 入力内容をリセット
// fetchTasks(); // 作成後のタスク一覧を再取得 // fetchTasks(); // 作成後のタスク一覧を再取得
} catch (error) { } catch (error) {
console.error(`${TASK_ERRORS.CREATE_FAILED}:`, error); console.error(`${TASK_ERRORS.CREATE_FAILED}:`, error);

Loading…
Cancel
Save