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; | |