// Metro module 8766 (f8767). import { useCallback } from "react"; import { View } from "react-native"; import { useNativeCheckoutStore } from "../../checkout/native/NativeCheckoutStore"; import CollectiblesPurchaseStore from "../CollectiblesPurchaseStore"; import { EXTERNAL_PRODUCT_SKU_IDS, ShopCtaEnum } from "../CollectiblesShopConstants"; import { HelpdeskArticles, MarketingURLs, UserSettingsSections } from "../../../Constants"; import { RootNavigatorScreen } from "../../main_tabs_v2/native/MainTabsConstants"; import { PremiumTypes, SubscriptionIntervalTypes } from "../../premium/PremiumConstants"; import { createStyles } from "../../../design/components/Styles/native/createStyles"; import Module712 from "../../../_bundle/Module712"; import { IconButton } from "../../../design/components/Button/native/IconButton.native"; import { GiftIcon } from "../../../design/components/Icon/native/redesign/generated/GiftIcon"; import ActionSheetActionCreators from "../../action_sheet/native/ActionSheetActionCreators"; import { PRODUCT_DETAILS_ACTION_SHEET_KEY } from "./openProductDetailsActionSheet"; import { openShopGiftModal } from "./openGiftModal"; import { intl, t } from "../../../intl/index.native"; import { useVirtualCurrencyData } from "./hooks/useVirtualCurrencyData"; import { useProductDisableState } from "../hooks/useProductDisableState"; import { useProductPurchaseState } from "../hooks/useProductPurchaseState"; import { useNavigation } from "../../../design/components/Navigator/native/useNavigation.native"; import useAnalyticsLocations, { AnalyticsLocationProvider } from "../../app_analytics/useAnalyticsLocations"; import ModalActionCreators from "../../../actions/ModalActionCreators"; import { fetchCollectiblesPurchases } from "../CollectiblesActionCreators"; import { FractionalPremiumSKUsSets } from "../../../_bundle/Module679"; import ProductPurchaseSuccessActionCreators from "./ProductPurchaseSuccessActionCreators"; import { OrbsIcon } from "../../../design/components/Icon/native/redesign/generated/OrbsIcon"; import { Text } from "../../../design/components/Text/native/Text"; import { BaseTextButton } from "../../../design/components/Button/native/BaseTextButton.native"; import { CollectiblesItemType } from "../../../_bundle/Module1901"; import useTheme from "../../../hooks/useTheme"; import * as _shared from "../../../design/shared"; import { useToken } from "../../../design/tokens/native/useToken"; import { useCurrentUser } from "../hooks/useCurrentUser"; import { useStateFromStoresArray } from "../../../_bundle/Module589"; import { useIsPremiumSubscriber } from "../../premium/useIsPremiumSubscriber"; import PremiumUtils from "../../../utils/PremiumUtils"; import * as _CollectiblesUtils from "../CollectiblesUtils"; import * as _CollectiblesProductUtils from "../utils/CollectiblesProductUtils"; import { useFetchVirtualCurrencyBalance } from "../../virtual_currency/hooks/index"; import { useHandleUseNow } from "./useHandleUseNow"; import useHandleBuyNow from "./useHandleBuyNow"; import { useHandleClaim } from "./useHandleClaim"; import useShouldShowPremiumProfileFrameCTA from "../hooks/useShouldShowPremiumProfileFrameCTA"; import { useIsEligibleForBogoOffer } from "../../premium/native/hooks/useIsEligibleForBogoOffer.android"; import { useCanGiftProduct } from "../hooks/useCanGiftProduct"; import useSafeAreaInsets_native from "../../safe_area/useSafeAreaInsets.native"; import { isAndroid } from "../../../_bundle/Module501"; import Module4611 from "../../../_bundle/Module4611"; import Module8531, { Defs, RadialGradient, Stop, Rect } from "../../../_bundle/Module8531"; import { Button } from "../../../design/components/Button/native/Button.native"; import AnalyticsLocation from "../../app_analytics/AnalyticsLocation"; import HelpdeskUtils from "../../../utils/HelpdeskUtils"; import { UnlockWithNitroButton } from "./UnlockWithNitroButton"; let modalKey, c5725_20, useStyles, VCButton, PurchaseDisclaimer; const GiftButton = function GiftButton(props) { const { product, analyticsLocations, variant = "primary", onTrackPress } = props; return } onPress={() => { if (onTrackPress != null) { onTrackPress(ShopCtaEnum.SEND_AS_GIFT); } ActionSheetActionCreators.hideActionSheet(PRODUCT_DETAILS_ACTION_SHEET_KEY); openShopGiftModal({ skuId: product.skuId, analyticsLocations }); }} accessibilityLabel={intl.string(t.PEjaCx)} />; }; VCButton = function VCButton(props) { let INTERACTIVE_TEXT_ACTIVE, color; const { balance, product: product2, hasShopDiscount = false, onTrackPress: onTrackPress2 } = props; INTERACTIVE_TEXT_ACTIVE = void 0; color = void 0; const styles = useStyles(); const virtualCurrencyData = useVirtualCurrencyData(product2, hasShopDiscount); const { price, canAfford } = virtualCurrencyData; let isDisabled = useProductDisableState(product2.skuId).isDisabled; const isPartiallyOwnedBundle = useProductPurchaseState(product2).isPartiallyOwnedBundle; if (!isDisabled) { isDisabled = !canAfford; } if (!isDisabled) { isDisabled = isPartiallyOwnedBundle; } const navigation = useNavigation(); const analyticsLocations2 = useAnalyticsLocations().analyticsLocations; const callback = useCallback(() => { ActionSheetActionCreators.hideActionSheet(); ModalActionCreators.pushLazy(import("../../virtual_currency/checkout/native/OrbCheckoutModal"), { skuId: product2.skuId, analyticsLocations: analyticsLocations2, onCheckoutSuccess: ({ entitlements }) => { fetchCollectiblesPurchases(); ModalActionCreators.popWithKey(c5725_20); if (product2.skuId === EXTERNAL_PRODUCT_SKU_IDS.ORB_PROFILE_BADGE) { ModalActionCreators.pushLazy(import("./OrbBadgeCollectedModal"), { modalKey, onPressViewBadge: () => navigation.navigate(RootNavigatorScreen.YOU, { showOrbsBadgeCoachmark: true }), orbBalancePriorToPurchase: balance }, modalKey); } else if (FractionalPremiumSKUsSets.ALL.has(product2.skuId)) { const r43 = import("./FractionalNitroCollectedActionSheet"); let consumed = entitlements[0]?.consumed; if (consumed == null) { consumed = false; } ActionSheetActionCreators.openLazy(r43, "FractionalNitroCollectedActionSheet", { skuId: product2.skuId, consumed, onPressExplorePerks: () => { navigation.navigate(UserSettingsSections.PREMIUM); ActionSheetActionCreators.hideActionSheet(); }, onPressViewCredits: () => { navigation.navigate(UserSettingsSections.PREMIUM_MANAGE_PLAN); ActionSheetActionCreators.hideActionSheet(); } }); } else { ProductPurchaseSuccessActionCreators.open({ product: product2, useCategoryImage: true, showOrbBalancePill: true, orbBalancePriorToPurchase: balance }); } } }, c5725_20); }, [navigation, product2, balance, analyticsLocations2]); if (price == null) { return null; } INTERACTIVE_TEXT_ACTIVE = isDisabled ? Module712.colors.INTERACTIVE_TEXT_ACTIVE : Module712.colors.WHITE; color = isDisabled ? "interactive-text-active" : "text-overlay-light"; const r60 = intl.format(t.JC15qj, { orbPrice: price.amount, orbIconHook: () => }); const r65 = Array.isArray(r60) ? r60 : [r60]; return {r65.map((item, index) => typeof item !== "string" ? typeof item === "number" ? {item} : item : {item} )} } onPress={() => { if (onTrackPress2 != null) { onTrackPress2(ShopCtaEnum.BUY_WITH_ORBS); } callback(); }} disabled={isDisabled} size="lg" variant={isDisabled ? "secondary" : "primary"} grow /> ; }; PurchaseDisclaimer = function PurchaseDisclaimer(props) { const { product: product4, buyButtonLabel } = props; return {product4.type !== CollectiblesItemType.EXTERNAL_SKU && intl.format(t.iIglwJ, { buyButtonLabel, paidServiceTermURL: MarketingURLs.PAID_TERMS })} ; }; modalKey = "ORB_BADGE_COLLECTED_MODAL"; c5725_20 = "ORB_CHECKOUT_MODAL"; useStyles = createStyles({ container: { backgroundColor: Module712.colors.MOBILE_ACTIONSHEET_BACKGROUND, paddingHorizontal: Module712.space.PX_16, paddingTop: Module712.space.PX_8 }, containerFramesEA: { borderWidth: 1, borderStyle: "solid", borderColor: Module712.colors.BORDER_MUTED }, gradientOverlay: { position: "absolute", top: 0, left: 0, right: 0, bottom: 0 }, purchaseSection: { gap: Module712.space.PX_12 }, disclaimer: { opacity: 0.75 }, buttonContainer: { flexDirection: "row", gap: Module712.space.PX_12 }, framesEAContainer: { flexDirection: "column", gap: Module712.space.PX_8 }, orbsButtonLabel: { flexDirection: "row", alignItems: "center" }, orbsButtonText: { flexShrink: 1 } }); export default function ProductDetailsActionSheetPurchaseSection(props) { let r198, children; let handleUseNow, handleEditProfile, handleBuyNow, handleClaim; const { product: product3, analyticsLocations: analyticsLocations3, onBuy, onTrackPress: onTrackPress3 } = props; handleUseNow = void 0; handleEditProfile = void 0; handleBuyNow = void 0; handleClaim = void 0; const styles2 = useStyles(); const isThemeDark = _shared.isThemeDark(useTheme()); const token = useToken(Module712.colors.MOBILE_ACTIONSHEET_BACKGROUND); const currentUser = useCurrentUser(); const productPurchaseState = useProductPurchaseState(product3); const { isPurchased, isPartiallyOwnedBundle } = productPurchaseState; const [loading] = useStateFromStoresArray([CollectiblesPurchaseStore], () => [CollectiblesPurchaseStore.isClaiming === product3.skuId], [product3]); const isPremiumSubscriber = useIsPremiumSubscriber(PremiumTypes.TIER_2); const canUseShopDiscounts = PremiumUtils.canUseShopDiscounts(currentUser); const isPremiumCollectiblesProduct = _CollectiblesUtils.isPremiumCollectiblesProduct(product3); const isFreeCollectiblesProduct = _CollectiblesUtils.isFreeCollectiblesProduct(product3); const isOrbsExclusiveProduct = _CollectiblesProductUtils.isOrbsExclusiveProduct(product3); const balance2 = useFetchVirtualCurrencyBalance().balance; const canAfford = useVirtualCurrencyData(product3, canUseShopDiscounts).canAfford; const handleUseNow2 = useHandleUseNow({ product: product3, analyticsLocations: analyticsLocations3 }); handleUseNow = handleUseNow2.handleUseNow; const { isApplying, canUseNow } = handleUseNow2; handleEditProfile = handleUseNow2.handleEditProfile; const handleBuyNow2 = useHandleBuyNow({ product: product3, analyticsLocations: analyticsLocations3, onBuy, orderId: useNativeCheckoutStore((a0) => a0.orderRecord)?.id }); handleBuyNow = handleBuyNow2.handleBuyNow; const isBuying = handleBuyNow2.isBuying; handleClaim = useHandleClaim({ product: product3 }).handleClaim; const shouldShowPremiumProfileFrameCTA = useShouldShowPremiumProfileFrameCTA({ location: "ProductDetailsActionSheetPurchaseSection", product: product3 }); let r27 = shouldShowPremiumProfileFrameCTA && !isPurchased; const r33 = useIsEligibleForBogoOffer() ? SubscriptionIntervalTypes.MONTH : SubscriptionIntervalTypes.YEAR; let r12 = useCanGiftProduct(product3); let bottom = useSafeAreaInsets_native().bottom; const style = [styles2.container, r27 ? styles2.containerFramesEA : r27, ,]; if (bottom == null) { bottom = Module712.space.PX_16; } style[2] = { paddingBottom: bottom }; const props2 = { style, children: null }; if (r27) { r27 = !isAndroid(); } if (r27) { r27 = <> ; } L69: { children = [r27, ,]; if (isPurchased) { let r407 = product3.type !== CollectiblesItemType.EXTERNAL_SKU; if (r407) { const r437 = [