From 8d05f623cb189c71d8c96f353b4893b5ec0ca13d Mon Sep 17 00:00:00 2001 From: Bryan Van Deusen Date: Fri, 1 May 2026 23:42:08 -0400 Subject: [PATCH] feat(web): /discover scrolls only the results, not the chrome MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Restructures the page as a full-height flex column so the persistent chrome (DiscoverTabs, search input, facet tabs, header) stays anchored at the top and only the result grid scrolls. Same treatment for the empty-state SuggestionFeed. Main retains overflow-y-auto for other pages, but with h-full + flex-col + min-h-0 on the inner scroll region this page contains its own overflow and main's scroll never triggers — search field + facet tabs remain visible while you browse results. Co-Authored-By: Claude Opus 4.7 (1M context) --- web/src/routes/discover/+page.svelte | 57 +++++++++++++++++----------- 1 file changed, 34 insertions(+), 23 deletions(-) diff --git a/web/src/routes/discover/+page.svelte b/web/src/routes/discover/+page.svelte index d00badf6..cc751370 100644 --- a/web/src/routes/discover/+page.svelte +++ b/web/src/routes/discover/+page.svelte @@ -115,9 +115,16 @@ ]; - + +
+ -
{#if debouncedQ === ''} - +
+ +
{:else}

@@ -157,26 +166,28 @@ - {#if query.isError} - - {:else if query.isPending} -

Searching…

- {:else if results.length === 0} -

Nothing to add for that search yet.

- {:else} -
- {#each results as r (r.mbid)} - handleRequestClick(r)} - /> - {/each} -
- {/if} +
+ {#if query.isError} + + {:else if query.isPending} +

Searching…

+ {:else if results.length === 0} +

Nothing to add for that search yet.

+ {:else} +
+ {#each results as r (r.mbid)} + handleRequestClick(r)} + /> + {/each} +
+ {/if} +
{/if}