State Management
Managing context, state and hooks
Last updated
export const LOGIN = 'LOGIN';
export const LOGOUT = 'LOGOUT';
export const MENU_OPEN = '@customization/MENU_OPEN';
export const MENU_TYPE = '@customization/MENU_TYPE';
export const THEME_LOCALE = '@customization/THEME_LOCALE';
export const THEME_RTL = '@customization/THEME_RTL';
export const SNACKBAR_OPEN = '@snackbar/SNACKBAR_OPEN';
export const ACCOUNT_INITIALISE = 'ACCOUNT_INITIALISE';
export const FIREBASE_STATE_CHANGED = 'FIREBASE_STATE_CHANGED';
export const SET_MENU = 'SET_MENU';(state, action) => newState// project imports
import config from 'config';
// action - state management
import * as actionTypes from './actions';
export const initialState = {
isOpen: [], // for active default menu
fontFamily: config.fontFamily,
borderRadius: config.borderRadius,
outlinedFilled: config.outlinedFilled,
navType: config.theme,
presetColor: config.presetColor,
locale: config.i18n,
rtlLayout: config.rtlLayout,
opened: true
};
// ===========================|| CUSTOMIZATION REDUCER ||===================== //
const customizationReducer = (state = initialState, action) => {
let id;
switch (action.type) {
case actionTypes.MENU_OPEN:
id = action.id;
return {
...state,
isOpen: [id]
};
case actionTypes.MENU_TYPE:
return {
...state,
navType: action.navType
};
...
...
...
default:
return state;
}
};
export default customizationReducer;// project imports
import config from 'config';
// action - state management
import * as actionTypes from './actions';
import { CustomizationStateProps, DefaultRootStateProps } from 'types';
export const initialState: DefaultRootStateProps['customization'] = {
isOpen: [], // for active default menu
fontFamily: config.fontFamily,
borderRadius: config.borderRadius,
outlinedFilled: config.outlinedFilled,
navType: config.theme,
presetColor: config.presetColor,
locale: config.i18n,
rtlLayout: config.rtlLayout,
opened: true
};
// =========================|| CUSTOMIZATION REDUCER ||====================== //
const customizationReducer = (state = initialState, action: CustomizationStateProps) => {
let id;
switch (action.type) {
case actionTypes.MENU_OPEN:
id = action.id;
return {
...state,
isOpen: [id]
};
case actionTypes.MENU_TYPE:
return {
...state,
navType: action.navType
};
...
...
default:
return state;
}
};
export default customizationReducer;