Skip to content
Snippets Groups Projects
Forked from an inaccessible project.
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
state.ts 1018 B
// Models
import { YearMapping } from '@app/core/models/year';
import { DegreePlan } from '@app/core/models/degree-plan';
import { SavedForLaterCourse } from '@app/core/models/saved-for-later-course';
import { SubjectMapping } from '@app/core/models/course';
import { TermCode } from '@app/core/models/termcode';

export interface DegreePlannerState {
  visibleDegreePlan: DegreePlan | undefined;
  visibleYears: YearMapping;
  savedForLaterCourses: ReadonlyArray<SavedForLaterCourse>;
  activeTermCodes: ReadonlyArray<TermCode>;
  allDegreePlans: ReadonlyArray<DegreePlan>;
  subjects: SubjectMapping;
  subjectDescriptions: SubjectMapping;
  search: { visible: boolean; selectedTerm?: TermCode };
  isLoadingPlan: boolean;
}

export const INITIAL_DEGREE_PLANNER_STATE: DegreePlannerState = {
  visibleDegreePlan: undefined,
  visibleYears: {},
  savedForLaterCourses: [],
  activeTermCodes: [],
  allDegreePlans: [],
  subjects: {},
  subjectDescriptions: {},
  search: { visible: false },
  isLoadingPlan: true,
};