Files
cpost-mobile/src/screens/auth/registeration/lib/modalStore.ts
Samandar Turgunboyev fd95422447 Initial commit
2025-08-26 16:26:59 +05:00

43 lines
1.0 KiB
TypeScript

import { create } from 'zustand';
interface ModalState {
isVisible: boolean;
title: string;
message: string;
type: 'success' | 'error' | 'info';
onConfirm: () => void;
onCancel?: () => void;
openModal: (
title: string,
message: string,
type?: 'success' | 'error' | 'info',
onConfirm?: () => void,
onCancel?: () => void
) => void;
closeModal: () => void;
}
export const useModalStore = create<ModalState>((set) => ({
isVisible: false,
title: '',
message: '',
type: 'info',
onConfirm: () => { },
onCancel: undefined,
openModal: (title, message, type = 'info', onConfirm, onCancel) =>
set({
isVisible: true,
title,
message,
type,
onConfirm: () => {
if (onConfirm) onConfirm();
set({ isVisible: false });
},
onCancel: onCancel || undefined,
}),
closeModal: () => set({ isVisible: false }),
}));