|
35 | 35 | let titleUpdateNewTitle = $state(''); |
36 | 36 | let titleUpdateResolve: ((value: boolean) => void) | null = null; |
37 | 37 |
|
| 38 | + // Global keyboard shortcuts |
| 39 | + function handleKeydown(event: KeyboardEvent) { |
| 40 | + const isCtrlOrCmd = event.ctrlKey || event.metaKey; |
| 41 | +
|
| 42 | + if (isCtrlOrCmd && event.key === 'k') { |
| 43 | + event.preventDefault(); |
| 44 | + if (chatSidebar?.activateSearchMode) { |
| 45 | + chatSidebar.activateSearchMode(); |
| 46 | + sidebarOpen = true; |
| 47 | + } |
| 48 | + } |
| 49 | +
|
| 50 | + if (isCtrlOrCmd && event.shiftKey && event.key === 'o') { |
| 51 | + event.preventDefault(); |
| 52 | + goto('/?new_chat=true'); |
| 53 | + } |
| 54 | +
|
| 55 | + if (event.shiftKey && isCtrlOrCmd && event.key === 'e') { |
| 56 | + event.preventDefault(); |
| 57 | +
|
| 58 | + if (chatSidebar?.editActiveConversation) { |
| 59 | + chatSidebar.editActiveConversation(); |
| 60 | + } |
| 61 | + } |
| 62 | + } |
| 63 | +
|
| 64 | + function handleTitleUpdateCancel() { |
| 65 | + titleUpdateDialogOpen = false; |
| 66 | + if (titleUpdateResolve) { |
| 67 | + titleUpdateResolve(false); |
| 68 | + titleUpdateResolve = null; |
| 69 | + } |
| 70 | + } |
| 71 | +
|
| 72 | + function handleTitleUpdateConfirm() { |
| 73 | + titleUpdateDialogOpen = false; |
| 74 | + if (titleUpdateResolve) { |
| 75 | + titleUpdateResolve(true); |
| 76 | + titleUpdateResolve = null; |
| 77 | + } |
| 78 | + } |
| 79 | +
|
38 | 80 | $effect(() => { |
39 | 81 | if (isHomeRoute && !isNewChatMode) { |
40 | 82 | // Auto-collapse sidebar when navigating to home route (but not in new chat mode) |
|
96 | 138 | }); |
97 | 139 | }); |
98 | 140 | }); |
99 | | -
|
100 | | - function handleTitleUpdateConfirm() { |
101 | | - titleUpdateDialogOpen = false; |
102 | | - if (titleUpdateResolve) { |
103 | | - titleUpdateResolve(true); |
104 | | - titleUpdateResolve = null; |
105 | | - } |
106 | | - } |
107 | | -
|
108 | | - function handleTitleUpdateCancel() { |
109 | | - titleUpdateDialogOpen = false; |
110 | | - if (titleUpdateResolve) { |
111 | | - titleUpdateResolve(false); |
112 | | - titleUpdateResolve = null; |
113 | | - } |
114 | | - } |
115 | | -
|
116 | | - // Global keyboard shortcuts |
117 | | - function handleKeydown(event: KeyboardEvent) { |
118 | | - const isCtrlOrCmd = event.ctrlKey || event.metaKey; |
119 | | -
|
120 | | - if (isCtrlOrCmd && event.key === 'k') { |
121 | | - event.preventDefault(); |
122 | | - if (chatSidebar?.activateSearchMode) { |
123 | | - chatSidebar.activateSearchMode(); |
124 | | - sidebarOpen = true; |
125 | | - } |
126 | | - } |
127 | | -
|
128 | | - if (isCtrlOrCmd && event.shiftKey && event.key === 'o') { |
129 | | - event.preventDefault(); |
130 | | - goto('/?new_chat=true'); |
131 | | - } |
132 | | -
|
133 | | - if (event.shiftKey && isCtrlOrCmd && event.key === 'e') { |
134 | | - event.preventDefault(); |
135 | | -
|
136 | | - if (chatSidebar?.editActiveConversation) { |
137 | | - chatSidebar.editActiveConversation(); |
138 | | - } |
139 | | - } |
140 | | - } |
141 | 141 | </script> |
142 | 142 |
|
143 | 143 | <ModeWatcher /> |
|
0 commit comments