From 5892902ee22278c1f83667c6e07b0129c3d29b6c Mon Sep 17 00:00:00 2001 From: MyNameIsBatman Date: Sun, 12 Sep 2021 16:00:34 -0300 Subject: [PATCH] Update Catalog HC Purchase layout --- src/assets/images/catalog/hc_banner_big.png | Bin 0 -> 3539 bytes .../vip-buy/CatalogLayoutVipBuyView.scss | 6 + .../vip-buy/CatalogLayoutVipBuyView.tsx | 182 +++++++++--------- 3 files changed, 95 insertions(+), 93 deletions(-) create mode 100644 src/assets/images/catalog/hc_banner_big.png diff --git a/src/assets/images/catalog/hc_banner_big.png b/src/assets/images/catalog/hc_banner_big.png new file mode 100644 index 0000000000000000000000000000000000000000..4b2c4ec39eee0ec02046d14e8de3974821068e67 GIT binary patch literal 3539 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 = props => { const { catalogState = null } = useCatalogContext(); const { pageParser = null, clubOffers = null, subscriptionInfo = null } = catalogState; + const [ pendingOffer, setPendingOffer ] = useState(null); + const [ purchaseState, setPurchaseState ] = useState(CatalogPurchaseState.NONE); + + const onCatalogEvent = useCallback((event: CatalogEvent) => + { + switch(event.type) + { + case CatalogEvent.PURCHASE_SUCCESS: + setPurchaseState(CatalogPurchaseState.NONE); + return; + case CatalogEvent.PURCHASE_FAILED: + setPurchaseState(CatalogPurchaseState.FAILED); + return; + } + }, []); + + useUiEvent(CatalogEvent.PURCHASE_SUCCESS, onCatalogEvent); + useUiEvent(CatalogEvent.PURCHASE_FAILED, onCatalogEvent); const getOfferText = useCallback((offer: ClubOfferData) => { @@ -77,130 +98,105 @@ export const CatalogLayoutVipBuyView: FC = props = { if(!pendingOffer) return; + setPurchaseState(CatalogPurchaseState.PURCHASE); SendMessageHook(new PurchaseFromCatalogComposer(pageParser.pageId, pendingOffer.offerId, null, 1)); }, [ pendingOffer, pageParser ]); useEffect(() => { - if(clubOffers === null) - { - SendMessageHook(new GetClubOffersMessageComposer(1)); - - return; - } + if(clubOffers === null) SendMessageHook(new GetClubOffersMessageComposer(1)); }, [ clubOffers ]); - const getPurchaseButton = (offer: ClubOfferData) => + const setOffer = useCallback((offer: ClubOfferData) => { - if(!offer) return null; + setPurchaseState(CatalogPurchaseState.NONE); + setPendingOffer(offer); + }, []); - if(offer.priceCredits > GetCurrencyAmount(-1)) + const getPurchaseButton = useCallback(() => + { + if(!pendingOffer) return null; + + if(pendingOffer.priceCredits > GetCurrencyAmount(-1)) { - return ; + return ; } - if(offer.priceActivityPoints > GetCurrencyAmount(offer.priceActivityPointsType)) + if(pendingOffer.priceActivityPoints > GetCurrencyAmount(pendingOffer.priceActivityPointsType)) { - return ; + return ; } - return ; - } - - console.log(pendingOffer) + switch(purchaseState) + { + case CatalogPurchaseState.CONFIRM: + return ; + case CatalogPurchaseState.PURCHASE: + return ; + case CatalogPurchaseState.FAILED: + return ; + case CatalogPurchaseState.NONE: + default: + return ; + } + }, [ pendingOffer, purchaseState, purchaseSubscription ]); return ( <>
-
+
{ clubOffers && (clubOffers.length > 0) && clubOffers.map((offer, index) => { return ( - - { (pendingOffer === offer) && - <> -
-
- - { getPurchaseHeader() } -
-
{ getPurchaseValidUntil() }
-
- { (offer.priceCredits > 0) && -
- { offer.priceCredits } - -
} - { (offer.priceActivityPoints > 0) && -
- { offer.priceActivityPoints } - -
} -
+ setOffer(offer) }> +
+
+
{ getOfferText(offer) }
+
+ { (offer.priceCredits > 0) && +
+ { offer.priceCredits } + +
} + { (offer.priceActivityPoints > 0) && +
+ { offer.priceActivityPoints } + +
}
- - } - { (pendingOffer !== offer) && - <> -
-
- - { getOfferText(offer) } -
-
- { (offer.priceCredits > 0) && -
- { offer.priceCredits } - -
} - { (offer.priceActivityPoints > 0) && -
- { offer.priceActivityPoints } - -
} -
-
- { getPurchaseButton(offer) } - } +
); }) } - {/*
- { clubOffers && (clubOffers.length > 0) && clubOffers.map((offer, index) => - { - return ( -
-
-
- - { getOfferText(offer) } -
-
- { (offer.priceCredits > 0) && -
- { offer.priceCredits } - -
} - { (offer.priceActivityPoints > 0) && -
- { offer.priceActivityPoints } - -
} -
-
-
- ); - }) } -
*/}
-
+
-
+
+ { pendingOffer &&
+
+
+
{ getPurchaseHeader() }
+
{ getPurchaseValidUntil() }
+
+
+ { (pendingOffer.priceCredits > 0) && +
+ { pendingOffer.priceCredits } + +
} + { (pendingOffer.priceActivityPoints > 0) && +
+ { pendingOffer.priceActivityPoints } + +
} +
+
+ { getPurchaseButton() } +
}