import { Reducer } from "react"; import { Action, ActionType } from "./actionTypes"; export const defaultState = { loggingIn: false, loggedIn: false, userToken: null, username: null, }; export type State = { loggingIn?: Boolean; loggedIn?: Boolean; userToken?: string; username?: string; error?: string; }; const reducer: Reducer = (state, action) => { switch (action.type) { case "LOGIN_REQUEST": return { ...state, loggingIn: true, loggedIn: false, username: action.username, }; case "LOGIN_SUCCESS": return { loggedIn: true, loggingIn: false, username: action.username, userToken: action.userToken, }; case "LOGIN_FAILURE_DISMISS": return { ...state, error: undefined, }; case "LOGIN_FAILURE": return { error: action.error, }; case "LOGOUT": return {}; default: return state; } }; export default reducer;