Add menu item allergens, drop nav Help link, animate customizer price

- Menu items can now list allergens (shared catalog + join table),
  shown on the menu grid and item detail pages when applicable, and
  editable from the admin menu item form.
- Removed the top-nav "Help" link now that the footer links to it.
- The item customization page's price now uses the sliding
  AnimatedNumber, matching the basket line price.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
2026-09-17 11:50:17 +02:00
co-authored by Claude Sonnet 5
parent 917fc275f9
commit 8481032e30
20 changed files with 1141 additions and 27 deletions
+24
View File
@@ -145,6 +145,29 @@ export const seedGhostKitchen = async (db: NodePgDatabase<typeof schema>) => {
])
.returning()
const allergens = await db
.insert(schema.allergens)
.values([
{ name: 'Gluten' },
{ name: 'Dairy' },
{ name: 'Eggs' },
{ name: 'Soy' },
{ name: 'Peanuts' },
{ name: 'Tree nuts' },
{ name: 'Sesame' },
])
.returning()
const allergenByName = Object.fromEntries(
allergens.map((allergen) => [allergen.name, allergen]),
)
await db.insert(schema.menuItemAllergens).values([
{ menuItemId: pizza.id, allergenId: allergenByName['Gluten'].id },
{ menuItemId: pizza.id, allergenId: allergenByName['Dairy'].id },
{ menuItemId: burger.id, allergenId: allergenByName['Gluten'].id },
{ menuItemId: burger.id, allergenId: allergenByName['Sesame'].id },
])
return {
brand,
machineTags: {
@@ -156,6 +179,7 @@ export const seedGhostKitchen = async (db: NodePgDatabase<typeof schema>) => {
machines: { prep1, oven1, grill1, assembly1 },
menuItems: { pizza, burger },
menuItemOptions: { pizza: pizzaOptions, burger: burgerOptions },
allergens,
}
}