UNPKG

quikfrontend

Version:

A CLI tool for generating React-Vite frontend projects with pre-configured setups

68 lines (63 loc) 2.29 kB
import { createSlice } from '@reduxjs/toolkit'; const localData = JSON.parse(localStorage.getItem('account')); const Dstate = JSON.parse(localStorage.getItem('dState')); const initialState = { dashboardMenuState: true, dashboardFeature: Dstate ? Dstate : 'Home', account: localData ? localData : [], isLoggedIn: localData ? localData.isLoggedIn : false, profileData: [], }; const DashboardSlice = createSlice({ initialState, name: 'dashboard', reducers: { setOpenDMenu: (state, action) => { state.dashboardMenuState = action.payload.dashboardMenuState; }, setCloseDMenu: (state, action) => { state.dashboardMenuState = action.payload.dashboardMenuState; }, setDFeature: (state, action) => { state.dashboardFeature = action.payload.dashboardFeature; localStorage.setItem( 'dState', JSON.stringify(action.payload.dashboardFeature), ); }, setAccount: (state, action) => { state.account = action.payload; state.isLoggedIn = true; const temp = { ...state.account, isLoggedIn: state.isLoggedIn }; localStorage.setItem('account', JSON.stringify(temp)); }, LogOut: (state, action) => { state.account = []; state.profileData = []; state.isLoggedIn = false; state.dashboardMenuState = false; state.dashboardFeature = 'dashboard'; localStorage.clear(); }, setAccountAfterRegister: (state, action) => { state.account = action.payload; state.isLoggedIn = false; const temp1 = { ...state.account, isLoggedIn: state.isLoggedIn }; localStorage.setItem('account', JSON.stringify(temp1)); }, }, }); export const { setOpenDMenu, setCloseDMenu, setDFeature, setAccount, setAccountAfterRegister, LogOut, } = DashboardSlice.actions; export const dashboardMenuState = (state) => state.dashboard.dashboardMenuState; export const dashboardFeature = (state) => state.dashboard.dashboardFeature; export const isUserLoggedIn = (state) => state.dashboard.isLoggedIn; export const selectAccount = (state) => state.dashboard.account; export const selectProfileData = (state) => state.dashboard.profileData; export default DashboardSlice.reducer;