Files
frontend-app-learner-dashboard/src/containers/CourseCard/components/hooks.js
Adolfo R. Brandes 89559a4987 refactor: migrate to frontend-base
BREAKING CHANGE: refactors the MFE for frontend-base.
2025-06-24 15:31:23 -03:00

34 lines
1.2 KiB
JavaScript

import { useContext } from 'react';
import MasqueradeUserContext from '../../../data/contexts/MasqueradeUserContext';
import { reduxHooks } from '../../../hooks';
export const useActionDisabledState = (cardId) => {
const { isMasquerading } = useContext(MasqueradeUserContext);
const {
hasAccess, isAudit, isAuditAccessExpired,
} = reduxHooks.useCardEnrollmentData(cardId);
const {
isEntitlement, isFulfilled, canChange, hasSessions,
} = reduxHooks.useCardEntitlementData(cardId);
const { resumeUrl, homeUrl } = reduxHooks.useCardCourseRunData(cardId);
const disableBeginCourse = !homeUrl || (isMasquerading || !hasAccess || (isAudit && isAuditAccessExpired));
const disableResumeCourse = !resumeUrl || (isMasquerading || !hasAccess || (isAudit && isAuditAccessExpired));
const disableViewCourse = !hasAccess || (isAudit && isAuditAccessExpired);
const disableSelectSession = !isEntitlement || isMasquerading || !hasAccess || (!canChange || !hasSessions);
const disableCourseTitle = (isEntitlement && !isFulfilled) || disableViewCourse;
return {
disableBeginCourse,
disableResumeCourse,
disableViewCourse,
disableSelectSession,
disableCourseTitle,
};
};
export default useActionDisabledState;