Spaces:
Paused
Paused
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<ModalEnum>) => { | |
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; | |