import { Edition } from "@/data/edition"; import { EditionAction, EditionActions } from "@/state/actions/edition"; import { editionSerializationTransformer, Serializable } from "@/serialization"; import { LoginAction, LogoutAction, UserActions } from "@/state/actions"; import { InternshipProgramEntry } from "@/data"; export type EditionState = Serializable<{ edition: Edition | null, program: InternshipProgramEntry[], }> const initialEditionState: EditionState = { edition: null, program: [], }; const editionReducer = (state: EditionState = initialEditionState, action: EditionAction | LogoutAction | LoginAction): EditionState => { switch (action.type) { case EditionActions.Set: return { ...state, edition: editionSerializationTransformer.transform(action.edition), program: action.program, }; case UserActions.Login: case UserActions.Logout: return initialEditionState; } return state; } export default editionReducer;