// Metro module 6563 (f6564). import { useEffect, useState, useRef } from "react"; import UserOfferStore from "../../../stores/billing/UserOfferStore"; import PromotionsStore from "../promotions/PromotionsStore"; import { maybeFetchActivePromotions } from "../promotions/PromotionsActionCreators"; import { useStateFromStores } from "../../../_bundle/Module589"; import { PromotionTypes } from "../promotions/constants"; export function usePromotionMarketingComponent(c15799_0) { let stateFromStores, endDate, ref; useEffect(() => { maybeFetchActivePromotions(); }, []); stateFromStores = useStateFromStores([PromotionsStore, UserOfferStore], () => { const marketingComponentByType = PromotionsStore.getMarketingComponentByType(c15799_0); if (marketingComponentByType == null) { return null; } const promotionByTypeAndId = PromotionsStore.getPromotionByTypeAndId(PromotionTypes.MARKETING_MOMENT, marketingComponentByType.promotionId); const trialId = promotionByTypeAndId?.trialId; L7: { if (trialId != null) { const userTrialOffer = UserOfferStore.getUserTrialOffer(promotionByTypeAndId.trialId); if (userTrialOffer != null) { if (userTrialOffer.expires_at == null) { break L7; } if (!(Date.parse(userTrialOffer.expires_at) < Date.now())) { break L7; } } return null; } } return marketingComponentByType; }); endDate = useStateFromStores([PromotionsStore], () => { const MARKETING_MOMENT = PromotionTypes.MARKETING_MOMENT; let r14 = stateFromStores?.promotionId; if (r14 == null) { r14 = ""; } return PromotionsStore.getPromotionByTypeAndId(MARKETING_MOMENT, r14); })?.endDate; const [state, setState] = useState(false); ref = useRef(null); useEffect(() => { if (endDate != null) { const r21 = endDate.getTime() - Date.now(); if (r21 > 0 && r21 < 86400000) { setState(false); clearTimeout(ref.current); ref.current = setTimeout(() => { setState(true); }, r21); } else if (r21 <= 0) { setState(true); } return () => { clearTimeout(ref.current); }; } setState(false); clearTimeout(ref.current); }, [endDate]); return state ? null : stateFromStores; }