aboutsummaryrefslogtreecommitdiff
path: root/src/routes/+page.svelte
diff options
context:
space:
mode:
Diffstat (limited to 'src/routes/+page.svelte')
-rw-r--r--src/routes/+page.svelte35
1 files changed, 34 insertions, 1 deletions
diff --git a/src/routes/+page.svelte b/src/routes/+page.svelte
index 0e9e1ac..325d15a 100644
--- a/src/routes/+page.svelte
+++ b/src/routes/+page.svelte
@@ -4,6 +4,9 @@
let { data, form } = $props();
let name = $state('');
+
+ let listItems = $derived(data?.items?.filter((i) => !i.checked) ?? []);
+ let catalogItems = $derived(data?.items?.filter((i) => i.checked) ?? []);
</script>
<h1>Groceries</h1>
@@ -23,11 +26,31 @@
<p class="error">{form.error}</p>
{/if}
+<h2>List</h2>
+
+<form method="POST" action="?/toggle" use:enhance>
+ <ul class="item-list">
+ {#each listItems as item (item.id)}
+ <li>
+ <button name="id" value={item.id} type="submit">
+ {item.name}
+ </button>
+ </li>
+ {/each}
+ </ul>
+</form>
+
+{#if listItems.length === 0}
+ <p class="empty">Nothing to buy</p>
+{/if}
+
<hr />
+<h2>Catalog</h2>
+
<form method="POST" action="?/toggle" use:enhance>
<ul class="item-list">
- {#each data?.items ?? [] as item (item.id)}
+ {#each catalogItems as item (item.id)}
<li>
<button name="id" value={item.id} type="submit">
{item.name}
@@ -37,6 +60,10 @@
</ul>
</form>
+{#if catalogItems.length === 0}
+ <p class="empty">No items yet</p>
+{/if}
+
<style>
.add-form {
display: flex;
@@ -94,4 +121,10 @@
.item-list li button:hover {
background: #f5f5f5;
}
+
+ .empty {
+ color: #999;
+ font-size: 0.875rem;
+ margin-top: 0.5rem;
+ }
</style>