김장현
8 months ago
13 changed files with 129 additions and 133 deletions
@ -0,0 +1,41 @@
|
||||
import { createSlice } from '@reduxjs/toolkit'; |
||||
import { initMenuModel } from './layoutState'; |
||||
|
||||
const layoutSlice = createSlice({ |
||||
name: 'layoutSlice', |
||||
initialState: initMenuModel, |
||||
reducers: { |
||||
dispatchTopMenu: (state, action) => { |
||||
const topMenuCd = action.payload; |
||||
state.topMenuCd = topMenuCd; |
||||
}, |
||||
handlerContentWidth: (state, action) => { |
||||
const value = action.payload; |
||||
state.contentWidth = value; |
||||
}, |
||||
handlerMunuCollapsed: (state, action) => { |
||||
const value = action.payload; |
||||
localStorage.setItem('menuCollapsed', value); |
||||
state.menuCollapsed = value; |
||||
}, |
||||
handlerMenuHidden: (state, action) => { |
||||
const value = action.payload; |
||||
state.menuHidden = value; |
||||
}, |
||||
handlerRTL: (state, action) => { |
||||
const value = action.payload; |
||||
state.isRTL = value; |
||||
} |
||||
}, |
||||
extraReducers: {} |
||||
}); |
||||
|
||||
export const { |
||||
dispatchTopMenu, |
||||
handlerContentWidth, |
||||
handlerMenuHidden, |
||||
handlerMunuCollapsed, |
||||
handlerRTL |
||||
} = layoutSlice.actions; |
||||
|
||||
export const layoutReducer = layoutSlice.reducer; |
@ -0,0 +1,23 @@
|
||||
import themeConfig from '@src/configs/themeConfig'; |
||||
|
||||
const initialMenuCollapsed = () => { |
||||
const item = window.localStorage.getItem('menuCollapsed'); |
||||
//** Parse stored json or if none return initialValue
|
||||
return item ? JSON.parse(item) : themeConfig.layout.menu.isCollapsed; |
||||
}; |
||||
|
||||
export const initMenuModel: MenuModelState = { |
||||
topMenuCd: localStorage.getItem('topMenuCd') || 'basis', |
||||
isRTL: themeConfig.layout.isRTL, |
||||
menuCollapsed: initialMenuCollapsed(), |
||||
menuHidden: themeConfig.layout.menu.isHidden, |
||||
contentWidth: themeConfig.layout.contentWidth |
||||
}; |
||||
|
||||
export interface MenuModelState { |
||||
topMenuCd: string; |
||||
isRTL: boolean; |
||||
menuCollapsed: string; |
||||
menuHidden: boolean; |
||||
contentWidth: string; |
||||
} |
@ -1,34 +0,0 @@
|
||||
// ** UseJWT import to get config
|
||||
import useJwt from '@src/auth/jwt/useJwt' |
||||
|
||||
const config = useJwt.jwtConfig |
||||
|
||||
// ** Handle User Login
|
||||
export const handleLogin = data => { |
||||
return dispatch => { |
||||
dispatch({ |
||||
type: 'LOGIN', |
||||
data, |
||||
config, |
||||
[config.storageTokenKeyName]: data[config.storageTokenKeyName], |
||||
[config.storageRefreshTokenKeyName]: data[config.storageRefreshTokenKeyName] |
||||
}) |
||||
|
||||
// ** Add to user, accessToken & refreshToken to localStorage
|
||||
localStorage.setItem('userData', JSON.stringify(data)) |
||||
localStorage.setItem(config.storageTokenKeyName, JSON.stringify(data.accessToken)) |
||||
localStorage.setItem(config.storageRefreshTokenKeyName, JSON.stringify(data.refreshToken)) |
||||
} |
||||
} |
||||
|
||||
// ** Handle User Logout
|
||||
export const handleLogout = () => { |
||||
return dispatch => { |
||||
dispatch({ type: 'LOGOUT', [config.storageTokenKeyName]: null, [config.storageRefreshTokenKeyName]: null }) |
||||
|
||||
// ** Remove user, accessToken & refreshToken from localStorage
|
||||
localStorage.removeItem('userData') |
||||
localStorage.removeItem(config.storageTokenKeyName) |
||||
localStorage.removeItem(config.storageRefreshTokenKeyName) |
||||
} |
||||
} |
@ -1,11 +0,0 @@
|
||||
// ** Handles Layout Content Width (full / boxed)
|
||||
export const handleContentWidth = value => dispatch => dispatch({ type: 'HANDLE_CONTENT_WIDTH', value }) |
||||
|
||||
// ** Handles Menu Collapsed State (Bool)
|
||||
export const handleMenuCollapsed = value => dispatch => dispatch({ type: 'HANDLE_MENU_COLLAPSED', value }) |
||||
|
||||
// ** Handles Menu Hidden State (Bool)
|
||||
export const handleMenuHidden = value => dispatch => dispatch({ type: 'HANDLE_MENU_HIDDEN', value }) |
||||
|
||||
// ** Handles RTL (Bool)
|
||||
export const handleRTL = value => dispatch => dispatch({ type: 'HANDLE_RTL', value }) |
@ -1,26 +0,0 @@
|
||||
// ** Initial State
|
||||
const initialState = { |
||||
userData: {} |
||||
}; |
||||
|
||||
const authReducer = (state = initialState, action) => { |
||||
switch (action.type) { |
||||
case 'LOGIN': |
||||
return { |
||||
...state, |
||||
userData: action.data, |
||||
[action.config.storageTokenKeyName]: |
||||
action[action.config.storageTokenKeyName], |
||||
[action.config.storageRefreshTokenKeyName]: |
||||
action[action.config.storageRefreshTokenKeyName] |
||||
}; |
||||
case 'LOGOUT': |
||||
const obj = { ...action }; |
||||
delete obj.type; |
||||
return { ...state, userData: {}, ...obj }; |
||||
default: |
||||
return state; |
||||
} |
||||
}; |
||||
|
||||
export default authReducer; |
@ -1,35 +0,0 @@
|
||||
// ** ThemeConfig Import
|
||||
import themeConfig from '@configs/themeConfig' |
||||
|
||||
// ** Returns Initial Menu Collapsed State
|
||||
const initialMenuCollapsed = () => { |
||||
const item = window.localStorage.getItem('menuCollapsed') |
||||
//** Parse stored json or if none return initialValue
|
||||
return item ? JSON.parse(item) : themeConfig.layout.menu.isCollapsed |
||||
} |
||||
|
||||
// ** Initial State
|
||||
const initialState = { |
||||
isRTL: themeConfig.layout.isRTL, |
||||
menuCollapsed: initialMenuCollapsed(), |
||||
menuHidden: themeConfig.layout.menu.isHidden, |
||||
contentWidth: themeConfig.layout.contentWidth |
||||
} |
||||
|
||||
const layoutReducer = (state = initialState, action) => { |
||||
switch (action.type) { |
||||
case 'HANDLE_CONTENT_WIDTH': |
||||
return { ...state, contentWidth: action.value } |
||||
case 'HANDLE_MENU_COLLAPSED': |
||||
window.localStorage.setItem('menuCollapsed', action.value) |
||||
return { ...state, menuCollapsed: action.value } |
||||
case 'HANDLE_MENU_HIDDEN': |
||||
return { ...state, menuHidden: action.value } |
||||
case 'HANDLE_RTL': |
||||
return { ...state, isRTL: action.value } |
||||
default: |
||||
return state |
||||
} |
||||
} |
||||
|
||||
export default layoutReducer |
Loading…
Reference in new issue