|
|
@ -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); |
|
|
|