32 lines
750 B
TypeScript
32 lines
750 B
TypeScript
import { createSlice, PayloadAction } from "@reduxjs/toolkit";
|
|
|
|
interface UIState {
|
|
sidebarOpen: boolean;
|
|
showNewUserModal: boolean;
|
|
}
|
|
|
|
const initialState: UIState = {
|
|
sidebarOpen: true,
|
|
showNewUserModal: false,
|
|
};
|
|
|
|
const uiSlice = createSlice({
|
|
name: "ui",
|
|
initialState,
|
|
reducers: {
|
|
toggleSidebar: state => {
|
|
state.sidebarOpen = !state.sidebarOpen;
|
|
},
|
|
setSidebarOpen: (state, action: PayloadAction<boolean>) => {
|
|
state.sidebarOpen = action.payload;
|
|
},
|
|
setShowNewUserModal: (state, action: PayloadAction<boolean>) => {
|
|
state.showNewUserModal = action.payload;
|
|
},
|
|
},
|
|
});
|
|
|
|
export const { toggleSidebar, setSidebarOpen, setShowNewUserModal } =
|
|
uiSlice.actions;
|
|
export default uiSlice.reducer;
|