| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 |
- 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> = (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;
|