UNPKG

@kinde-oss/kinde-auth-react

Version:

Kinde React SDK for authentication

38 lines (32 loc) 857 B
import { State } from "./types"; import { UserProfile } from "@kinde/js-utils"; type Action = | { type: "INITIALISED"; user: UserProfile } | { type: "ERROR"; error: string }; const onInitialise = (state: State, action: Pick<State, "user">): State => ({ ...state, isAuthenticated: Boolean(action.user), user: action.user, isLoading: false, error: undefined, }); const onLogout = (state: State): State => ({ ...state, isAuthenticated: false, user: undefined, }); const onError = (state: State, action: Partial<State>): State => ({ ...state, isLoading: false, error: action.error, }); const reducerMap = { INITIALISED: onInitialise, LOGOUT: onLogout, ERROR: onError, }; export const reducer = (state: State, action: Action) => { return reducerMap[action.type] ? reducerMap[action.type](state, action) : state; };