diff --git a/src/app/views/starting-point/starting-point.state.ts b/src/app/views/starting-point/starting-point.state.ts new file mode 100644 index 0000000..b4c79b6 --- /dev/null +++ b/src/app/views/starting-point/starting-point.state.ts @@ -0,0 +1,37 @@ +import { patchState, signalStore, withMethods, withState } from '@ngrx/signals'; + +export type StartingPointState = { + name: string; + gender: Gender; + afterHighSchool: AfterHighSchool; +}; + +export enum Gender { + Undefined = '', + Male = 'male', + Female = 'female', +} + +export enum AfterHighSchool { + Undefined = '', + College = 'college', + Workforce = 'workforce', +} + +const initialState: StartingPointState = { + name: '', + gender: Gender.Undefined, + afterHighSchool: AfterHighSchool.Undefined, +}; + +export const StartingPointStateStore = signalStore( + withState(initialState), + withMethods(store => ({ + updateState: ({ name, gender, afterHighSchool }: Partial) => + patchState(store, () => ({ + name: name ?? '', + gender: gender ?? Gender.Undefined, + afterHighSchool: afterHighSchool ?? AfterHighSchool.Undefined, + })), + })) +);