{ if (e.key === 'Enter') { e.preventDefault(); handleAdd(false); } }} oninput={(e) => { const val = e.currentTarget.value.trim().toLowerCase(); const match = data.catalog.find( (item) => item.name.toLowerCase() === val, ); if (match) { name = match.name; handleAdd(false); } }} />
{#each data.catalog as item (item.id)}
{/each}
handleAdd(false)} >+
handleAdd(true)} >→
{#if addError || form?.error}
{addError || form?.error}
{/if} {#if localItems.length === 0}
Rien à acheter
{:else}
{#each groupByCategory(localItems) as [cat, items] (cat)}
{cat}
{#each items as item (item.id)}
{item.name} {#if item.bestRef}
{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}
{/if}
→
{/each}
{/each}
{/if}