51 lines
1.0 KiB
TypeScript
51 lines
1.0 KiB
TypeScript
// - Import react components
|
|
import {Reducer, Action} from "redux";
|
|
|
|
// - Import action types
|
|
import {AuthorizeActionType} from 'constants/authorizeActionType'
|
|
|
|
import { IAuthorizeAction } from "./IAuthorizeAction";
|
|
import { AuthorizeState } from "./AuthorizeState";
|
|
|
|
|
|
|
|
/**
|
|
* Authorize reducer
|
|
* @param {object} state
|
|
* @param {object} action
|
|
*/
|
|
export var authorizeReducer = (state : AuthorizeState = new AuthorizeState(), action: IAuthorizeAction) =>{
|
|
const { payload } = action;
|
|
switch (action.type) {
|
|
case AuthorizeActionType.LOGIN:
|
|
return{
|
|
...state,
|
|
uid: payload.uid,
|
|
authed: true,
|
|
guest:false
|
|
}
|
|
case AuthorizeActionType.LOGOUT:
|
|
return{
|
|
...state,
|
|
uid: 0,
|
|
authed: false,
|
|
guest:true
|
|
}
|
|
|
|
case AuthorizeActionType.SIGNUP:
|
|
return{
|
|
...state,
|
|
uid: payload.userId
|
|
}
|
|
case AuthorizeActionType.UPDATE_PASSWORD:
|
|
return{
|
|
...state,
|
|
updatePassword: payload.updatePassword
|
|
}
|
|
default:
|
|
return state
|
|
|
|
}
|
|
|
|
}
|