(ui.activeContext = "library")} onkeydown={onKey} onclick={(e) => { if (e.target === e.currentTarget) lib.focusedId = null; }} tabindex="0" >
{#if offlineManager.queuedRequests.length > 0 && !ui.miniplayer} {/if}
row.key} bufferSize={600} startMargin={headerHeight} onscroll={handleScroll} onscrollend={handleScrollEnd} as="ul" item="li" > {#snippet children( row, )} {#if row.kind === "section"} {#snippet actions()} {#if row.key === "browse"} {/if} {/snippet} {:else if row.kind === "offline-status"}
{#if auth.authFailed} {t("offline.auth_failed_notice")} {:else} {t( effectiveAutoSyncMode() === "none" ? "offline.offline_notice" : "offline.offline_notice_auto_sync", )} {/if}
{:else if row.kind === "download-status"}
{t("offline.download_progress", { current: offlineManager.downloadProgress.current, total: offlineManager.downloadProgress.total, })}
{:else if row.kind === "item"} {@const state = nodeStates[row.key]} activateNode(row)} onAdd={(asNext) => addNode(row, asNext)} onMenu={(nextMenu) => (menu = nextMenu)} onUpdate={row.onUpdate} onDelete={row.onDelete} entryIndex={pendingEntryIndex(row.key)} entryGen={searchGen} onEntryAnimationEnd={finishEntryAnimation} /> {/if} {/snippet}
{#if menu} (menu = null)} /> {/if} {#if filterOpen} {/if}