From 741141168b537037f39a56eebe9505e8e1a35dd1 Mon Sep 17 00:00:00 2001 From: Marcel Raddatz Date: Sat, 4 Apr 2026 18:56:42 +0200 Subject: [PATCH] feat(shopping): build main +page.svelte with responsive layout and empty states Mobile/desktop responsive shopping list page with: - Three empty states (no plan, no list, all checked) - Unchecked/checked item sections with divider - Add custom item form - Desktop right panel with recipe references - Filtered staples info Co-Authored-By: Claude Opus 4.6 --- .../src/routes/(app)/shopping/+page.svelte | 231 +++++++++++++++++- 1 file changed, 230 insertions(+), 1 deletion(-) diff --git a/frontend/src/routes/(app)/shopping/+page.svelte b/frontend/src/routes/(app)/shopping/+page.svelte index 158e40e..e0ea640 100644 --- a/frontend/src/routes/(app)/shopping/+page.svelte +++ b/frontend/src/routes/(app)/shopping/+page.svelte @@ -1 +1,230 @@ -

Einkaufsliste

+ + + +
+
+ +
+ +
+ {#if !weekPlan} + +
+

+ Noch kein Wochenplan für diese Woche. +

+ + Zum Wochenplaner + +
+ {:else if !shoppingList} + +
+

+ Einkaufsliste noch nicht erstellt. +

+ {#if isPlanner} +

+ Generiere die Liste aus dem Wochenplan. +

+ {:else} +

+ Der Planer muss die Liste zuerst erstellen. +

+ {/if} +
+ {:else} + + {#if uncheckedItems.length > 0} +
+ {#each uncheckedItems as item (item.id)} + + {/each} +
+ {:else if totalItems > 0} +

+ Alles erledigt! +

+ {/if} + + +
+ +
+ + + {#if filteredStaplesCount > 0} +
+

+ {filteredStaplesCount} Grundzutaten ausgeblendet · + Vorrat bearbeiten +

+
+ {/if} + + + {#if checkedItems.length > 0} +
+

+ Abgehakt ({checkedCount}) +

+
+ {#each checkedItems as item (item.id)} + + {/each} +
+
+ {/if} + {/if} +
+
+ + +