import ContactForm from '@/components/addOns/addon-sidebars/contacts/ContactForm';
import { useEffect } from 'react';
import { Dialog, DialogContent, DialogHeader, DialogTitle } from '../ui/dialog';

type Mode = 'add' | 'edit';

const ContactAddModal = ({
    isOpen,
    setIsOpen,
    mode = 'add',
    initialContact,
    onSubmit,
    externalErrors,
}: {
    isOpen: boolean;
    setIsOpen: (open: boolean) => void;
    mode?: Mode;
    initialContact?: any;
    onSubmit?: (values: any) => void;
    externalErrors?: Record<string, string | string[]>;
}) => {
    const defaultValues = {
        name: '',
        phone: '',
        email: '',
        notes: '',
    };

    useEffect(() => {
        // placeholder for any side-effects when opening modal
    }, [isOpen, mode, initialContact]);

    const handleSubmit = async (values: any) => {
        // Parent controls closing on success via onSuccess callback
        if (onSubmit) await onSubmit(values);
        else console.log('Saving contact:', values);
    };

    return (
        <Dialog open={isOpen} onOpenChange={setIsOpen}>
            <DialogContent className="sm:max-w-[600px]">
                <DialogHeader>
                    <DialogTitle className="text-xl font-semibold">{mode === 'add' ? 'Add Contact' : 'Edit Contact'}</DialogTitle>
                </DialogHeader>

                <div className="space-y-6 pt-4">
                    <ContactForm mode={mode} initialContact={initialContact} onSubmitContact={handleSubmit} onCancel={() => setIsOpen(false)} />
                </div>
            </DialogContent>
        </Dialog>
    );
};

export default ContactAddModal;
