diff --git a/src/features/reader/components/PageView.svelte b/src/features/reader/components/PageView.svelte index 605e9bd..1d3cc1f 100644 --- a/src/features/reader/components/PageView.svelte +++ b/src/features/reader/components/PageView.svelte @@ -441,7 +441,7 @@ {#key chapterEpoch} {#if style === "longstrip"} - {#each flatPages as page, gi} + {#each flatPages as page, gi (page.chapterId + ":" + page.localIndex)} {@const src = resolvedSrc[gi]} {@const isLoaded = loadedSet.has(gi)}
- {#if isLoaded} + {#if isLoaded && src} {page.chapterName} – Page {page.localIndex + 1} {:else} -
+ {/if}
{/each} @@ -478,7 +480,9 @@ {:else if style === "fade" && pageReady}
{#await resolveUrl(store.pageUrls[store.pageNumber - 1], 999)} - Page {store.pageNumber} + {:then src} Page {store.pageNumber} {/await} @@ -488,9 +492,11 @@
{#if pageGroups.length}
- {#each currentGroup as pg, i} + {#each currentGroup as pg, i (pg)} {#await resolveUrl(store.pageUrls[pg - 1], 999)} - Page {pg} + {:then src} Page {pg} {/await} @@ -504,7 +510,9 @@ {:else if pageReady}
{#await resolveUrl(store.pageUrls[store.pageNumber - 1], 999)} - Page {store.pageNumber} + {:then src} Page {store.pageNumber} {/await} @@ -536,7 +544,23 @@ width: var(--effective-width, 100%); max-width: var(--effective-width, 100%); aspect-ratio: var(--aspect, 0.667); - background: transparent; + border-radius: var(--radius-sm); + background: color-mix(in srgb, var(--bg-raised) 90%, transparent); + } + + .page-loader { + display: flex; + align-items: center; + justify-content: center; + background: color-mix(in srgb, var(--bg-raised) 90%, transparent); + border-radius: var(--radius-sm); + } + + .page-loader-single { + width: min(100%, var(--effective-width, 100%)); + max-width: var(--effective-width, 100%); + max-height: calc(100vh - 80px); + aspect-ratio: 2 / 3; } .img { display: block; user-select: none; image-rendering: auto; }