diff --git a/apps/admin-x-settings/src/components/settings/growth/offers/OffersIndex.tsx b/apps/admin-x-settings/src/components/settings/growth/offers/OffersIndex.tsx index 1b2b7e4e9a..75a331cdab 100644 --- a/apps/admin-x-settings/src/components/settings/growth/offers/OffersIndex.tsx +++ b/apps/admin-x-settings/src/components/settings/growth/offers/OffersIndex.tsx @@ -3,7 +3,7 @@ import {Button, Tab, TabView} from '@tryghost/admin-x-design-system'; import {Icon} from '@tryghost/admin-x-design-system'; import {Modal} from '@tryghost/admin-x-design-system'; import {SortMenu} from '@tryghost/admin-x-design-system'; -import {Tier, getPaidActiveTiers, useBrowseTiers} from '@tryghost/admin-x-framework/api/tiers'; +import {Tier, useBrowseTiers} from '@tryghost/admin-x-framework/api/tiers'; import {Tooltip} from '@tryghost/admin-x-design-system'; import {currencyToDecimal, getSymbol} from '../../../../utils/currency'; import {getHomepageUrl} from '@tryghost/admin-x-framework/api/site'; @@ -85,8 +85,10 @@ const OfferCard: React.FC<{amount: number, cadence: string, currency: string, du let tierName = offerTier?.name + ' ' + getOfferCadence(cadence) + ' — ' + getOfferDuration(duration); const {discountColor, discountOffer, originalPriceWithCurrency, updatedPriceWithCurrency} = getOfferDiscount(type, amount, cadence, currency || 'USD', offerTier); + const isTierArchived = offerTier?.active === false; + return ( -
+

{name}

{discountOffer} @@ -131,7 +133,6 @@ export const OffersIndexModal = () => { } }); const {data: {tiers: allTiers} = {}} = useBrowseTiers(); - const paidActiveTiers = getPaidActiveTiers(allTiers || []); const activeOffers = allOffers.filter(offer => offer.status === 'active'); useEffect(() => { @@ -170,8 +171,13 @@ export const OffersIndexModal = () => { }); const cardLayoutOutput =
- {sortedOffers.filter(offer => offer.status === selectedTab).map((offer) => { - const offerTier = paidActiveTiers.find(tier => tier.id === offer?.tier.id); + {sortedOffers.filter((offer) => { + const offerTier = allTiers?.find(tier => tier.id === offer?.tier.id); + //Check to filter out offers with archived offerTier + return (selectedTab === 'active' && (offer.status === 'active' && offerTier && offerTier.active === true)) || + (selectedTab === 'archived' && (offer.status === 'archived' || (offerTier && offerTier.active === false))); + }).map((offer) => { + const offerTier = allTiers?.find(tier => tier.id === offer?.tier.id); if (!offerTier) { return null; @@ -205,17 +211,24 @@ export const OffersIndexModal = () => { Redemptions - {sortedOffers.filter(offer => offer.status === selectedTab).map((offer) => { - const offerTier = paidActiveTiers.find(tier => tier.id === offer?.tier.id); + {sortedOffers.filter((offer) => { + const offerTier = allTiers?.find(tier => tier.id === offer?.tier.id); + //Check to filter out offers with archived offerTier + return (selectedTab === 'active' && (offer.status === 'active' && offerTier && offerTier.active === true)) || + (selectedTab === 'archived' && (offer.status === 'archived' || (offerTier && offerTier.active === false))); + }).map((offer) => { + const offerTier = allTiers?.find(tier => tier.id === offer?.tier.id); if (!offerTier) { return null; } + const isTierArchived = offerTier?.active === false; + const {discountColor, discountOffer, originalPriceWithCurrency, updatedPriceWithCurrency} = getOfferDiscount(offer.type, offer.amount, offer.cadence, offer.currency || 'USD', offerTier); return ( - + handleOfferEdit(offer?.id ? offer.id : '')}>{offer?.name} handleOfferEdit(offer?.id ? offer.id : '')}>{offerTier.name} {getOfferCadence(offer.cadence)} handleOfferEdit(offer?.id ? offer.id : '')}>{discountOffer} — {getOfferDuration(offer.duration)}