1import{u as S,r as u,t as f,j as e,A as J,n as m,B as p,p as A,C as d,e as i,c as T,d as U,k as I,F as L,U as P,q as E}from"./index-bM8UT4Os.js";import{C as N}from"./chevron-left-Bx_6cTqG.js";import{C as b}from"./chevron-right-RXMaR5IV.js";import{C as F}from"./chevron-up-TG6jWiKP.js";const Y={breakfast:"æ©é¤ ð
",lunch:"åé¤ âï¸",dinner:"æé¤ ð",snack:"å°é£ ð¿"};function z({ingredients:h}){const[s,o]=u.useState(!1);return e.jsxs("div",{"data-loc":"client/src/pages/MealJournal.tsx:21",className:"mt-3 border-t border-border/50 pt-2",children:[e.jsxs("button",{"data-loc":"client/src/pages/MealJournal.tsx:22",onClick:()=>o(!s),className:"flex items-center gap-1 text-xs text-amber-400 hover:text-amber-300 transition-colors w-full",children:[e.jsx(P,{"data-loc":"client/src/pages/MealJournal.tsx:26",className:"w-3 h-3"}),e.jsx("span",{"data-loc":"client/src/pages/MealJournal.tsx:27",className:"font-medium",children:"詳細ææä»½é"}),s?e.jsx(F,{"data-loc":"client/src/pages/MealJournal.tsx:28",className:"w-3 h-3 ml-auto"}):e.jsx(E,{"data-loc":"client/src/pages/MealJournal.tsx:28",className:"w-3 h-3 ml-auto"})]}),s&&e.jsx("div",{"data-loc":"client/src/pages/MealJournal.tsx:31",className:"mt-2 text-xs text-muted-foreground bg-background/50 p-2.5 rounded-md leading-relaxed whitespace-pre-wrap",children:h})]})}function R(){const{user:h}=S(),[s,o]=u.useState(0),[r,j]=u.useState(()=>{const a=new Date;return{year:a.getFullYear(),month:a.getMonth()+1}}),{data:B}=f.meals.getMonthSummary.useQuery({year:r.year,month:r.month}),{data:c,isLoading:w}=f.meals.getMonthMeals.useQuery({year:r.year,month:r.month}),n=u.useMemo(()=>c?c.filter(a=>a.photoUrl).sort((a,t)=>new Date(t.createdAt).getTime()-new Date(a.createdAt).getTime()):[],[c]),l=n[s],y=()=>{s>0&&o(s-1)},v=()=>{s<n.length-1&&o(s+1)},C=()=>{j(a=>a.month===1?{year:a.year-1,month:12}:{...a,month:a.month-1}),o(0)},k=()=>{const a=new Date,t=a.getFullYear()*12+a.getMonth()+1;r.year*12+r.month>=t||(j(x=>x.month===12?{year:x.year+1,month:1}:{...x,month:x.month+1}),o(0))},D=a=>new Date(a).toLocaleDateString("zh-HK",{year:"numeric",month:"long",day:"numeric",weekday:"short"}),M=u.useMemo(()=>{if(!c)return{totalMeals:0,photoDays:0,totalPhotos:0};const a=new Set(c.filter(t=>t.photoUrl).map(t=>{const g=new Date(t.createdAt);return new Date(g.getTime()+480*60*1e3).toISOString().split("T")[0]}));return{totalMeals:c.length,photoDays:a.size,totalPhotos:c.filter(t=>t.photoUrl).length}},[c]);return h?e.jsx(J,{"data-loc":"client/src/pages/MealJournal.tsx:159",children:e.jsx("div",{"data-loc":"client/src/pages/MealJournal.tsx:160",className:"py-6 px-4",children:e.jsxs("div",{"data-loc":"client/src/pages/MealJournal.tsx:161",className:"max-w-3xl mx-auto space-y-5",children:[e.jsxs("div",{"data-loc":"client/src/pages/MealJournal.tsx:163",className:"mb-2",children:[e.jsxs("h1",{"data-loc":"client/src/pages/MealJournal.tsx:164",className:"text-2xl md:text-3xl font-bold flex items-center gap-2 text-foreground",children:[e.jsx(m,{"data-loc":"client/src/pages/MealJournal.tsx:165",className:"w-6 h-6 text-emerald-400"}),"æå¡æ¥èª"]}),e.jsx("p",{"data-loc":"client/src/pages/MealJournal.tsx:168",className:"text-sm text-muted-foreground mt-1",children:"ä½ å
飲飿塿·å² ð¸"})]}),e.jsxs("div",{"data-loc":"client/src/pages/MealJournal.tsx:174",className:"flex items-center justify-center gap-4",children:[e.jsx(p,{"data-loc":"client/src/pages/MealJournal.tsx:175",variant:"ghost",size:"sm",onClick:C,children:e.jsx(N,{"data-loc":"client/src/pages/MealJournal.tsx:176",className:"w-4 h-4"})}),e.jsxs("span",{"data-loc":"client/src/pages/MealJournal.tsx:178",className:"text-lg font-semibold",children:[r.year," å¹´ ",r.month," æ"]}),e.jsx(p,{"data-loc":"client/src/pages/MealJournal.tsx:181",variant:"ghost",size:"sm",onClick:k,children:e.jsx(b,{"data-loc":"client/src/pages/MealJournal.tsx:182",className:"w-4 h-4"})})]}),e.jsxs("div",{"data-loc":"client/src/pages/MealJournal.tsx:187",className:"grid grid-cols-3 gap-3",children:[e.jsx(d,{"data-loc":"client/src/pages/MealJournal.tsx:188",className:"card-premium !border-emerald-500/30",children:e.jsxs(i,{"data-loc":"client/src/pages/MealJournal.tsx:189",className:"p-3 text-center",children:[e.jsx("p",{"data-loc":"client/src/pages/MealJournal.tsx:190",className:"text-2xl font-bold text-emerald-400",children:M.totalPhotos}),e.jsx("p",{"data-loc":"client/src/pages/MealJournal.tsx:191",className:"text-xs text-muted-foreground",children:"å¼µæå¡ç¸"})]})}),e.jsx(d,{"data-loc":"client/src/pages/MealJournal.tsx:194",className:"card-premium !border-blue-500/30",children:e.jsxs(i,{"data-loc":"client/src/pages/MealJournal.tsx:195",className:"p-3 text-center",children:[e.jsx("p",{"data-loc":"client/src/pages/MealJournal.tsx:196",className:"text-2xl font-bold text-blue-400",children:M.photoDays}),e.jsx("p",{"data-loc":"client/src/pages/MealJournal.tsx:197",className:"text-xs text-muted-foreground",children:"æ¥æå½±ç¸"})]})}),e.jsx(d,{"data-loc":"client/src/pages/MealJournal.tsx:200",className:"card-premium !border-orange-500/30",children:e.jsxs(i,{"data-loc":"client/src/pages/MealJournal.tsx:201",className:"p-3 text-center",children:[e.jsx("p",{"data-loc":"client/src/pages/MealJournal.tsx:202",className:"text-2xl font-bold text-orange-400",children:M.totalMeals}),e.jsx("p",{"data-loc":"client/src/pages/MealJournal.tsx:203",className:"text-xs text-muted-foreground",children:"é¤è¨é"})]})})]}),w?e.jsx(d,{"data-loc":"client/src/pages/MealJournal.tsx:210",className:"card-premium",children:e.jsx(i,{"data-loc":"client/src/pages/MealJournal.tsx:211",className:"py-12 text-center",children:e.jsxs("div",{"data-loc":"client/src/pages/MealJournal.tsx:212",className:"animate-pulse space-y-3",children:[e.jsx("div",{"data-loc":"client/src/pages/MealJournal.tsx:213",className:"h-48 bg-muted rounded-lg"}),e.jsx("div",{"data-loc":"client/src/pages/MealJournal.tsx:214",className:"h-4 bg-muted rounded w-1/2 mx-auto"})]})})}):n.length>0?e.jsxs(d,{"data-loc":"client/src/pages/MealJournal.tsx:219",className:"card-premium overflow-hidden",children:[e.jsx(T,{"data-loc":"client/src/pages/MealJournal.tsx:220",className:"pb-3",children:e.jsxs(U,{"data-loc":"client/src/pages/MealJournal.tsx:221",className:"text-lg flex items-center gap-2",children:[e.jsx(m,{"data-loc":"client/src/pages/MealJournal.tsx:222",className:"w-4 h-4"}),"æå¡ç¸ç°¿ (",n.length," å¼µ)"]})}),e.jsxs(i,{"data-loc":"client/src/pages/MealJournal.tsx:226",children:[e.jsxs("div",{"data-loc":"client/src/pages/MealJournal.tsx:228",className:"relative mb-4",children:[e.jsx("div",{"data-loc":"client/src/pages/MealJournal.tsx:229",className:"bg-white/10 dark:bg-zinc-900/10 backdrop-blur-xl rounded-xl overflow-hidden h-72 flex items-center justify-center",children:e.jsx("img",{"data-loc":"client/src/pages/MealJournal.tsx:230",src:l.photoUrl||void 0,alt:`Meal ${s+1}`,className:"w-full h-full object-contain"})}),n.length>1&&e.jsxs(e.Fragment,{children:[e.jsx("button",{"data-loc":"client/src/pages/MealJournal.tsx:240",onClick:y,disabled:s===0,className:"absolute left-2 top-1/2 -translate-y-1/2 bg-black/60 hover:bg-black/80 p-2 rounded-full disabled:opacity-30 text-foreground transition-all",children:e.jsx(N,{"data-loc":"client/src/pages/MealJournal.tsx:245",className:"w-5 h-5"})}),e.jsx("button",{"data-loc":"client/src/pages/MealJournal.tsx:247",onClick:v,disabled:s===n.length-1,className:"absolute right-2 top-1/2 -translate-y-1/2 bg-black/60 hover:bg-black/80 p-2 rounded-full disabled:opacity-30 text-foreground transition-all",children:e.jsx(b,{"data-loc":"client/src/pages/MealJournal.tsx:252",className:"w-5 h-5"})})]}),e.jsxs("div",{"data-loc":"client/src/pages/MealJournal.tsx:258",className:"absolute bottom-2 right-2 bg-black/60 text-foreground text-xs px-2 py-1 rounded-full",children:[s+1," / ",n.length]})]}),e.jsxs("div",{"data-loc":"client/src/pages/MealJournal.tsx:264",className:"bg-muted/50 p-3 rounded-lg mb-4",children:[e.jsxs("div",{"data-loc":"client/src/pages/MealJournal.tsx:265",className:"flex justify-between items-start",children:[e.jsxs("div",{"data-loc":"client/src/pages/MealJournal.tsx:266",className:"space-y-1",children:[e.jsx("div",{"data-loc":"client/src/pages/MealJournal.tsx:267",className:"flex items-center gap-2",children:e.jsx("span",{"data-loc":"client/src/pages/MealJournal.tsx:268",className:"text-sm font-medium",children:Y[l.mealType]||l.mealType})}),e.jsxs("p",{"data-loc":"client/src/pages/MealJournal.tsx:272",className:"text-xs text-muted-foreground flex items-center gap-1",children:[e.jsx(I,{"data-loc":"client/src/pages/MealJournal.tsx:273",className:"w-3 h-3"}),D(l.createdAt)]}),(()=>{if(!l.foodItems)return null;const a=typeof l.foodItems=="string"?JSON.parse(l.foodItems):l.foodItems;return!Array.isArray(a)||a.length===0?null:e.jsx("div",{"data-loc":"client/src/pages/MealJournal.tsx:284",className:"flex flex-wrap gap-1 mt-1",children:a.slice(0,3).map((t,g)=>e.jsx("span",{"data-loc":"client/src/pages/MealJournal.tsx:286",className:"text-xs bg-emerald-500/20 text-emerald-300 px-2 py-0.5 rounded-full",children:t.name},g))})})()]}),e.jsxs("div",{"data-loc":"client/src/pages/MealJournal.tsx:297",className:"text-right",children:[e.jsxs("p",{"data-loc":"client/src/pages/MealJournal.tsx:298",className:"text-lg font-bold text-emerald-400 flex items-center gap-1",children:[e.jsx(L,{"data-loc":"client/src/pages/MealJournal.tsx:299",className:"w-4 h-4"}),Math.round(Number(l.totalCalories))]}),e.jsx("p",{"data-loc":"client/src/pages/MealJournal.tsx:302",className:"text-xs text-muted-foreground",children:"kcal"}),e.jsxs("div",{"data-loc":"client/src/pages/MealJournal.tsx:303",className:"flex gap-2 mt-1 text-xs",children:[e.jsxs("span",{"data-loc":"client/src/pages/MealJournal.tsx:304",className:"text-blue-300",children:["P:",Math.round(Number(l.protein)),"g"]}),e.jsxs("span",{"data-loc":"client/src/pages/MealJournal.tsx:305",className:"text-yellow-300",children:["C:",Math.round(Number(l.carbs)),"g"]}),e.jsxs("span",{"data-loc":"client/src/pages/MealJournal.tsx:306",className:"text-red-300",children:["F:",Math.round(Number(l.fat)),"g"]})]})]})]}),l.ingredients&&e.jsx(z,{"data-loc":"client/src/pages/MealJournal.tsx:313",ingredients:l.ingredients})]}),e.jsx("div",{"data-loc":"client/src/pages/MealJournal.tsx:318",className:"grid grid-cols-5 ga
1p-2",children:n.slice(0,20).map((a,t)=>e.jsx("button",{"data-loc":"client/src/pages/MealJournal.tsx:320",onClick:()=>o(t),className:`relative rounded-lg overflow-hidden h-14 border-2 transition-all ${t===s?"border-emerald-500 ring-1 ring-emerald-500/50":"border-transparent hover:border-gray-600"}`,children:e.jsx("img",{"data-loc":"client/src/pages/MealJournal.tsx:329",src:a.photoUrl||void 0,alt:`Thumbnail ${t+1}`,className:"w-full h-full object-cover"})},a.id))})]})]}):e.jsx(d,{"data-loc":"client/src/pages/MealJournal.tsx:340",className:"card-premium",children:e.jsxs(i,{"data-loc":"client/src/pages/MealJournal.tsx:341",className:"py-12 text-center",children:[e.jsx(m,{"data-loc":"client/src/pages/MealJournal.tsx:342",className:"w-12 h-12 text-foreground/70 mx-auto mb-3"}),e.jsx("p",{"data-loc":"client/src/pages/MealJournal.tsx:343",className:"text-muted-foreground mb-1",children:"å¢åæä»²æªææå¡ç¸"}),e.jsx("p",{"data-loc":"client/src/pages/MealJournal.tsx:344",className:"text-xs text-muted-foreground mb-4",children:"å»ãå½±ç¸èé£ã影張ç¸è¨ä½ä½ é£åå©å¦ï¼"}),e.jsxs(p,{"data-loc":"client/src/pages/MealJournal.tsx:347",onClick:()=>window.location.href="/food-recognition",className:"bg-emerald-500 hover:bg-emerald-600",children:[e.jsx(m,{"data-loc":"client/src/pages/MealJournal.tsx:351",className:"w-4 h-4 mr-2"}),"å»å½±ç¸"]})]})})]})})}):e.jsx(J,{"data-loc":"client/src/pages/MealJournal.tsx:141",title:"æå¡æ¥èª",showBack:!0,children:e.jsx("div",{"data-loc":"client/src/pages/MealJournal.tsx:142",className:"py-6 px-4",children:e.jsxs("div",{"data-loc":"client/src/pages/MealJournal.tsx:143",className:"card-premium mx-auto max-w-md p-6 text-center",children:[e.jsx("div",{"data-loc":"client/src/pages/MealJournal.tsx:144",className:"mx-auto mb-4 flex h-12 w-12 items-center justify-center rounded-2xl bg-emerald-500/15 text-emerald-400",children:e.jsx(m,{"data-loc":"client/src/pages/MealJournal.tsx:145",className:"h-6 w-6"})}),e.jsx("h1",{"data-loc":"client/src/pages/MealJournal.tsx:147",className:"text-xl font-bold text-foreground",children:"æ³çè¿ä½ æéå
ç¸ï¼"}),e.jsx("p",{"data-loc":"client/src/pages/MealJournal.tsx:148",className:"mt-2 text-sm leading-6 text-muted-foreground",children:"ç»å
¥å¾å°±å¯ä»¥ææä»½ç¿»æ¥é£²é£ç¸çãé¤é»åçé¤è¨éã"}),e.jsx(p,{"data-loc":"client/src/pages/MealJournal.tsx:149",className:"mt-5 w-full",onClick:()=>{window.location.href=A()},children:"ç»å
¥éå§çæ¥èª"})]})})})}export{R as default};
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.