diff --git a/web/src/routes/library/history/+page.svelte b/web/src/routes/library/history/+page.svelte index f6be6aff..789a4a3d 100644 --- a/web/src/routes/library/history/+page.svelte +++ b/web/src/routes/library/history/+page.svelte @@ -1,35 +1,35 @@ {pageTitle('Library · History')} -
-

History

+
+
+

History

+
- {#if $query.isPending} + {#if query.isPending} - {:else if $query.isError} - $query.refetch()} /> + {:else if query.isError} + {:else if flatEvents.length === 0}

No listening history yet.

{:else} {#each grouped as group (group.label)}
-

+

{group.label}

@@ -40,8 +40,16 @@
{/each} - {#if $query.hasNextPage && !$query.isFetchingNextPage} - $query.fetchNextPage()} /> + {#if query.hasNextPage} + query.fetchNextPage()} + /> + {#if query.isFetchingNextPage} +

Loading more…

+ {/if} + {:else if flatEvents.length > 0} +

End of history

{/if} {/if}
diff --git a/web/src/routes/library/history/page.test.ts b/web/src/routes/library/history/page.test.ts index 94090c94..5210ea6a 100644 --- a/web/src/routes/library/history/page.test.ts +++ b/web/src/routes/library/history/page.test.ts @@ -108,10 +108,18 @@ describe('library/history page', () => { mockData = { pages: [{ events: [mkEvent('a', new Date())], has_more: false }] }; mockHasNextPage = false; const { container } = render(HistoryPage); - // Sentinel renders an empty
— assert by absence of the call. - // (We can't easily query for the sentinel itself in the DOM since it has - // no aria role; instead, verify the page renders the song without error.) + // InfiniteScrollSentinel renders