import {ReducerAction} from '../../global-types'; import {Auth, User} from './types'; export function authReducer( state: Auth, action: ReducerAction<'login' | 'loginSuccess' | 'loginError' | 'logout'>, ): Auth { switch (action.type) { case 'login': { return { ...state, loading: true, user: undefined, error: undefined, isAuth: false, }; } case 'loginSuccess': { return { ...state, loading: false, auth: action.payload.auth, error: undefined, isAuth: true, }; } case 'loginError': { return { ...state, user: undefined, loading: false, error: action.payload.error, isAuth: false, }; } case 'logout': { return { ...state, user: undefined, loading: false, error: undefined, isAuth: false, }; } default: { return state; } } }