Skip to content

Commit

Permalink
feat: ENT-8091 hide course search in subsidy summary
Browse files Browse the repository at this point in the history
  • Loading branch information
IrfanUddinAhmad committed Dec 12, 2023
1 parent 1a795a0 commit b9d2b9e
Show file tree
Hide file tree
Showing 3 changed files with 45 additions and 6 deletions.
31 changes: 29 additions & 2 deletions src/components/dashboard/sidebar/SubsidiesSummary.jsx
Original file line number Diff line number Diff line change
@@ -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';

Expand All @@ -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);
Expand Down Expand Up @@ -55,6 +62,7 @@ const SubsidiesSummary = ({
couponCodes: { couponCodesCount },
enterpriseOffers,
canEnrollWithEnterpriseOffers,
hasCurrentEnterpriseOffers,
redeemableLearnerCreditPolicies,
} = useContext(UserSubsidyContext);

Expand Down Expand Up @@ -85,6 +93,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
&& !hasCurrentEnterpriseOffers
&& hasActiveAssignments
) {
setAssignmentOnlyLearner(true);

Check warning on line 107 in src/components/dashboard/sidebar/SubsidiesSummary.jsx

View check run for this annotation

Codecov / codecov/patch

src/components/dashboard/sidebar/SubsidiesSummary.jsx#L107

Added line #L107 was not covered by tests
}
}, [
redeemableLearnerCreditPolicies,
hasCurrentEnterpriseOffers,
hasAssignedCodesOrCodeRequests,
hasActiveLicenseOrLicenseRequest,
]);

if (!hasAvailableSubsidyOrRequests) {
return null;
Expand Down Expand Up @@ -136,7 +163,7 @@ const SubsidiesSummary = ({
/>
)}
</div>
{searchCoursesCta && (
{(searchCoursesCta && !assignmentOnlyLearner) && (
<SidebarCard
cardClassNames="border-0 shadow-none"
>
Expand Down
6 changes: 6 additions & 0 deletions src/components/enterprise-user-subsidy/UserSubsidy.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,8 @@ const UserSubsidy = ({ children }) => {
// Enterprise Offers
const {
enterpriseOffers,
currentEnterpriseOffers,
hasCurrentEnterpriseOffers,
canEnrollWithEnterpriseOffers,
hasLowEnterpriseOffersBalance,
hasNoEnterpriseOffersBalance,
Expand Down Expand Up @@ -75,6 +77,8 @@ const UserSubsidy = ({ children }) => {
subscriptionPlan,
couponCodes,
enterpriseOffers,
currentEnterpriseOffers,
hasCurrentEnterpriseOffers,
canEnrollWithEnterpriseOffers,
hasLowEnterpriseOffersBalance,
hasNoEnterpriseOffersBalance,
Expand All @@ -90,6 +94,8 @@ const UserSubsidy = ({ children }) => {
subscriptionPlan,
couponCodes,
enterpriseOffers,
currentEnterpriseOffers,
hasCurrentEnterpriseOffers,
canEnrollWithEnterpriseOffers,
hasLowEnterpriseOffersBalance,
hasNoEnterpriseOffersBalance,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,10 @@ export const useEnterpriseOffers = ({
enableLearnerPortalOffers,
}) => {
const [enterpriseOffers, setEnterpriseOffers] = useState([]);
const [currentEnterpriseOffers, setCurrentEnterpriseOffers] = useState([]);
const [isLoadingOffers, setIsLoadingOffers] = useState(true);
const [canEnrollWithEnterpriseOffers, setCanEnrollWithEnterpriseOffers] = useState(false);
const [hasCurrentEnterpriseOffers, setHasCurrentEnterpriseOffers] = useState(false);
const [hasLowEnterpriseOffersBalance, setHasLowEnterpriseOffersBalance] = useState(false);
const [hasNoEnterpriseOffersBalance, setHasNoEnterpriseOffersBalance] = useState(false);

Expand Down Expand Up @@ -50,10 +52,12 @@ export const useEnterpriseOffers = ({
setCanEnrollWithEnterpriseOffers(true);
}

const currentEnterpriseOffers = enterpriseOffers.filter(offer => offer.isCurrent);
if (currentEnterpriseOffers.length > 0) {
const hasLowBalance = currentEnterpriseOffers.some(offer => offer.isLowOnBalance);
const hasNoBalance = currentEnterpriseOffers.every(offer => offer.isOutOfBalance);
const currentEntOffers = enterpriseOffers.filter(offer => offer.isCurrent);
if (currentEntOffers.length > 0) {
setCurrentEnterpriseOffers(currentEntOffers);
setHasCurrentEnterpriseOffers(true);
const hasLowBalance = currentEntOffers.some(offer => offer.isLowOnBalance);
const hasNoBalance = currentEntOffers.every(offer => offer.isOutOfBalance);
setHasLowEnterpriseOffersBalance(hasLowBalance);
setHasNoEnterpriseOffersBalance(hasNoBalance);
}
Expand All @@ -65,6 +69,8 @@ export const useEnterpriseOffers = ({

return {
enterpriseOffers,
currentEnterpriseOffers,
hasCurrentEnterpriseOffers,
canEnrollWithEnterpriseOffers,
hasLowEnterpriseOffersBalance,
hasNoEnterpriseOffersBalance,
Expand Down

0 comments on commit b9d2b9e

Please sign in to comment.