From 487ce2ad45c35471d5808eef511849ffbac71a98 Mon Sep 17 00:00:00 2001 From: Amit Haridas Date: Fri, 5 Jun 2026 15:58:21 +0530 Subject: [PATCH] feat(renderer): Toolbar wired to command store - 5 functional buttons: Open file, Open folder, Save, Toggle sidebar, Toggle preview - each dispatches via useCommandStore - aria-pressed on toggle buttons reflects app store state - formatting buttons (bold, italic, etc.) stay disabled (Phase 9) - toolbar now has role='toolbar' and aria-label - TDD: 9 component tests --- src/renderer/components/layout/Toolbar.tsx | 80 ++++++++++++++++--- tests/component/layout/Toolbar.test.tsx | 93 +++++++++++++++++++++- 2 files changed, 161 insertions(+), 12 deletions(-) diff --git a/src/renderer/components/layout/Toolbar.tsx b/src/renderer/components/layout/Toolbar.tsx index c9dc98c..b82449d 100644 --- a/src/renderer/components/layout/Toolbar.tsx +++ b/src/renderer/components/layout/Toolbar.tsx @@ -1,15 +1,77 @@ -import { Bold, Italic, List, ListOrdered, Code, Link as LinkIcon } from 'lucide-react'; +import { Bold, Italic, List, ListOrdered, Code, Link as LinkIcon, PanelLeft, PanelRight, Save, FolderOpen, FileText } from 'lucide-react'; import { Button } from '@/components/ui/button'; +import { useCommandStore } from '@/stores/command-store'; +import { useAppStore } from '@/stores/app-store'; export function Toolbar() { + const dispatch = useCommandStore((s) => s.dispatch); + const { sidebarVisible, previewVisible } = useAppStore(); + return ( -
- - - - - - +
+ + + + +