From 4f83f39f8343116ef9fbb1b5fb0da7f8a064124d Mon Sep 17 00:00:00 2001 From: Martin Kagamino Lehoux Date: Tue, 29 Sep 2026 00:22:56 +0200 Subject: Add live search to the project routines list --- src/routes/projects/[id]/+page.svelte | 28 +++++++++++++++++++++++++--- 1 file changed, 25 insertions(+), 3 deletions(-) (limited to 'src/routes') diff --git a/src/routes/projects/[id]/+page.svelte b/src/routes/projects/[id]/+page.svelte index 8d62a39..7d9a146 100644 --- a/src/routes/projects/[id]/+page.svelte +++ b/src/routes/projects/[id]/+page.svelte @@ -13,6 +13,7 @@ } from '$lib/shared/routine-metrics'; import SectionTitle from '$lib/components/SectionTitle.svelte'; import { formatDayMonth } from '$lib/shared/temporal'; + import { filterByName } from '$lib/shared/filter-items'; let { data, form } = $props(); @@ -35,6 +36,11 @@ (a, b) => b.overdueRatio - a.overdueRatio || a.name.localeCompare(b.name), ); } + + let routineSearch = $state(''); + const filteredRoutines = $derived( + filterByName(sorted(data.routines), routineSearch), + );
@@ -102,8 +108,17 @@

{form.error}

{/if} + + - {#if data.routines.length === 0} -

Aucune routine

+ {#if filteredRoutines.length === 0} +

+ {data.routines.length === 0 ? 'Aucune routine' : 'Aucune correspondance.'} +

{/if} {#if data.archived.length > 0} @@ -220,6 +237,11 @@ flex-shrink: 0; } + .routine-search { + width: 100%; + margin-bottom: 0.75rem; + } + .page-footer { margin-top: 2rem; display: flex; -- cgit v1.3