@keybittech/awayto
Version:
Deploy a fully-featured application in about 10 minutes that is primed for quick development. Do business, impress a client with a quick demo, finish your poc with time to spare; all easily achievable with Awayto.
36 lines (32 loc) • 1 kB
text/typescript
import { Reducer } from 'redux';
import {
ILoginState,
ILoginActions,
ILoginActionTypes,
ILogoutActionTypes
} from 'awayto';
const initialLoginState: ILoginState = {
username: '',
isLoggedIn: false,
session: '',
challengeName: ''
};
function reduceLogin(state: ILoginState, action: ILoginActions): ILoginState {
return { ...state, ...action.payload };
}
const loginReducer: Reducer<ILoginState, ILoginActions> = (state = initialLoginState, action) => {
switch (action.type) {
case ILogoutActionTypes.LOGOUT:
return { ...initialLoginState, ...{ isLoggedIn: false } };
case ILoginActionTypes.LOGIN_USER:
case ILoginActionTypes.AUTH_USER:
case ILoginActionTypes.AUTH_SUCCESS:
case ILoginActionTypes.AUTH_DENIAL:
case ILoginActionTypes.RESET_PASSWORD:
case ILoginActionTypes.FORCE_PASS_CHANGE_SUCCESS:
return reduceLogin(state, action);
default:
return state;
}
};
export default loginReducer;