38 lines
3.0 KiB
TypeScript
38 lines
3.0 KiB
TypeScript
// Metro module 8770 (f8771).
|
|
import { useEffect, useCallback } from "react";
|
|
import CollectiblesCategoryStore from "../CollectiblesCategoryStore";
|
|
import { COLLECTIBLES_APPLICATION_ID } from "../../../Constants";
|
|
import { GiftingBadgeExperiment } from "../../premium/gifting/experiments/GiftingBadgeExperiment";
|
|
import { fetchBadge } from "../../badges/BadgeDirectoryActionCreators";
|
|
import { BadgeId } from "../../../_bundle/Module8106";
|
|
import { useStateFromStores } from "../../../_bundle/Module589";
|
|
import useAnalyticsLocations from "../../app_analytics/useAnalyticsLocations";
|
|
import AnalyticsLocation from "../../app_analytics/AnalyticsLocation";
|
|
import { isNullOrEmpty } from "../../../utils/StringUtils";
|
|
import { validateCollectiblesRecipient } from "../CollectiblesActionCreators";
|
|
import { isCollectibleGiftingSupported } from "../../device/BillingPlatformUtils";
|
|
import UnsupportedFeatureModal from "../../billing/native/UnsupportedFeatureModal";
|
|
import { intl, t } from "../../../intl/index.native";
|
|
import UnifiedGiftModal from "../../checkout/native/gifting/UnifiedGiftModal";
|
|
import CollectiblesShopCheckoutDetails from "./CollectiblesShopCheckoutDetails";
|
|
import CollectiblesShopGiftPurchaseSection from "./CollectiblesShopGiftPurchaseSection";
|
|
export default function CollectiblesShopGiftModal(props) {
|
|
let stateFromStores, skuId2;
|
|
const { skuId, analyticsLocations, lockedRecipientUser, onGiftModalDismiss, giftingOrigin } = props;
|
|
stateFromStores = void 0;
|
|
skuId2 = void 0;
|
|
const enabled = GiftingBadgeExperiment.useConfig({
|
|
location: "CollectiblesShopGiftModal"
|
|
}).enabled;
|
|
useEffect(() => {
|
|
if (enabled) {
|
|
fetchBadge(BadgeId.GIFTING);
|
|
}
|
|
}, [enabled]);
|
|
stateFromStores = useStateFromStores([CollectiblesCategoryStore], () => CollectiblesCategoryStore.getProduct(skuId), [skuId]);
|
|
const analyticsLocations2 = useAnalyticsLocations([...analyticsLocations, AnalyticsLocation.COLLECTIBLES_MOBILE_GIFT_MODAL]).analyticsLocations;
|
|
skuId2 = stateFromStores?.skuId;
|
|
const callback = useCallback((a0) => isNullOrEmpty(skuId2) ? Promise.resolve(false) : validateCollectiblesRecipient(a0, skuId2), [skuId2]);
|
|
return stateFromStores == null ? null : isCollectibleGiftingSupported() ? <UnifiedGiftModal skuId={stateFromStores.skuId} applicationId={COLLECTIBLES_APPLICATION_ID} analyticsLocations={analyticsLocations2} lockedRecipientUser={lockedRecipientUser} onGiftModalDismiss={onGiftModalDismiss} giftingOrigin={giftingOrigin} validateRecipient={callback} renderProductDetails={(a0) => <CollectiblesShopCheckoutDetails product={stateFromStores} recipientUser={a0.recipientUser} isValidRecipient={a0.isValidRecipient} isGift />} renderPurchaseSection={(a0) => <CollectiblesShopGiftPurchaseSection product={stateFromStores} isPurchaseDisabled={a0.isPurchaseDisabled} giftOptions={a0.giftOptions} baseAnalyticsFields={a0.baseAnalyticsFields} giftingOrigin={giftingOrigin} onGiftModalDismiss={onGiftModalDismiss} />} /> : <UnsupportedFeatureModal onDismiss={onGiftModalDismiss} title={intl.string(t["JCFN/y"])} />;
|
|
};
|