@tesler-ui/cra-template-typescript
Version:
The base TypeScript template for Create React App.
45 lines (41 loc) • 1.07 kB
text/typescript
import { actionTypes, AnyAction } from '../interfaces/actions'
import {AppState} from '../interfaces/storeSlices'
import {Session} from '@tesler-ui/core/interfaces/session'
export type CustomSession = Session & { logout: boolean }
/**
* Your initial state for this slice
*/
export const initialState: CustomSession = {
active: false,
screens: [],
loginSpin: false,
logout: false
}
export default function sessionReducer(
state: CustomSession = initialState,
action: AnyAction,
store?: Readonly<AppState>
): CustomSession {
switch (action.type) {
/**
* Your reducers for this slice
*/
case actionTypes.logout: {
return {
...state,
loginSpin: false,
active: false,
logout: true
}
}
case actionTypes.loginDone: {
return {
...state,
active: true,
logout: false
}
}
default:
return state
}
}