import React, { useState } from 'react'; import { UserIcon, CalculatorIcon, CalendarIcon, CloudArrowUpIcon, ClipboardDocumentListIcon, ArrowPathIcon } from '@heroicons/react/24/outline'; export default function Dashboard() { // 狀態區 const [user, setUser] = useState({ name: '', age: '', height: '', weight: '', id: '' }); const [userCreated, setUserCreated] = useState(false); const [foodDate, setFoodDate] = useState(''); const [foodCal, setFoodCal] = useState(''); const [foodCarb, setFoodCarb] = useState(''); const [foodProtein, setFoodProtein] = useState(''); const [foodMsg, setFoodMsg] = useState(''); const [bmi, setBmi] = useState(null); const [bmiMsg, setBmiMsg] = useState(''); const [waterDate, setWaterDate] = useState(''); const [water, setWater] = useState(''); const [waterMsg, setWaterMsg] = useState(''); const [aiResult, setAiResult] = useState(''); const [history, setHistory] = useState([]); // 處理邏輯 const handleCreateUser = (e) => { e.preventDefault(); setUserCreated(true); setUser({ ...user, id: '6' }); }; const handleAddFood = (e) => { e.preventDefault(); setFoodMsg('Food log added successfully.'); setHistory([...history, { date: foodDate, cal: foodCal, carb: foodCarb, protein: foodProtein }]); }; const handleCalcBmi = () => { if (user.height && user.weight) { const bmiVal = (user.weight / ((user.height / 100) ** 2)).toFixed(2); setBmi(bmiVal); let msg = ''; if (bmiVal < 18.5) msg = '體重過輕,建議均衡飲食與適度運動'; else if (bmiVal < 24) msg = '正常範圍,請繼續保持'; else msg = '體重過重,建議增加運動與飲食控制'; setBmiMsg(msg); } }; const handleAddWater = (e) => { e.preventDefault(); let msg = ''; if (water >= 2000) msg = '今日補水充足!'; else msg = '今日飲水量不足,請多補充水分!'; setWaterMsg(msg); }; const handleAi = () => { setAiResult('AI 分析結果:雞肉沙拉,約 350 kcal'); }; const handleQueryHistory = () => { setHistory(history); }; return (
日期 | 熱量 | 碳水 | 蛋白質 |
---|---|---|---|
{h.date} | {h.cal} | {h.carb} | {h.protein} |