diff --git a/src/app/degree-planner/store/reducer.ts b/src/app/degree-planner/store/reducer.ts index bf294dd710c2abe65cd95bb1c5f11f287e02842e..2e9f7481ae204366c01ec117f8f2b8faf174a83e 100644 --- a/src/app/degree-planner/store/reducer.ts +++ b/src/app/degree-planner/store/reducer.ts @@ -475,21 +475,26 @@ export function degreePlannerReducer( } case courseActions.CourseActionTypes.AddSaveForLater: { - const { newIndex } = action.payload; + const { courseId, subjectCode, newIndex } = action.payload; + + const savedForLaterCourses = state.savedForLaterCourses.filter(c => { + return !(c.courseId === courseId && c.subjectCode === subjectCode); + }); + const newSavedCourse: SavedForLaterCourse = { id: null, - courseId: action.payload.courseId, + courseId: courseId, termCode: '0000', topicId: 0, - subjectCode: action.payload.subjectCode, + subjectCode: subjectCode, title: action.payload.title, catalogNumber: action.payload.catalogNumber, courseOrder: 0, }; - const savedForLaterCoursesArr = state.savedForLaterCourses.slice(); - savedForLaterCoursesArr.splice(newIndex, 0, newSavedCourse); - return { ...state, savedForLaterCourses: savedForLaterCoursesArr }; + savedForLaterCourses.splice(newIndex, 0, newSavedCourse); + + return { ...state, savedForLaterCourses }; } case planActions.PlanActionTypes.CreatePlanSuccess: {