fix: track viewportHeight via window.innerHeight to avoid unwanted scrolling (#16356)

Use <svelte:window bind:innerHeight> instead of manual resize listener

Co-authored-by: Aleksander Grygier <aleksander.grygier@gmail.com>
This commit is contained in:
Pascal
2025-10-03 08:01:31 +02:00
committed by GitHub
parent d64c8104f0
commit 5113efd34c

View File

@@ -25,6 +25,7 @@
let isNewChatMode = $derived(page.url.searchParams.get('new_chat') === 'true'); let isNewChatMode = $derived(page.url.searchParams.get('new_chat') === 'true');
let showSidebarByDefault = $derived(activeMessages().length > 0 || isLoading()); let showSidebarByDefault = $derived(activeMessages().length > 0 || isLoading());
let sidebarOpen = $state(false); let sidebarOpen = $state(false);
let innerHeight = $state<number | undefined>();
let chatSidebar: let chatSidebar:
| { activateSearchMode?: () => void; editActiveConversation?: () => void } | { activateSearchMode?: () => void; editActiveConversation?: () => void }
| undefined = $state(); | undefined = $state();
@@ -140,8 +141,6 @@
}); });
</script> </script>
<svelte:window onkeydown={handleKeydown} />
<ModeWatcher /> <ModeWatcher />
<Toaster richColors /> <Toaster richColors />
@@ -157,7 +156,7 @@
/> />
<Sidebar.Provider bind:open={sidebarOpen}> <Sidebar.Provider bind:open={sidebarOpen}>
<div class="flex h-screen w-full"> <div class="flex h-screen w-full" style:height="{innerHeight}px">
<Sidebar.Root class="h-full"> <Sidebar.Root class="h-full">
<ChatSidebar bind:this={chatSidebar} /> <ChatSidebar bind:this={chatSidebar} />
</Sidebar.Root> </Sidebar.Root>
@@ -174,3 +173,5 @@
</Sidebar.Inset> </Sidebar.Inset>
</div> </div>
</Sidebar.Provider> </Sidebar.Provider>
<svelte:window onkeydown={handleKeydown} bind:innerHeight />