import { create } from 'zustand'; type Mode = 'input' | 'confirm'; interface DialogState { open: boolean; mode: Mode; title: string; message: string; placeholder: string; resolve: ((value: string | null) => void) | null; showInput: (title: string, placeholder?: string) => Promise; showConfirm: (title: string, message: string) => Promise; close: (value: string | null) => void; } export const useDialog = create((set, get) => ({ open: false, mode: 'input', title: '', message: '', placeholder: '', resolve: null, showInput: (title, placeholder = '') => new Promise((resolve) => { set({ open: true, mode: 'input', title, placeholder, resolve }); }), showConfirm: (title, message) => new Promise((resolve) => { set({ open: true, mode: 'confirm', title, message, resolve: ((v: string | null) => resolve(v === 'yes')) }); }), close: (value) => { const r = get().resolve; set({ open: false, resolve: null }); r?.(value); }, }));