Files
discord-decomp/modules/collectibles/native/CollectiblesShopGiftModal.tsx
T
2026-11-01 12:12:55 +02:00

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"])} />;
};