feat: Enhance sidebar navigation with collapsible sections and state management

- Added support for collapsible navigation sections in the sidebar, allowing users to expand or collapse sections based on their preferences.
- Integrated the collapsed state management into the app store for persistence across sessions.
- Updated the sidebar component to conditionally render the header based on the selected sidebar style.
- Ensured synchronization of collapsed section states with user settings for a consistent experience.
This commit is contained in:
Shirone
2026-01-23 16:47:32 +01:00
parent 4012a2964a
commit f005c30017
6 changed files with 83 additions and 36 deletions

View File

@@ -846,6 +846,8 @@ export interface GlobalSettings {
sidebarOpen: boolean;
/** Sidebar layout style ('unified' = modern single sidebar, 'discord' = classic two-sidebar layout) */
sidebarStyle: SidebarStyle;
/** Collapsed state of sidebar navigation sections (key: section label, value: is collapsed) */
collapsedNavSections?: Record<string, boolean>;
/** Whether chat history panel is open */
chatHistoryOpen: boolean;
@@ -1321,6 +1323,7 @@ export const DEFAULT_GLOBAL_SETTINGS: GlobalSettings = {
theme: 'dark',
sidebarOpen: true,
sidebarStyle: 'unified',
collapsedNavSections: {},
chatHistoryOpen: false,
maxConcurrency: DEFAULT_MAX_CONCURRENCY,
defaultSkipTests: true,