From 5caafa95d637ba19c51487c75b4a44f0389ba113 Mon Sep 17 00:00:00 2001 From: webadderall <131426131+webadderall@users.noreply.github.com> Date: Mon, 20 Apr 2026 21:52:07 +1000 Subject: [PATCH] fix: address CodeRabbit review feedback (round 2) - Gate audio level meter to selected mic device only (helperComponents) - Clear webcam deviceId when 'Default' selected (LaunchWindow) - Wire i18n for 'Custom Fonts' and 'Color' labels (AnnotationTextTab) - Restore keyboard focus ring on sidebar buttons (EditorSidebar) - Add visually-hidden DialogTitle for a11y (ExtensionDetailModal) - Make extension cards keyboard-accessible with role/tabIndex (ExtensionManagerCards) - Write smoke export reports for GIF exports before closing (editorExportWorkflow) - Guard GIF export against zero video dimensions (useEditorExport) - Allow 'Save Again' before requiring loaded video (useEditorExport) --- .../launch/LaunchWindow/helperComponents.tsx | 2 +- src/components/launch/LaunchWindow/index.tsx | 5 +-- .../video-editor/AnnotationTextTab.tsx | 4 +- src/components/video-editor/EditorSidebar.tsx | 2 +- .../ExtensionDetailModal.tsx | 3 +- .../ExtensionManagerCards.tsx | 10 ++++- .../hooks/editorExportWorkflow.ts | 37 +++++++++++++++++++ .../video-editor/hooks/useEditorExport.ts | 18 +++++---- src/i18n/locales/en/editor.json | 4 +- src/i18n/locales/es/editor.json | 4 +- src/i18n/locales/ko/editor.json | 4 +- src/i18n/locales/nl/editor.json | 4 +- src/i18n/locales/zh-CN/editor.json | 4 +- 13 files changed, 79 insertions(+), 22 deletions(-) diff --git a/src/components/launch/LaunchWindow/helperComponents.tsx b/src/components/launch/LaunchWindow/helperComponents.tsx index 8cb1d434..557ae71f 100644 --- a/src/components/launch/LaunchWindow/helperComponents.tsx +++ b/src/components/launch/LaunchWindow/helperComponents.tsx @@ -73,7 +73,7 @@ export function MicDeviceRow({ onSelect: () => void; }) { const { level } = useAudioLevelMeter({ - enabled: true, + enabled: selected, deviceId: device.deviceId, }); diff --git a/src/components/launch/LaunchWindow/index.tsx b/src/components/launch/LaunchWindow/index.tsx index 036a0252..de6a0600 100644 --- a/src/components/launch/LaunchWindow/index.tsx +++ b/src/components/launch/LaunchWindow/index.tsx @@ -126,9 +126,8 @@ export function LaunchWindow() { }, [selectedDeviceId, setMicrophoneDeviceId]); useEffect(() => { - if (selectedVideoDeviceId && selectedVideoDeviceId !== "default") { - setWebcamDeviceId(selectedVideoDeviceId); - } + if (!selectedVideoDeviceId) return; + setWebcamDeviceId(selectedVideoDeviceId === "default" ? undefined : selectedVideoDeviceId); }, [selectedVideoDeviceId, setWebcamDeviceId]); useEffect(() => { diff --git a/src/components/video-editor/AnnotationTextTab.tsx b/src/components/video-editor/AnnotationTextTab.tsx index f2b99587..95f6bbbb 100644 --- a/src/components/video-editor/AnnotationTextTab.tsx +++ b/src/components/video-editor/AnnotationTextTab.tsx @@ -93,7 +93,7 @@ export function AnnotationTextTab({ {customFonts.length > 0 && ( <>