import { createSignal } from "solid-js" export type AlertVariant = "info" | "warning" | "error" export type AlertDialogState = { type?: "alert" | "confirm" title?: string message: string detail?: string variant?: AlertVariant confirmLabel?: string cancelLabel?: string onConfirm?: () => void onCancel?: () => void resolve?: (value: boolean) => void } const [alertDialogState, setAlertDialogState] = createSignal(null) export function showAlertDialog(message: string, options?: Omit) { setAlertDialogState({ type: "alert", message, ...options, }) } export function showConfirmDialog(message: string, options?: Omit): Promise { const activeElement = typeof document !== "undefined" ? (document.activeElement as HTMLElement | null) : null activeElement?.blur() return new Promise((resolve) => { setAlertDialogState({ type: "confirm", message, ...options, resolve, }) }) } export function dismissAlertDialog() { setAlertDialogState(null) } export { alertDialogState }