import type { PayloadAction } from "@reduxjs/toolkit"; import { createSlice } from "@reduxjs/toolkit"; import type { INotify } from "@/models/notify.model"; export interface INotifyDialog extends INotify { confirmButtonText?: string; cancelButtonText?: string; onConfirm?: () => void; onClose?: () => void; } export interface INotifyStore { notifies: INotifyDialog[]; } const notifySlice = createSlice({ name: "notify", initialState: { notifies: [], } as INotifyStore, reducers: { setNotify(state, action: PayloadAction) { state.notifies.push(action.payload); }, clearNotifies(state) { state.notifies = []; }, clearNotify(state, action: PayloadAction) { state.notifies = state.notifies.filter((x) => x.title !== action.payload); }, }, }); export const notifyReducer = notifySlice.reducer; export const notifyActions = notifySlice.actions;