authorgravatar for 91240327+shivamhwp@users.noreply.github.comshivam <91240327+shivamhwp@users.noreply.github.com> 2026-03-24 07:56:33+05:30
committergravatar for noreply@github.comGitHub <noreply@github.com> 2026-03-24 02:26:33+00:00
log2b08d8669646109ffa101b1b767f4c1922d2e072
treed67f3f881b1f3b0113cc2128d0b482e13f892a7a
parente11fb6e778456a98e0066894bfb572864f98bb20
signature Signed by PGP key B5690EEEBB952194

Add resizable chat sidebar (#1347)

Co-authored-by: Julius Marminge <julius0216@outlook.com>

1 files changed, 11 insertions(+), 1 deletions(-)

apps/web/src/routes/_chat.tsx+11-1
......@@ -10,11 +10,14 @@ import { serverConfigQueryOptions } from "../lib/serverReactQuery";
1010import { resolveShortcutCommand } from "../keybindings";
1111import { selectThreadTerminalState, useTerminalStateStore } from "../terminalStateStore";
1212import { useThreadSelectionStore } from "../threadSelectionStore";
13import { Sidebar, SidebarProvider } from "~/components/ui/sidebar";
1413import { resolveSidebarNewThreadEnvMode } from "~/components/Sidebar.logic";
1514import { useAppSettings } from "~/appSettings";
15import { Sidebar, SidebarProvider, SidebarRail } from "~/components/ui/sidebar";
1616
1717const EMPTY_KEYBINDINGS: ResolvedKeybindingsConfig = [];
18const THREAD_SIDEBAR_WIDTH_STORAGE_KEY = "chat_thread_sidebar_width";
19const THREAD_SIDEBAR_MIN_WIDTH = 13 * 16;
20const THREAD_MAIN_CONTENT_MIN_WIDTH = 40 * 16;
1821
1922function ChatRouteGlobalShortcuts() {
2023 const clearSelection = useThreadSelectionStore((state) => state.clearSelection);
......@@ -116,8 +119,15 @@ function ChatRouteLayout() {
116119 side="left"
117120 collapsible="offcanvas"
118121 className="border-r border-border bg-card text-foreground"
122 resizable={{
123 minWidth: THREAD_SIDEBAR_MIN_WIDTH,
124 shouldAcceptWidth: ({ nextWidth, wrapper }) =>
125 wrapper.clientWidth - nextWidth >= THREAD_MAIN_CONTENT_MIN_WIDTH,
126 storageKey: THREAD_SIDEBAR_WIDTH_STORAGE_KEY,
127 }}
119128 >
120129 <ThreadSidebar />
130 <SidebarRail />
121131 </Sidebar>
122132 <Outlet />
123133 </SidebarProvider>