mirror of
https://github.com/christianvidalwolf-prog/Craze-Data-check.git
synced 2026-08-03 14:55:24 +02:00
Add confirmation to Gemini actions in EditPanel
This commit is contained in:
@@ -32,6 +32,7 @@ export function EditPanel({ row, rowIndex, onSave, onClose, onCaptureState }: Ed
|
|||||||
const [loadingField, setLoadingField] = useState<string | null>(null);
|
const [loadingField, setLoadingField] = useState<string | null>(null);
|
||||||
const [error, setError] = useState<string | null>(null);
|
const [error, setError] = useState<string | null>(null);
|
||||||
const [isConfirmOpen, setIsConfirmOpen] = useState(false);
|
const [isConfirmOpen, setIsConfirmOpen] = useState(false);
|
||||||
|
const [pendingGeminiField, setPendingGeminiField] = useState<keyof typeof formData | null>(null);
|
||||||
|
|
||||||
const isModified = (field: keyof typeof formData) => {
|
const isModified = (field: keyof typeof formData) => {
|
||||||
const colMap: Record<string, number> = {
|
const colMap: Record<string, number> = {
|
||||||
@@ -52,6 +53,13 @@ export function EditPanel({ row, rowIndex, onSave, onClose, onCaptureState }: Ed
|
|||||||
};
|
};
|
||||||
|
|
||||||
const handleGenerate = async (field: keyof typeof formData) => {
|
const handleGenerate = async (field: keyof typeof formData) => {
|
||||||
|
setPendingGeminiField(field);
|
||||||
|
};
|
||||||
|
|
||||||
|
const executeGenerate = async () => {
|
||||||
|
if (!pendingGeminiField) return;
|
||||||
|
const field = pendingGeminiField;
|
||||||
|
setPendingGeminiField(null);
|
||||||
setLoadingField(field);
|
setLoadingField(field);
|
||||||
setError(null);
|
setError(null);
|
||||||
|
|
||||||
@@ -261,7 +269,6 @@ export function EditPanel({ row, rowIndex, onSave, onClose, onCaptureState }: Ed
|
|||||||
Save to Memory
|
Save to Memory
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<ConfirmModal
|
<ConfirmModal
|
||||||
isOpen={isConfirmOpen}
|
isOpen={isConfirmOpen}
|
||||||
onConfirm={handleSave}
|
onConfirm={handleSave}
|
||||||
@@ -271,6 +278,16 @@ export function EditPanel({ row, rowIndex, onSave, onClose, onCaptureState }: Ed
|
|||||||
type="info"
|
type="info"
|
||||||
confirmText="Save changes"
|
confirmText="Save changes"
|
||||||
/>
|
/>
|
||||||
|
|
||||||
|
<ConfirmModal
|
||||||
|
isOpen={!!pendingGeminiField}
|
||||||
|
onConfirm={executeGenerate}
|
||||||
|
onCancel={() => 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"
|
||||||
|
/>
|
||||||
</div>
|
</div>
|
||||||
</>
|
</>
|
||||||
);
|
);
|
||||||
|
|||||||
Reference in New Issue
Block a user