diff options
Diffstat (limited to 'src/routes/groceries/catalog/+page.svelte')
| -rw-r--r-- | src/routes/groceries/catalog/+page.svelte | 33 |
1 files changed, 4 insertions, 29 deletions
diff --git a/src/routes/groceries/catalog/+page.svelte b/src/routes/groceries/catalog/+page.svelte index 4cbcc27..74a82e8 100644 --- a/src/routes/groceries/catalog/+page.svelte +++ b/src/routes/groceries/catalog/+page.svelte @@ -1,6 +1,8 @@ <script lang="ts"> import { enhance } from '$app/forms'; import { SvelteSet } from 'svelte/reactivity'; + import BestRef from '$lib/components/BestRef.svelte'; + import { groupByCategory } from '$lib/shared/group-by-category'; let { data, form } = $props(); @@ -20,24 +22,6 @@ if (selectedIds.has(id)) selectedIds.delete(id); else selectedIds.add(id); } - - function groupByCategory(items: typeof catalogItems) { - const groups: Record<string, typeof catalogItems> = {}; - for (const item of items) { - const key = item.categoryName ?? 'Non catégorisé'; - (groups[key] ??= []).push(item); - } - const result: [string, typeof catalogItems][] = []; - for (const cat of data.categories) { - if (groups[cat.name]?.length > 0) { - result.push([cat.name, groups[cat.name]]); - } - } - if (groups['Non catégorisé']?.length > 0) { - result.unshift(['Non catégorisé', groups['Non catégorisé']]); - } - return result; - } </script> {#if catalogItems.length > 0} @@ -91,7 +75,7 @@ <p class="empty">Aucun résultat</p> {:else} <form method="POST" action="?/toggle" use:enhance> - {#each groupByCategory(filteredItems) as [cat, items] (cat)} + {#each groupByCategory(filteredItems, data.categories) as [cat, items] (cat)} <h3 class="category-name">{cat}</h3> <ul class="item-list"> {#each items as item (item.id)} @@ -112,16 +96,7 @@ <span class="item-text"> <span class:checked={item.checked}>{item.name}</span> {#if item.bestRef} - <span class="best-ref" - >{item.bestRef.reference} - {#if item.bestRef.price && item.bestRef.unit} - {item.bestRef.price.toFixed(2)} - {item.bestRef.unit} - {/if} - {#if item.bestRef.qualityScore != null} - ({item.bestRef.qualityScore}/100) - {/if} - </span> + <BestRef ref={item.bestRef} /> {/if} </span> </button> |
