import { useState, useCallback } from "react"; interface AlertState { visible: boolean; type: "success" | "error" | "confirm"; title: string; message: string; onConfirm?: () => void; confirmText?: string; cancelText?: string; } const INITIAL: AlertState = { visible: false, type: "error", title: "", message: "", }; export function useAlert() { const [alert, setAlert] = useState(INITIAL); const showError = useCallback((title: string, message: string) => { setAlert({ visible: true, type: "error", title, message }); }, []); const showSuccess = useCallback((title: string, message: string) => { setAlert({ visible: true, type: "success", title, message }); }, []); const showConfirm = useCallback( ( title: string, message: string, onConfirm: () => void, confirmText?: string, cancelText?: string, ) => { setAlert({ visible: true, type: "confirm", title, message, onConfirm, confirmText, cancelText, }); }, [], ); const hideAlert = useCallback(() => { setAlert(INITIAL); }, []); return { alert, showError, showSuccess, showConfirm, hideAlert }; }