49 | {/* Show/Hide - Always visible */}
50 |
{
53 | try {
54 | const result = await window.electronAPI.toggleMainWindow()
55 | if (!result.success) {
56 | console.error("Failed to toggle window:", result.error)
57 | showToast("Error", "Failed to toggle window", "error")
58 | }
59 | } catch (error) {
60 | console.error("Error toggling window:", error)
61 | showToast("Error", "Failed to toggle window", "error")
62 | }
63 | }}
64 | >
65 |
Show/Hide
66 |
67 |
68 | {COMMAND_KEY}
69 |
70 |
71 | B
72 |
73 |
74 |
75 |
76 | {/* Screenshot and Debug commands - Only show if not processing */}
77 | {!isProcessing && (
78 | <>
79 |
{
82 | try {
83 | const result = await window.electronAPI.triggerScreenshot()
84 | if (!result.success) {
85 | console.error("Failed to take screenshot:", result.error)
86 | showToast("Error", "Failed to take screenshot", "error")
87 | }
88 | } catch (error) {
89 | console.error("Error taking screenshot:", error)
90 | showToast("Error", "Failed to take screenshot", "error")
91 | }
92 | }}
93 | >
94 |
95 | {extraScreenshots.length === 0
96 | ? "Screenshot your code"
97 | : "Screenshot"}
98 |
99 |
100 |
101 | {COMMAND_KEY}
102 |
103 |
104 | H
105 |
106 |
107 |
108 |
109 | {extraScreenshots.length > 0 && (
110 |
{
113 | try {
114 | const result =
115 | await window.electronAPI.triggerProcessScreenshots()
116 | if (!result.success) {
117 | console.error(
118 | "Failed to process screenshots:",
119 | result.error
120 | )
121 | showToast(
122 | "Error",
123 | "Failed to process screenshots",
124 | "error"
125 | )
126 | }
127 | } catch (error) {
128 | console.error("Error processing screenshots:", error)
129 | showToast(
130 | "Error",
131 | "Failed to process screenshots",
132 | "error"
133 | )
134 | }
135 | }}
136 | >
137 |
Debug
138 |
139 |
140 | {COMMAND_KEY}
141 |
142 |
143 | ↵
144 |
145 |
146 |
147 | )}
148 | >
149 | )}
150 |
151 | {/* Start Over - Always visible */}
152 |
{
155 | try {
156 | const result = await window.electronAPI.triggerReset()
157 | if (!result.success) {
158 | console.error("Failed to reset:", result.error)
159 | showToast("Error", "Failed to reset", "error")
160 | }
161 | } catch (error) {
162 | console.error("Error resetting:", error)
163 | showToast("Error", "Failed to reset", "error")
164 | }
165 | }}
166 | >
167 |
Start Over
168 |
169 |
170 | {COMMAND_KEY}
171 |
172 |
173 | R
174 |
175 |
176 |
177 |
178 | {/* Separator */}
179 |
180 |
181 | {/* Settings with Tooltip */}
182 |
187 | {/* Gear icon */}
188 |
189 |
199 |
200 |
201 |
202 |
203 |
204 | {/* Tooltip Content */}
205 | {isTooltipVisible && (
206 |
211 | {/* Add transparent bridge */}
212 |
213 |
214 |
215 |
216 | Keyboard Shortcuts
217 |
218 |
219 | {/* Show/Hide - Always visible */}
220 |
{
223 | try {
224 | const result =
225 | await window.electronAPI.toggleMainWindow()
226 | if (!result.success) {
227 | console.error(
228 | "Failed to toggle window:",
229 | result.error
230 | )
231 | showToast(
232 | "Error",
233 | "Failed to toggle window",
234 | "error"
235 | )
236 | }
237 | } catch (error) {
238 | console.error("Error toggling window:", error)
239 | showToast(
240 | "Error",
241 | "Failed to toggle window",
242 | "error"
243 | )
244 | }
245 | }}
246 | >
247 |
248 |
Toggle Window
249 |
250 |
251 | {COMMAND_KEY}
252 |
253 |
254 | B
255 |
256 |
257 |
258 |
259 | Show or hide this window.
260 |
261 |
262 |
263 | {/* Screenshot and Debug commands - Only show if not processing */}
264 | {!isProcessing && (
265 | <>
266 |
{
269 | try {
270 | const result =
271 | await window.electronAPI.triggerScreenshot()
272 | if (!result.success) {
273 | console.error(
274 | "Failed to take screenshot:",
275 | result.error
276 | )
277 | showToast(
278 | "Error",
279 | "Failed to take screenshot",
280 | "error"
281 | )
282 | }
283 | } catch (error) {
284 | console.error("Error taking screenshot:", error)
285 | showToast(
286 | "Error",
287 | "Failed to take screenshot",
288 | "error"
289 | )
290 | }
291 | }}
292 | >
293 |
294 |
Take Screenshot
295 |
296 |
297 | {COMMAND_KEY}
298 |
299 |
300 | H
301 |
302 |
303 |
304 |
305 | Capture additional parts of the question or your
306 | solution for debugging help.
307 |
308 |
309 |
310 | {extraScreenshots.length > 0 && (
311 |
{
314 | try {
315 | const result =
316 | await window.electronAPI.triggerProcessScreenshots()
317 | if (!result.success) {
318 | console.error(
319 | "Failed to process screenshots:",
320 | result.error
321 | )
322 | showToast(
323 | "Error",
324 | "Failed to process screenshots",
325 | "error"
326 | )
327 | }
328 | } catch (error) {
329 | console.error(
330 | "Error processing screenshots:",
331 | error
332 | )
333 | showToast(
334 | "Error",
335 | "Failed to process screenshots",
336 | "error"
337 | )
338 | }
339 | }}
340 | >
341 |
342 |
Debug
343 |
344 |
345 | {COMMAND_KEY}
346 |
347 |
348 | ↵
349 |
350 |
351 |
352 |
353 | Generate new solutions based on all previous and
354 | newly added screenshots.
355 |
356 |
357 | )}
358 | >
359 | )}
360 |
361 | {/* Start Over - Always visible */}
362 |
{
365 | try {
366 | const result =
367 | await window.electronAPI.triggerReset()
368 | if (!result.success) {
369 | console.error("Failed to reset:", result.error)
370 | showToast("Error", "Failed to reset", "error")
371 | }
372 | } catch (error) {
373 | console.error("Error resetting:", error)
374 | showToast("Error", "Failed to reset", "error")
375 | }
376 | }}
377 | >
378 |
379 |
Start Over
380 |
381 |
382 | {COMMAND_KEY}
383 |
384 |
385 | R
386 |
387 |
388 |
389 |
390 | Start fresh with a new question.
391 |
392 |
393 |
394 |
395 | {/* Language Selector only */}
396 |
397 |
401 |
402 |
403 |
404 |
405 | )}
406 |
407 |