open-codetree / store /features /modalSlice.ts
matt HOFFNER
init
3c3f089
raw
history blame contribute delete
894 Bytes
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;