import { useEffect } from 'react'; import { useForm } from 'react-hook-form'; import { zodResolver } from '@hookform/resolvers/zod'; import { Button, Dialog, DialogContent, DialogHeader, DialogTitle, DialogFooter, Label, Textarea, } from '@/components'; import { UpdateAIConfigurationRequest, updateAIConfigurationRequestSchema, } from '@insforge/shared-schemas'; interface SystemPromptDialogProps { open: boolean; onOpenChange: (open: boolean) => void; initialSystemPrompt: string | null | undefined; onSuccess: (data: UpdateAIConfigurationRequest) => void; } export function SystemPromptDialog({ open, onOpenChange, initialSystemPrompt, onSuccess, }: SystemPromptDialogProps) { const form = useForm({ resolver: zodResolver(updateAIConfigurationRequestSchema), defaultValues: { systemPrompt: initialSystemPrompt ?? null, }, }); // Reset form when dialog opens with new data useEffect(() => { if (open) { form.reset({ systemPrompt: initialSystemPrompt ?? null, }); } }, [open, initialSystemPrompt, form]); const handleFormSubmit = (e: React.FormEvent) => { e.preventDefault(); void form.handleSubmit((data: UpdateAIConfigurationRequest) => { onSuccess(data); onOpenChange(false); })(); }; const handleCancel = () => { onOpenChange(false); }; return ( Edit System Prompt