From 3b629bfb961ddffcd1b265f9398f1a6a37a94f9c Mon Sep 17 00:00:00 2001 From: Christian Vidal Wolf Date: Sun, 29 Mar 2026 18:29:11 +0200 Subject: [PATCH] Add confirmation to Gemini actions in EditPanel --- src/components/EditPanel.tsx | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/src/components/EditPanel.tsx b/src/components/EditPanel.tsx index 08bfe55..27644c5 100644 --- a/src/components/EditPanel.tsx +++ b/src/components/EditPanel.tsx @@ -32,6 +32,7 @@ export function EditPanel({ row, rowIndex, onSave, onClose, onCaptureState }: Ed const [loadingField, setLoadingField] = useState(null); const [error, setError] = useState(null); const [isConfirmOpen, setIsConfirmOpen] = useState(false); + const [pendingGeminiField, setPendingGeminiField] = useState(null); const isModified = (field: keyof typeof formData) => { const colMap: Record = { @@ -52,6 +53,13 @@ export function EditPanel({ row, rowIndex, onSave, onClose, onCaptureState }: Ed }; const handleGenerate = async (field: keyof typeof formData) => { + setPendingGeminiField(field); + }; + + const executeGenerate = async () => { + if (!pendingGeminiField) return; + const field = pendingGeminiField; + setPendingGeminiField(null); setLoadingField(field); setError(null); @@ -261,7 +269,6 @@ export function EditPanel({ row, rowIndex, onSave, onClose, onCaptureState }: Ed Save to Memory - + + setPendingGeminiField(null)} + title="Confirm AI Action" + message={`Are you sure you want to use Gemini to ${((pendingGeminiField === 'longEn' && formData.longDe) || (pendingGeminiField === 'shortEn' && formData.shortDe)) ? 'translate' : 'generate'} the ${pendingGeminiField} field?`} + type="info" + confirmText="Start Generation" + /> );