fix: prevent worktree modal from disappearing after opening (#1585)
The worktree dialog state was local React state in SessionSidebar, which gets destroyed when the component unmounts (mobile drawer close, VSCode view switch). This caused the modal to briefly appear then disappear. Three changes: - Move newWorktreeDialogOpen from local state to useUIStore so it survives component unmount - Guard useProjectSessionSelection layout effect to skip when the worktree dialog is open (prevents auto-session-selection from closing the sidebar) - Remove setSessionSwitcherOpen(false) from worktree button handler on mobile (prevents drawer close that unmounts the sidebar) Fixes #1414
This commit is contained in:
@@ -536,6 +536,7 @@ interface UIStore {
|
||||
isSessionCreateDialogOpen: boolean;
|
||||
isScheduledTasksDialogOpen: boolean;
|
||||
isSettingsDialogOpen: boolean;
|
||||
isNewWorktreeDialogOpen: boolean;
|
||||
isModelSelectorOpen: boolean;
|
||||
sidebarSection: SidebarSection;
|
||||
|
||||
@@ -684,6 +685,7 @@ interface UIStore {
|
||||
setSessionCreateDialogOpen: (open: boolean) => void;
|
||||
setScheduledTasksDialogOpen: (open: boolean) => void;
|
||||
setSettingsDialogOpen: (open: boolean) => void;
|
||||
setNewWorktreeDialogOpen: (open: boolean) => void;
|
||||
setModelSelectorOpen: (open: boolean) => void;
|
||||
applyTheme: () => void;
|
||||
setSidebarSection: (section: SidebarSection) => void;
|
||||
@@ -824,6 +826,7 @@ export const useUIStore = create<UIStore>()(
|
||||
isSessionCreateDialogOpen: false,
|
||||
isScheduledTasksDialogOpen: false,
|
||||
isSettingsDialogOpen: false,
|
||||
isNewWorktreeDialogOpen: false,
|
||||
isModelSelectorOpen: false,
|
||||
sidebarSection: 'sessions',
|
||||
settingsPage: 'home',
|
||||
@@ -1495,6 +1498,10 @@ export const useUIStore = create<UIStore>()(
|
||||
});
|
||||
},
|
||||
|
||||
setNewWorktreeDialogOpen: (open) => {
|
||||
set({ isNewWorktreeDialogOpen: open });
|
||||
},
|
||||
|
||||
setModelSelectorOpen: (open) => {
|
||||
set({ isModelSelectorOpen: open });
|
||||
},
|
||||
|
||||
Reference in New Issue
Block a user