Skip to content

Commit be6e055

Browse files
committed
Add cmd+k shortcut
1 parent 3393a39 commit be6e055

File tree

1 file changed

+26
-4
lines changed

1 file changed

+26
-4
lines changed

agentex-ui/components/agentex/task-sidebar.tsx

Lines changed: 26 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { useCallback, useMemo, useState } from 'react';
1+
import { useCallback, useEffect, useMemo, useState } from 'react';
22

33
import Image from 'next/image';
44
import { useRouter } from 'next/navigation';
@@ -74,6 +74,7 @@ export function TaskSidebar({
7474
onSelectTask,
7575
}: TaskSidebarProps) {
7676
const { agentexClient } = useAgentexClient();
77+
7778
const { data: tasks = [], isLoading: isLoadingTasks } = useTasks(
7879
agentexClient,
7980
selectedAgentName ? { agentName: selectedAgentName } : undefined
@@ -99,6 +100,22 @@ export function TaskSidebar({
99100
setIsCollapsed(prev => !prev);
100101
}, []);
101102

103+
// Global keyboard shortcut: cmd + k for new chat
104+
useEffect(() => {
105+
const handleKeyDown = (event: KeyboardEvent) => {
106+
if ((event.metaKey || event.ctrlKey) && event.key === 'k') {
107+
event.preventDefault();
108+
handleNewChat();
109+
}
110+
};
111+
112+
window.addEventListener('keydown', handleKeyDown);
113+
114+
return () => {
115+
window.removeEventListener('keydown', handleKeyDown);
116+
};
117+
}, [handleNewChat]);
118+
102119
return (
103120
<ResizableSidebar
104121
side="left"
@@ -208,10 +225,15 @@ function SidebarHeader({
208225
<Button
209226
onClick={handleNewChat}
210227
variant="ghost"
211-
className="text-sidebar-foreground flex items-center justify-start gap-2"
228+
className="text-sidebar-foreground flex items-center justify-between gap-2"
212229
>
213-
<SquarePen className="size-5" />
214-
New Chat
230+
<div className="flex items-center gap-2">
231+
<SquarePen className="size-5" />
232+
New Chat
233+
</div>
234+
<kbd className="bg-muted text-muted-foreground pointer-events-none inline-flex h-5 items-center gap-1 rounded border px-1.5 font-mono text-[10px] font-medium opacity-100 select-none">
235+
<span className="text-xs/snug"></span>K
236+
</kbd>
215237
</Button>
216238
</div>
217239
);

0 commit comments

Comments
 (0)