@@ -3,27 +3,59 @@ import { reduxHooks } from 'hooks';
33export 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