system-praktyk-front/src/state/reducer/edition.ts
2020-11-07 23:33:23 +01:00

34 lines
1.0 KiB
TypeScript

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;