diff --git a/src/renderer/components/CommandPalette.tsx b/src/renderer/components/CommandPalette.tsx index 8c7ccb8..e1a7f46 100644 --- a/src/renderer/components/CommandPalette.tsx +++ b/src/renderer/components/CommandPalette.tsx @@ -1,5 +1,10 @@ import React, { useEffect, useMemo, useState } from "react"; -import { Search, X, ExternalLink, Github, Play, Laptop, Rocket, Zap, Flag, Users, Tag, Ship, RefreshCw, Pencil } from "lucide-react"; +import { + Search, X, ExternalLink, Github, Play, Laptop, Rocket, Zap, Flag, Users, Tag, Ship, RefreshCw, Pencil, + PanelLeftClose, PanelRightClose, Moon, Columns, Eye, WrapText, Settings, GitPullRequest, Home, + GitBranch, CircleDot, User, BarChart3, Activity, Database, Flame, Keyboard, CheckCircle, XCircle, + MessageSquare, Copy, Star +} from "lucide-react"; import { cn } from "../utils/cn"; import { useUIStore } from "../stores/uiStore"; import { useSyncStore } from "../stores/syncStore"; @@ -26,6 +31,7 @@ const commands: Command[] = [ name: "Toggle Sidebar", keywords: "sidebar view layout", shortcut: "⌘B", + icon: PanelLeftClose, action: () => useUIStore.getState().toggleSidebar(), preview:
Show / hide sidebar
, }, @@ -34,6 +40,7 @@ const commands: Command[] = [ name: "Toggle Right Panel", keywords: "panel view layout", shortcut: "⌘⇧B", + icon: PanelRightClose, action: () => useUIStore.getState().toggleRightPanel(), preview:
Show / hide right panel
, }, @@ -42,6 +49,7 @@ const commands: Command[] = [ name: "Toggle Theme", keywords: "theme dark light appearance", shortcut: "⌘⇧T", + icon: Moon, action: () => useUIStore.getState().toggleTheme(), preview:
Switch between light / dark mode
, }, @@ -50,6 +58,7 @@ const commands: Command[] = [ name: "Toggle Diff View", keywords: "diff unified split", shortcut: "⌘⇧D", + icon: Columns, action: () => useUIStore.getState().toggleDiffView(), preview:
Switch between unified / split diff
, }, @@ -58,6 +67,7 @@ const commands: Command[] = [ name: "Toggle Whitespace", keywords: "diff whitespace", shortcut: "⌘⇧W", + icon: Eye, action: () => useUIStore.getState().toggleWhitespace(), preview:
Show / hide whitespace changes in diff
, }, @@ -66,6 +76,7 @@ const commands: Command[] = [ name: "Toggle Word Wrap", keywords: "diff word wrap", shortcut: "⌘⇧L", + icon: WrapText, action: () => useUIStore.getState().toggleWordWrap(), preview:
Enable / disable word wrap
, }, @@ -74,6 +85,7 @@ const commands: Command[] = [ name: "Sync Repositories", keywords: "sync refresh", shortcut: "⌘R", + icon: RefreshCw, action: () => useSyncStore.getState().syncAll(), preview:
Trigger a full sync of all repositories
, }, @@ -82,6 +94,7 @@ const commands: Command[] = [ name: "Open Settings", keywords: "settings preferences", shortcut: "⌘,", + icon: Settings, action: () => { const nav = window.__commandNavigate; if (nav) nav("/settings"); @@ -92,6 +105,7 @@ const commands: Command[] = [ id: "nav-pull-requests", name: "Go to Pull Requests", keywords: "navigate pulls pr home", + icon: GitPullRequest, action: () => { const nav = window.__commandNavigate; if (nav) nav("/pulls"); @@ -102,6 +116,7 @@ const commands: Command[] = [ id: "nav-home", name: "Home", keywords: "home main start pulls", + icon: Home, action: () => { const nav = window.__commandNavigate; if (nav) nav("/pulls"); @@ -112,6 +127,7 @@ const commands: Command[] = [ id: "nav-branches", name: "Go to Branches", keywords: "navigate branches", + icon: GitBranch, action: () => { const nav = window.__commandNavigate; if (nav) nav("/branches"); @@ -122,6 +138,7 @@ const commands: Command[] = [ id: "nav-issues", name: "Go to Issues", keywords: "navigate issues", + icon: CircleDot, action: () => { const nav = window.__commandNavigate; if (nav) nav("/issues"); @@ -132,6 +149,7 @@ const commands: Command[] = [ id: "nav-me", name: "My Stuff", keywords: "navigate me profile assignments", + icon: User, action: () => { const nav = window.__commandNavigate; if (nav) nav("/me"); @@ -142,6 +160,7 @@ const commands: Command[] = [ id: "nav-stats", name: "Go to Statistics", keywords: "navigate stats analytics metrics dashboard", + icon: BarChart3, action: () => { const nav = window.__commandNavigate; if (nav) nav("/stats"); @@ -152,6 +171,7 @@ const commands: Command[] = [ id: "nav-feed", name: "Go to Activity Feed", keywords: "navigate feed activity stream updates", + icon: Activity, action: () => { const nav = window.__commandNavigate; if (nav) nav("/feed"); @@ -162,6 +182,7 @@ const commands: Command[] = [ id: "nav-shipyard", name: "Go to Shipyard", keywords: "navigate shipyard ship ready approved shipit", + icon: Ship, action: () => { const nav = window.__commandNavigate; if (nav) nav("/shipyard"); @@ -172,6 +193,7 @@ const commands: Command[] = [ id: "nav-migrations", name: "Go to Migrations", keywords: "navigate migrations database schema change migration", + icon: Database, action: () => { const nav = window.__commandNavigate; if (nav) nav("/migrations"); @@ -182,6 +204,7 @@ const commands: Command[] = [ id: "nav-firefighter", name: "Go to Firefighter", keywords: "navigate firefighter ff linear ticket emergency", + icon: Flame, action: () => { const nav = window.__commandNavigate; if (nav) nav("/firefighter"); @@ -193,6 +216,7 @@ const commands: Command[] = [ name: "Show Keyboard Shortcuts", keywords: "help shortcuts", shortcut: "⌘/", + icon: Keyboard, action: () => useUIStore.getState().toggleKeyboardShortcuts(), preview:
Display keyboard shortcuts help
, }, @@ -201,6 +225,7 @@ const commands: Command[] = [ name: "Go to Pull Request", keywords: "navigate pr pull request search find", shortcut: "⌘P", + icon: Search, action: () => { useUIStore.getState().toggleCommandPalette(); setTimeout(() => useUIStore.getState().togglePRPalette(), 50); @@ -265,6 +290,7 @@ export default function CommandPalette() { name: "Approve PR", keywords: "approve review lgtm", shortcut: "⌘⇧A", + icon: CheckCircle, action: () => { useUIStore.getState().triggerApprovePR(); }, @@ -274,6 +300,7 @@ export default function CommandPalette() { id: "close-pr", name: "Close PR", keywords: "close pr pull request", + icon: XCircle, action: () => { useUIStore.getState().triggerClosePR(); }, @@ -304,6 +331,7 @@ export default function CommandPalette() { name: "Add Comment", keywords: "comment write reply focus", shortcut: "⌘⇧C", + icon: MessageSquare, action: () => { useUIStore.getState().triggerFocusCommentBox(); }, @@ -323,6 +351,7 @@ export default function CommandPalette() { id: "copy-gh-checkout", name: "Copy gh pr checkout command", keywords: "git checkout gh pr copy clipboard", + icon: Copy, action: () => { navigator.clipboard.writeText(`gh pr checkout ${prNumber}`); }, @@ -387,6 +416,7 @@ export default function CommandPalette() { name: `Switch to ${repo.full_name}`, keywords: `repo switch go navigate ${repo.full_name} ${repo.owner} ${repo.name}`, section: "Starred Repos", + icon: Star, action: () => { const setRepo = (window as any).__commandSetSelectedRepo; if (setRepo) {