Skip to content

Commit 4f1bd7e

Browse files
committed
feat: Disable Begin Course button if course is closed by prerequisites from #716
1 parent 2cd4bf1 commit 4f1bd7e

File tree

1 file changed

+38
-6
lines changed
  • src/containers/CourseCard/components

1 file changed

+38
-6
lines changed

src/containers/CourseCard/components/hooks.js

Lines changed: 38 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,27 +3,59 @@ import { reduxHooks } from 'hooks';
33
export const useActionDisabledState = (cardId) => {
44
const { isMasquerading } = reduxHooks.useMasqueradeData();
55
const {
6-
hasAccess, isAudit, isAuditAccessExpired,
6+
hasAccess, isAudit, isAuditAccessExpired, coursewareAccess,
77
} = reduxHooks.useCardEnrollmentData(cardId);
88
const {
99
isEntitlement, isFulfilled, canChange, hasSessions,
1010
} = reduxHooks.useCardEntitlementData(cardId);
1111

1212
const { resumeUrl, homeUrl } = reduxHooks.useCardCourseRunData(cardId);
1313

14-
const disableBeginCourse = !homeUrl || (isMasquerading || !hasAccess || (isAudit && isAuditAccessExpired));
15-
const disableResumeCourse = !resumeUrl || (isMasquerading || !hasAccess || (isAudit && isAuditAccessExpired));
16-
const disableViewCourse = !hasAccess || (isAudit && isAuditAccessExpired);
17-
const disableSelectSession = !isEntitlement || isMasquerading || !hasAccess || (!canChange || !hasSessions);
14+
const isStaff = Boolean(coursewareAccess?.isStaff) || false;
15+
const blockedByPrereqs = Boolean(coursewareAccess?.hasUnmetPrerequisites);
1816

19-
const disableCourseTitle = (isEntitlement && !isFulfilled) || disableViewCourse;
17+
const disableBeginCourse = !isStaff && (
18+
!homeUrl
19+
|| isMasquerading
20+
|| !hasAccess
21+
|| (isAudit && isAuditAccessExpired)
22+
|| blockedByPrereqs
23+
);
24+
25+
const disableResumeCourse = !isStaff && (
26+
!resumeUrl
27+
|| (isMasquerading
28+
|| !hasAccess
29+
|| (isAudit && isAuditAccessExpired))
30+
|| blockedByPrereqs
31+
);
32+
33+
const disableViewCourse = !isStaff && (
34+
!hasAccess
35+
|| (isAudit && isAuditAccessExpired)
36+
|| blockedByPrereqs
37+
);
38+
39+
const disableSelectSession = !isStaff && (
40+
!isEntitlement
41+
|| isMasquerading
42+
|| !hasAccess
43+
|| (!canChange || !hasSessions)
44+
|| blockedByPrereqs
45+
);
46+
47+
const disableCourseTitle = !isStaff && (
48+
(isEntitlement && !isFulfilled)
49+
|| disableViewCourse
50+
);
2051

2152
return {
2253
disableBeginCourse,
2354
disableResumeCourse,
2455
disableViewCourse,
2556
disableSelectSession,
2657
disableCourseTitle,
58+
blockedByPrereqs,
2759
};
2860
};
2961

0 commit comments

Comments
 (0)