Skip to content

Commit b73232b

Browse files
authored
feat(web): reset sidebar width on double click (#6320)
1 parent f131228 commit b73232b

1 file changed

Lines changed: 10 additions & 2 deletions

File tree

apps/web/src/components/AppSidebarLayout.tsx

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ import {
1010
import { useLocation, useNavigate } from "@tanstack/react-router";
1111

1212
import { isElectron } from "../env";
13-
import { getLocalStorageItem } from "../hooks/useLocalStorage";
13+
import { getLocalStorageItem, removeLocalStorageItem } from "../hooks/useLocalStorage";
1414
import { resolveShortcutCommand, shortcutLabelForCommand } from "../keybindings";
1515
import { cn, isMacPlatform } from "../lib/utils";
1616
import { primaryServerKeybindingsAtom } from "../state/server";
@@ -147,6 +147,14 @@ export function AppSidebarLayout({ children }: { children: ReactNode }) {
147147
// that would otherwise refresh a render-time snapshot.
148148
const viewportWidth = useSyncExternalStore(subscribeToViewportWidth, readViewportWidth);
149149
const sidebarMaximumWidth = resolveThreadSidebarMaximumWidth(viewportWidth);
150+
const resetSidebarWidth = () => {
151+
try {
152+
removeLocalStorageItem(THREAD_SIDEBAR_WIDTH_STORAGE_KEY);
153+
} catch (error) {
154+
console.error("Could not clear persisted thread sidebar width.", error);
155+
}
156+
setSidebarWidth(resolveInitialThreadSidebarWidth(null, viewportWidth));
157+
};
150158
const [isWindowFullscreen, setIsWindowFullscreen] = useState(() => {
151159
const getWindowFullscreenState = window.desktopBridge?.getWindowFullscreenState;
152160
return isMacosDesktop && typeof getWindowFullscreenState === "function"
@@ -225,7 +233,7 @@ export function AppSidebarLayout({ children }: { children: ReactNode }) {
225233
) : (
226234
<ThreadSidebar />
227235
)}
228-
<SidebarRail />
236+
<SidebarRail onDoubleClick={resetSidebarWidth} />
229237
</Sidebar>
230238
{children}
231239
<SidebarControl />

0 commit comments

Comments
 (0)