import { useState, useCallback, createContext, useContext, ReactNode } from 'react' import { AlertTriangle, CheckCircle, X } from 'lucide-react' import { useLanguage } from '../contexts/LanguageContext' type DialogType = 'confirm' | 'alert' interface DialogState { open: boolean type: DialogType title: string message: string resolve?: (value: boolean) => void } interface DialogContextType { confirm: (title: string, message: string) => Promise alert: (title: string, message: string) => Promise } const DialogContext = createContext(undefined) export function DialogProvider({ children }: { children: ReactNode }) { const [dialog, setDialog] = useState({ open: false, type: 'alert', title: '', message: '' }) const { t } = useLanguage() const confirm = useCallback((title: string, message: string) => { return new Promise((resolve) => { setDialog({ open: true, type: 'confirm', title, message, resolve }) }) }, []) const alert = useCallback((title: string, message: string) => { return new Promise((resolve) => { setDialog({ open: true, type: 'alert', title, message, resolve: () => resolve() }) }) }, []) const close = (result: boolean) => { dialog.resolve?.(result) setDialog({ open: false, type: 'alert', title: '', message: '' }) } return ( {children} {dialog.open && (
{dialog.type === 'confirm' ? : }

{t(dialog.title)}

{dialog.type === 'alert' && ( )}

{t(dialog.message)}

{dialog.type === 'confirm' && ( )}
)}
) } export function useDialog() { const ctx = useContext(DialogContext) if (!ctx) throw new Error('useDialog must be used within DialogProvider') return ctx }