authorgravatar for julius0216@outlook.comJulius Marminge <julius0216@outlook.com> 2026-08-10 03:55:32+02:00
committergravatar for noreply@github.comGitHub <noreply@github.com> 2026-08-10 01:55:32+00:00
log5da45337f7178db711624c3e7c4d69059b2b286a
tree4b8442aa75b772e933b72e2b3b3a0ca892bcb665
parentf21d5e444e9a6b5876253ca8618a4dc8d4f2146c
signature Signed by PGP key B5690EEEBB952194

Preserve back navigation when opening settings (#5930)

Co-authored-by: codex <codex@users.noreply.github.com>

1 files changed, 10 insertions(+), 0 deletions(-)

apps/web/src/components/AppSidebarLayout.tsx+10
......@@ -20,6 +20,7 @@ import ThreadSidebar from "./Sidebar";
2020import { SettingsSidebarNav } from "./settings/SettingsSidebarNav";
2121import { SidebarChromeHeader } from "./sidebar/SidebarChrome";
2222import { useSidebarStageBackdropVariant } from "./SidebarStageBackdrop";
23import { useProjects } from "../state/entities";
2324import {
2425 resolveInitialThreadSidebarWidth,
2526 resolveThreadSidebarMaximumWidth,
......@@ -118,6 +119,14 @@ function SidebarControl() {
118119 );
119120}
120121
122// Settings swaps the thread sidebar out of the tree. Keep the lightweight
123// project projection subscribed so returning to a draft never renders the
124// zero-project state while the environment snapshot reconnects.
125function ProjectProjectionRetention() {
126 useProjects();
127 return null;
128}
129
121130export function AppSidebarLayout({ children }: { children: ReactNode }) {
122131 const navigate = useNavigate();
123132 const legacySidebarEnabled = useLegacySidebarEnabled();
......@@ -184,6 +193,7 @@ export function AppSidebarLayout({ children }: { children: ReactNode }) {
184193
185194 return (
186195 <SidebarProvider className="h-dvh! min-h-0!" defaultOpen style={sidebarProviderStyle}>
196 <ProjectProjectionRetention />
187197 <Sidebar
188198 side="left"
189199 collapsible="offcanvas"