diff --git a/app/page.tsx b/app/page.tsx index 6bfa26b..a3fd595 100644 --- a/app/page.tsx +++ b/app/page.tsx @@ -1,15 +1,18 @@ import Link from "next/link"; -import Image from "next/image"; import { createClient } from "@/lib/supabase/server"; import { addDays, + dishCodes, + entriesFor, formatDateLong, formatPrice, mondayOf, + todayISO, WEEKDAYS, } from "@/lib/menu"; -import { logoUrl } from "@/lib/types"; +import { logoUrl, SITE_TITLE } from "@/lib/types"; import type { CodeItem, MenuEntry, Section } from "@/lib/types"; +import PublicMobileMenu from "@/components/PublicMobileMenu"; export default async function Home({ searchParams, @@ -19,6 +22,7 @@ export default async function Home({ const { woche } = await searchParams; const monday = mondayOf(woche); const friday = addDays(monday, 4); + const currentWeek = mondayOf(todayISO()); const days = WEEKDAYS.map((weekday, i) => ({ weekday, iso: addDays(monday, i), @@ -30,7 +34,9 @@ export default async function Home({ supabase.from("sections").select("*").order("sort"), supabase .from("menu_entries") - .select("id, menu_date, section_key, position, dish:dishes(id, name, price)") + .select( + "id, menu_date, section_key, position, dish:dishes(id, name, price, allergens, additives)" + ) .gte("menu_date", monday) .lte("menu_date", friday) .order("position") @@ -46,9 +52,6 @@ export default async function Home({ const additives = (additivesRes.data ?? []) as CodeItem[]; const logo = logoUrl(settingsRes.data?.logo_path); - const cell = (iso: string, sectionKey: string) => - entries.filter((e) => e.menu_date === iso && e.section_key === sectionKey); - return (
| + {days.map((d) => ( + |
+ {d.weekday}
+ + {formatDateLong(d.iso)} + |
+ ))}
+
|---|---|
|
+ {s.label}
+ {s.time_range}
+ |
+ {days.map((d) => (
+
+ {entriesFor(entries, d.iso, s.key).map((e) => {
+ const codes = dishCodes(e.dish);
+ return (
+
+ {e.dish.name}
+ {codes && {codes}}
+ {" – "}
+ {formatPrice(e.dish.price)}
+
+ );
+ })}
+ |
+ ))}
+
| - {days.map((d) => ( - |
- {d.weekday}
- - {formatDateLong(d.iso)} - |
- ))}
-
|---|---|
|
- {s.label}
- {s.time_range}
- |
- {days.map((d) => (
-
- {cell(d.iso, s.key).map((e) => (
-
- {e.dish.name}
- {" – "}
- {formatPrice(e.dish.price)}
-
- ))}
- |
- ))}
-
–
+ ) : ( + items.map((e) => { + const codes = dishCodes(e.dish); + return ( ++ {e.dish.name} + {codes && {codes}}{" "} + – {formatPrice(e.dish.price)} +
+ ); + }) + )} +