diff --git a/frontend/src/lib/components/ResourceList.svelte b/frontend/src/lib/components/ResourceList.svelte index 0fa4ac7b..157fa480 100644 --- a/frontend/src/lib/components/ResourceList.svelte +++ b/frontend/src/lib/components/ResourceList.svelte @@ -130,6 +130,14 @@ emptyHint?: string; /** Empty-state icon-registry name (e.g. "star", "clock", "trash"). */ emptyIcon?: string; + /** + * Call-to-action rendered inside the empty state. Used by + * `/files` to surface a "Show hidden files" button when the + * folder holds only dotfiles the user has chosen to hide — the + * page-specific hint stays in `emptyHint`, the action goes + * here. `` renders it below the hint text. + */ + emptyAction?: Snippet; hasMore?: boolean; onloadmore?: () => void; /** Show the path/location column (list view only). */ @@ -318,6 +326,7 @@ emptyText, emptyHint, emptyIcon, + emptyAction, hasMore = false, onloadmore, showPath = true, @@ -1156,7 +1165,9 @@ icon={emptyIcon} title={emptyText ?? t('common.empty', 'Nothing here yet.')} hint={emptyHint} - /> + > + {#if emptyAction}{@render emptyAction()}{/if} + {:else}
{#if grouped && filesStore.viewMode === 'list'} diff --git a/frontend/src/routes/files/[...path]/+page.svelte b/frontend/src/routes/files/[...path]/+page.svelte index 5d040664..e344d395 100644 --- a/frontend/src/routes/files/[...path]/+page.svelte +++ b/frontend/src/routes/files/[...path]/+page.svelte @@ -1615,6 +1615,23 @@ onitemdragleave={rlOnItemDragLeave} onitemdrop={rlOnItemDrop} > + {#snippet emptyAction()} + + {#if hiddenCount > 0} + + {/if} + {/snippet} + {#snippet breadcrumb()}