From 2a6d504f19313861356ceeae0387c151cb914011 Mon Sep 17 00:00:00 2001 From: mishraprafful Date: Thu, 2 Apr 2026 14:16:08 +0200 Subject: [PATCH] feat: add settings icon and keyboard shortcuts section to sidebar Co-Authored-By: Claude Sonnet 4.6 --- src/renderer/components/Sidebar/Sidebar.tsx | 88 +++++++++++++++++++++ 1 file changed, 88 insertions(+) diff --git a/src/renderer/components/Sidebar/Sidebar.tsx b/src/renderer/components/Sidebar/Sidebar.tsx index b2ac6a9..bb6b4b0 100644 --- a/src/renderer/components/Sidebar/Sidebar.tsx +++ b/src/renderer/components/Sidebar/Sidebar.tsx @@ -4,6 +4,7 @@ import { useCallback, useEffect, useRef, useState } from "react"; import { useSessionShortcuts } from "../../hooks/useChordShortcuts"; import { useRepoStore } from "../../stores/repoStore"; import { useSessionStore } from "../../stores/sessionStore"; +import { useThemeStore } from "../../stores/themeStore"; import { NewSessionDialog } from "./NewSessionDialog"; import { SessionListItem, type SessionListItemProps } from "./SessionListItem"; import { WorktreeDeleteDialog } from "./WorktreeDeleteDialog"; @@ -34,7 +35,10 @@ export function Sidebar() { const reorderSessions = useSessionStore((state) => state.reorderSessions); + const toggleSettings = useThemeStore((state) => state.toggleSettings); + const [archiveOpen, setArchiveOpen] = useState(false); + const [shortcutsOpen, setShortcutsOpen] = useState(false); const [metaHeld, setMetaHeld] = useState(false); const repoPickerRef = useRef(null); @@ -259,6 +263,46 @@ export function Sidebar() { )} + {/* Keyboard shortcuts panel */} + {shortcutsOpen && ( +
+

Shortcuts

+ {SHORTCUTS.map(({ keys, label }) => ( +
+ {label} + + {keys} + +
+ ))} +
+ )} + + {/* Bottom bar: keyboard shortcuts toggle + settings */} +
+ +
+ +
+ {/* New session dialog */} {pendingNewSessionRepo && ( ) { const sortable = useSortable({ id: props.session.id }); return ; @@ -323,3 +375,39 @@ function ChevronIcon({ open }: { open: boolean }) { ); } + +function GearIcon() { + return ( + + + + + ); +} + +function KeyboardIcon() { + return ( + + + + + ); +}