diff --git a/src/components/dashboard/sidebar/SubsidiesSummary.jsx b/src/components/dashboard/sidebar/SubsidiesSummary.jsx index 0831e8b220..cafb8a8951 100644 --- a/src/components/dashboard/sidebar/SubsidiesSummary.jsx +++ b/src/components/dashboard/sidebar/SubsidiesSummary.jsx @@ -1,4 +1,9 @@ -import React, { useContext, useMemo } from 'react'; +import React, { + useContext, + useEffect, + useMemo, + useState +} from 'react'; import { Link } from 'react-router-dom'; import { AppContext } from '@edx/frontend-platform/react'; @@ -15,6 +20,8 @@ import SidebarCard from './SidebarCard'; import { CourseEnrollmentsContext } from '../main-content/course-enrollments/CourseEnrollmentsContextProvider'; import { SubsidyRequestsContext, SUBSIDY_TYPE } from '../../enterprise-subsidy-requests'; import { getOfferExpiringFirst, getPolicyExpiringFirst } from './utils'; +import getActiveAssignments from '../data/utils'; +import { sortAssignmentsByAssignmentStatus } from '../main-content/course-enrollments/data/utils'; function getLearnerCreditSummaryCardData({ enterpriseOffers, redeemableLearnerCreditPolicies }) { const learnerCreditPolicyExpiringFirst = getPolicyExpiringFirst(redeemableLearnerCreditPolicies); @@ -85,6 +92,25 @@ const SubsidiesSummary = ({ const hasAvailableSubsidyOrRequests = ( hasActiveLicenseOrLicenseRequest || hasAssignedCodesOrCodeRequests || learnerCreditSummaryCardData ); + const [assignmentOnlyLearner, setAssignmentOnlyLearner] = useState(false); + useEffect(() => { + const data = redeemableLearnerCreditPolicies?.flatMap(item => item?.learnerContentAssignments || []); + const assignmentsData = sortAssignmentsByAssignmentStatus(data); + const { hasActiveAssignments } = getActiveAssignments(assignmentsData); + if ( + !hasActiveLicenseOrLicenseRequest + && !hasAssignedCodesOrCodeRequests + && !canEnrollWithEnterpriseOffers + && hasActiveAssignments + ) { + setAssignmentOnlyLearner(true); + } + }, [ + redeemableLearnerCreditPolicies, + canEnrollWithEnterpriseOffers, + hasAssignedCodesOrCodeRequests, + hasActiveLicenseOrLicenseRequest + ]); if (!hasAvailableSubsidyOrRequests) { return null; @@ -136,7 +162,7 @@ const SubsidiesSummary = ({ /> )} - {searchCoursesCta && ( + {(searchCoursesCta && !assignmentOnlyLearner) && (