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 (
{/* 上方切換選單間隔 */}
用戶 飲食 BMI 水分 AI 歷史
{/* 用戶卡片 */}
用戶資料
setUser({ ...user, name: e.target.value })} /> setUser({ ...user, age: e.target.value })} /> setUser({ ...user, height: e.target.value })} /> setUser({ ...user, weight: e.target.value })} />
{userCreated && ( <>
用戶ID:6
姓名:{user.name}
年齡:{user.age}
身高:{user.height} cm
體重:{user.weight} kg
)}
{/* 飲食紀錄卡片 */}
飲食紀錄
setFoodDate(e.target.value)} /> setFoodCal(e.target.value)} /> setFoodCarb(e.target.value)} /> setFoodProtein(e.target.value)} />
{foodMsg &&
{foodMsg}
}
{/* BMI 卡片 */}
BMI 與建議
{bmi &&
BMI:{bmi}
} {bmiMsg &&
{bmiMsg}
}
{/* 水分卡片 */}
水分攝取
setWaterDate(e.target.value)} /> setWater(e.target.value)} />
{waterMsg &&
{waterMsg}
}
{/* AI 卡片 */}
AI 食物辨識
{aiResult &&
{aiResult}
}
{/* 歷史紀錄卡片 */}
歷史紀錄查詢
{history.map((h, i) => ( ))}
日期 熱量 碳水 蛋白質
{h.date} {h.cal} {h.carb} {h.protein}
{userCreated && (
用戶資料:
姓名:{user.name}
年齡:{user.age}
身高:{user.height} cm
體重:{user.weight} kg
用戶固定測試ID:6
)}
{/* 簡單樣式 */}
); }