From d60fe7bc91ccde60c7d8a06d73ad4b7b0e9f543e Mon Sep 17 00:00:00 2001 From: Dinh-Van Colomban Date: Tue, 11 Feb 2025 02:25:30 +0100 Subject: [PATCH] feat(list): adds custom empty snippet support for sections --- src/lib/list/NeoList.svelte | 9 +++++---- src/lib/list/neo-list.model.ts | 4 ++++ 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/src/lib/list/NeoList.svelte b/src/lib/list/NeoList.svelte index 0bb05ec..902fe67 100644 --- a/src/lib/list/NeoList.svelte +++ b/src/lib/list/NeoList.svelte @@ -18,6 +18,7 @@ type NeoListMethods, type NeoListProps, type NeoListRenderContext, + type NeoListSection, type NeoListSelectedItem, type NeoListSelectEvent, showDivider, @@ -297,9 +298,9 @@ {/snippet} -{#snippet emptyItem()} - {#if customEmpty} - {@render customEmpty(context)} +{#snippet emptyItem(itemEmpty: NeoListSection['empty'] = customEmpty)} + {#if itemEmpty} + {@render itemEmpty(context)} {:else}
@@ -314,7 +315,7 @@ .filter(({ item }) => filter(item)) .sort((a, b) => sort(a.item, b.item))} {#if !visible?.length} - {@render emptyItem()} + {@render emptyItem(section?.empty)} {:else} {#each visible as { item, index } (item.id ?? index)} diff --git a/src/lib/list/neo-list.model.ts b/src/lib/list/neo-list.model.ts index 5d68360..d0ec862 100644 --- a/src/lib/list/neo-list.model.ts +++ b/src/lib/list/neo-list.model.ts @@ -138,6 +138,10 @@ export type NeoListSection; + /** + * Optional snippet to display when the section is empty. + */ + empty?: Snippet<[NeoListContext]>; /** * Optional props to pass to the section container. */