Chapters
{#if chapterList.length > 0}
({chapterList.length})
{/if}
{#if totalPages > 1}
{page * pageSize + 1}–{Math.min((page + 1) * pageSize, chapterList.length)} of {chapterList.length}
{/if}
{#if pollingChapters}
{#each Array(8) as _}
{/each}
{:else if chapterList.length === 0}
No chapters available yet.
{:else}
{#each visibleChapters as chapter}
{@const isCurrent = data.lastChapter === chapter.number}
{@const chapterUrl = data.inLib
? `/books/${data.book.slug}/chapters/${chapter.number}`
: `/books/${data.book.slug}/chapters/${chapter.number}?preview=1&chapter_url=${encodeURIComponent((chapter as { url?: string }).url ?? '')}&title=${encodeURIComponent(chapter.title ?? '')}`}
{/each}
{/if}
{#if data.isAdmin && data.book.source_url}
{#if adminOpen}
{#if scrapeResult}
{scrapeResult === 'queued' ? 'Queued.' : scrapeResult === 'busy' ? 'Scraper busy.' : 'Error.'}
{/if}
{/if}
{/if}