libnovel {#if env.PUBLIC_UMAMI_WEBSITE_ID && env.PUBLIC_UMAMI_SCRIPT_URL} {/if}
{#if navigating}
{/if}
{#if data.user && menuOpen}
(menuOpen = false)} class="px-3 py-2.5 rounded-lg text-sm font-medium transition-colors {page.url.pathname.startsWith('/books') ? 'bg-zinc-800 text-zinc-100' : 'text-zinc-400 hover:bg-zinc-800 hover:text-zinc-100'}" > Library (menuOpen = false)} class="px-3 py-2.5 rounded-lg text-sm font-medium transition-colors {page.url.pathname.startsWith('/catalogue') ? 'bg-zinc-800 text-zinc-100' : 'text-zinc-400 hover:bg-zinc-800 hover:text-zinc-100'}" > Discover (menuOpen = false)} class="px-3 py-2.5 rounded-lg text-sm font-medium transition-colors text-zinc-400 hover:bg-zinc-800 hover:text-zinc-100" > Feedback ↗ (menuOpen = false)} class="px-3 py-2.5 rounded-lg text-sm font-medium transition-colors {page.url.pathname === '/profile' ? 'bg-zinc-800 text-zinc-100' : 'text-zinc-400 hover:bg-zinc-800 hover:text-zinc-100'}" > Profile ({data.user.username}) {#if data.user?.role === 'admin'}

Admin

(menuOpen = false)} class="px-3 py-2.5 rounded-lg text-sm font-medium transition-colors {page.url.pathname.startsWith('/admin/scrape') ? 'bg-zinc-800 text-zinc-100' : 'text-zinc-400 hover:bg-zinc-800 hover:text-zinc-100'}" > Scrape tasks (menuOpen = false)} class="px-3 py-2.5 rounded-lg text-sm font-medium transition-colors {page.url.pathname === '/admin/audio' ? 'bg-zinc-800 text-zinc-100' : 'text-zinc-400 hover:bg-zinc-800 hover:text-zinc-100'}" > Audio cache (menuOpen = false)} class="px-3 py-2.5 rounded-lg text-sm font-medium transition-colors {page.url.pathname.startsWith('/admin/audio-jobs') ? 'bg-zinc-800 text-zinc-100' : 'text-zinc-400 hover:bg-zinc-800 hover:text-zinc-100'}" > Audio jobs {/if}
{/if}
{#key page.url.pathname + page.url.search} {@render children()} {/key}
{#if audioStore.active}
{#if chapterDrawerOpen && audioStore.chapters.length > 0}
{/if} {#if audioStore.status === 'generating' || audioStore.status === 'loading'}
{:else if audioStore.status === 'ready'}
{/if}
{#if audioStore.status === 'ready'} {:else if audioStore.status === 'generating'} {/if} {#if audioStore.slug && audioStore.chapter > 0} {#if audioStore.cover} {:else}
{/if}
{/if}
{/if}