|
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