import { useCallback, useState } from 'react'; interface ConfirmationOptions { title: string; message: string; confirmText?: string; cancelText?: string; variant?: 'danger' | 'warning' | 'info'; } interface ConfirmationState extends ConfirmationOptions { isOpen: boolean; onConfirm: () => void; onCancel: () => void; } /** * Hook for managing confirmation dialogs with consistent UX */ export function useConfirmation() { const [state, setState] = useState(null); const confirm = useCallback((options: ConfirmationOptions): Promise => { return new Promise((resolve) => { const onConfirm = () => { setState(null); resolve(true); }; const onCancel = () => { setState(null); resolve(false); }; setState({ ...options, isOpen: true, onConfirm, onCancel, }); }); }, []); const close = useCallback(() => { setState(null); }, []); return { confirm, close, state, }; }