import { createSlice, PayloadAction } from "@reduxjs/toolkit"; import { RootState } from "../store"; export enum ModalEnum { IDLE = "IDLE", AUTH = "AUTH", TEMPLATE = "TEMPLATE", SETTINGS = "SETTINGS", } type InitialStateType = { type: ModalEnum; visible: boolean; }; const initialState = { type: ModalEnum.IDLE, visible: false, }; export const modalSlice = createSlice({ name: "modal", initialState: initialState, reducers: { open_modal: (state: InitialStateType, action: PayloadAction) => { state.type = action.payload; state.visible = true; }, close_modal: (state: InitialStateType) => { state.type = ModalEnum.IDLE; state.visible = false; }, }, }); export const { open_modal, close_modal } = modalSlice.actions; export const modal_state = (state: RootState) => state.modal; export default modalSlice.reducer;