{t('nav.favorites', 'Favorites')} · OxiCloud owners.name(id)} {loading} {error} emptyIcon="star" emptyText={t('favorites.empty_state', 'No favorites yet')} emptyHint={t('favorites.empty_hint', 'Star files and folders to find them here quickly')} hasMore={!!cursor} onloadmore={() => load(false, orderByForGroup())} onopen={open} onfavorite={unfavorite} showOwner showPath selectable {contextActions} menuPrepare={async (item) => { // Lazy folder-access probe — fires only when the user actually // opens the context menu on a row, not proactively for every // row on load. Cached in the LRU (see `folderAccess.ts`) so // subsequent right-clicks on the same folder are instant. const pid = parentFolderId(item); if (pid) await probeFolderAccess(pid); }} {groupBys} bind:groupBy bind:reversed onreload={(orderBy, rev) => { cursor = undefined; load(true, orderBy, rev); }} > {#snippet batchActions(sel)} {/snippet} {#if fileViewer.component} {@const FileViewer = fileViewer.component} {/if} {#if moveDialog.component} {@const MoveDialog = moveDialog.component} load(true, orderByForGroup())} /> {/if} {#if shareDialog.component} {@const ShareDialog = shareDialog.component} {/if}