diff --git a/src/components/dashboard/main-content/course-enrollments/course-cards/CompletedCourseCard.jsx b/src/components/dashboard/main-content/course-enrollments/course-cards/CompletedCourseCard.jsx index 08536ad81a..acbfd0e3d3 100644 --- a/src/components/dashboard/main-content/course-enrollments/course-cards/CompletedCourseCard.jsx +++ b/src/components/dashboard/main-content/course-enrollments/course-cards/CompletedCourseCard.jsx @@ -19,6 +19,7 @@ const CompletedCourseCard = (props) => { startDate, endDate, mode, + resumeCourseRunUrl, } = props; const config = getConfig(); @@ -34,6 +35,7 @@ const CompletedCourseCard = (props) => { courseRunId={courseRunId} mode={mode} startDate={startDate} + resumeCourseRunUrl={resumeCourseRunUrl} /> ); }; @@ -86,6 +88,7 @@ CompletedCourseCard.propTypes = { endDate: PropTypes.string, startDate: PropTypes.string, mode: PropTypes.string, + resumeCourseRunUrl: PropTypes.string, }; CompletedCourseCard.defaultProps = { @@ -93,6 +96,7 @@ CompletedCourseCard.defaultProps = { endDate: null, startDate: null, mode: null, + resumeCourseRunUrl: null, }; export default CompletedCourseCard; diff --git a/src/components/dashboard/main-content/course-enrollments/course-cards/ContinueLearningButton.jsx b/src/components/dashboard/main-content/course-enrollments/course-cards/ContinueLearningButton.jsx index 9c2768abea..da1b6fa9b7 100644 --- a/src/components/dashboard/main-content/course-enrollments/course-cards/ContinueLearningButton.jsx +++ b/src/components/dashboard/main-content/course-enrollments/course-cards/ContinueLearningButton.jsx @@ -24,6 +24,7 @@ const ContinueLearningButton = ({ courseRunId, startDate, mode, + resumeCourseRunUrl, }) => { const { enterpriseConfig } = useContext(AppContext); @@ -43,7 +44,10 @@ const ContinueLearningButton = ({ const variant = isExecutiveEducation2UCourse ? 'inverse-primary' : 'outline-primary'; const renderContent = () => { - if (!isCourseStarted() && startDate) { + // resumeCourseRunUrl indicates that learner has made progress, available only if the learner has started learning. + // The "Start Course" is visible either when the course has not started or when the course has started but the + // learner has not yet begun the learning. + if ((!isCourseStarted() && startDate) || (isCourseStarted && !resumeCourseRunUrl)) { return 'Start course'; } return 'Resume'; @@ -67,6 +71,7 @@ ContinueLearningButton.defaultProps = { className: null, startDate: null, mode: null, + resumeCourseRunUrl: null, }; ContinueLearningButton.propTypes = { @@ -76,6 +81,7 @@ ContinueLearningButton.propTypes = { courseRunId: PropTypes.string.isRequired, startDate: PropTypes.string, mode: PropTypes.string, + resumeCourseRunUrl: PropTypes.string, }; export default ContinueLearningButton; diff --git a/src/components/dashboard/main-content/course-enrollments/course-cards/InProgressCourseCard.jsx b/src/components/dashboard/main-content/course-enrollments/course-cards/InProgressCourseCard.jsx index 360d170d3b..722287cfb3 100644 --- a/src/components/dashboard/main-content/course-enrollments/course-cards/InProgressCourseCard.jsx +++ b/src/components/dashboard/main-content/course-enrollments/course-cards/InProgressCourseCard.jsx @@ -22,6 +22,7 @@ export const InProgressCourseCard = ({ courseRunStatus, startDate, mode, + resumeCourseRunUrl, ...rest }) => { const { @@ -49,6 +50,7 @@ export const InProgressCourseCard = ({ courseRunId={courseRunId} mode={mode} startDate={startDate} + resumeCourseRunUrl={resumeCourseRunUrl} /> {shouldShowUpgradeButton && } @@ -185,11 +187,13 @@ InProgressCourseCard.propTypes = { courseRunStatus: PropTypes.string.isRequired, startDate: PropTypes.string, mode: PropTypes.string, + resumeCourseRunUrl: PropTypes.string, }; InProgressCourseCard.defaultProps = { startDate: null, mode: null, + resumeCourseRunUrl: null, }; export default InProgressCourseCard; diff --git a/src/components/dashboard/main-content/course-enrollments/course-cards/SavedForLaterCourseCard.jsx b/src/components/dashboard/main-content/course-enrollments/course-cards/SavedForLaterCourseCard.jsx index e28b71b8e9..2a8dd726b3 100644 --- a/src/components/dashboard/main-content/course-enrollments/course-cards/SavedForLaterCourseCard.jsx +++ b/src/components/dashboard/main-content/course-enrollments/course-cards/SavedForLaterCourseCard.jsx @@ -21,6 +21,7 @@ const SavedForLaterCourseCard = (props) => { isRevoked, startDate, mode, + resumeCourseRunUrl, } = props; const { updateCourseEnrollmentStatus, @@ -104,6 +105,7 @@ const SavedForLaterCourseCard = (props) => { courseRunId={courseRunId} mode={mode} startDate={startDate} + resumeCourseRunUrl={resumeCourseRunUrl} /> ); }; @@ -140,6 +142,7 @@ SavedForLaterCourseCard.propTypes = { endDate: PropTypes.string, startDate: PropTypes.string, mode: PropTypes.string, + resumeCourseRunUrl: PropTypes.string, }; SavedForLaterCourseCard.defaultProps = { @@ -147,6 +150,7 @@ SavedForLaterCourseCard.defaultProps = { endDate: null, startDate: null, mode: null, + resumeCourseRunUrl: null, }; export default SavedForLaterCourseCard; diff --git a/src/components/dashboard/main-content/course-enrollments/data/tests/utils.test.js b/src/components/dashboard/main-content/course-enrollments/data/tests/utils.test.js index 98cb9d33f0..b4d8eaa918 100644 --- a/src/components/dashboard/main-content/course-enrollments/data/tests/utils.test.js +++ b/src/components/dashboard/main-content/course-enrollments/data/tests/utils.test.js @@ -24,6 +24,7 @@ describe('transformCourseEnrollment', () => { isRevoked: originalCourseEnrollment.isRevoked, notifications: originalCourseEnrollment.dueDates, canUnenroll: false, + resumeCourseRunUrl: 'http://www.resumecourserun.com', }; expect(transformCourseEnrollment(originalCourseEnrollment)).toEqual(transformedCourseEnrollment); }); @@ -52,6 +53,7 @@ describe('transformCourseEnrollment', () => { isRevoked: originalCourseEnrollment.isRevoked, notifications: originalCourseEnrollment.dueDates, canUnenroll, + resumeCourseRunUrl: 'http://www.resumecourserun.com', }; expect(transformCourseEnrollment(originalCourseEnrollment)).toEqual(transformedCourseEnrollment); }); diff --git a/src/components/dashboard/main-content/course-enrollments/data/utils.js b/src/components/dashboard/main-content/course-enrollments/data/utils.js index 3633cc0674..e3317b01da 100644 --- a/src/components/dashboard/main-content/course-enrollments/data/utils.js +++ b/src/components/dashboard/main-content/course-enrollments/data/utils.js @@ -41,7 +41,6 @@ export const transformCourseEnrollment = (rawCourseEnrollment) => { // Delete renamed/unused fields delete courseEnrollment.displayName; delete courseEnrollment.micromastersTitle; - delete courseEnrollment.resumeCourseRunUrl; delete courseEnrollment.courseRunUrl; delete courseEnrollment.certificateDownloadUrl; delete courseEnrollment.emailsEnabled;