// Metro module 6217 (f6218). import _slicedToArray from "../../../_bundle/_slicedToArray"; import { useState, useMemo, useCallback } from "react"; import { View, ActivityIndicator } from "react-native"; import { useNativeCheckoutStore } from "../../checkout/native/NativeCheckoutStore"; import LocaleStore from "../../user_settings/LocaleStore"; import IAPStore_android from "../../../stores/native/IAPStore.android"; import { reset, setMobileWebRedirectCheckoutStatus, usePremiumPlanPurchasedStore, setInitiatedPurchaseFromNewFlow } from "./PremiumPlanPurchasedStore"; import { SubscriptionPlans, DISCOUNTS, SubscriptionPlanInfo, PRICE_PLACEHOLDER, SubscriptionIntervalTypes, PremiumTypes, PremiumSubscriptionSKUs, PREMIUM_PLAN_SELECTION_ACTION_SHEET_KEY } from "../PremiumConstants"; import { AnalyticEvents, AnalyticsObjects, AnalyticsObjectTypes, MarketingURLs, HelpdeskArticles } from "../../../Constants"; import { TitleStyleType } from "../../../design/void/Form/native/FormConstants"; import { ItemPurchaseType, EUR_TO_HRK_CONVERSION_RATE } from "../../payments/PaymentConstants"; import { CurrencyCodes, PaymentGateways } from "../../../_bundle/Module505"; import { jsx } from "react/jsx-runtime"; import { createStyles } from "../../../design/components/Styles/native/createStyles"; import Module712 from "../../../_bundle/Module712"; import PremiumUtils, { getTierDisplayNameByPlanId, castPremiumSubscriptionAsSkuId } from "../../../utils/PremiumUtils"; import { Text } from "../../../design/components/Text/native/Text"; import { intl, t } from "../../../intl/index.native"; import Module38 from "../../../_bundle/Module38"; import PremiumPlanActionSheetHeader from "./PremiumPlanActionSheetHeader"; import { formatPercent } from "../../../utils/NumberUtils"; import { useStateFromStores } from "../../../_bundle/Module589"; import { useCheckoutPlanPriceString } from "./hooks/useCheckoutPlanPriceString"; import { formatRate, formatPrice } from "../../../utils/PriceUtils"; import { Button } from "../../../design/components/Button/native/Button.native"; import { useHandlePremiumPurchase } from "./handlePremiumPurchase.android"; import { useIsPaymentsBlocked } from "../../billing/experiments/BlockedPaymentsCountryExperiment"; import useTheme from "../../../hooks/useTheme"; import { usePremiumTrialOffer } from "../hooks/usePremiumTrialOffer.android"; import { usePremiumDiscountOffer } from "../hooks/usePremiumDiscountOffer.android"; import { useDiscountedPremiumProductInfo } from "./hooks/useDiscountedPremiumProductInfo"; import { useBottomSheetRef } from "../../../design/components/Sheet/native/useBottomSheetRef"; import useAnalyticsLocations from "../../app_analytics/useAnalyticsLocations"; import AnalyticsLocation from "../../app_analytics/AnalyticsLocation"; import useInitialValue from "../../../hooks/useInitialValue"; import { getNewAnalyticsLoadId, getBasePurchaseFlowAnalyticsFields, PaymentFlowStep, getPaymentFlowStepAnalyticsFields } from "./PremiumAnalyticsUtils"; import * as _MobileWebRedirectCheckoutUtils from "../../payments/utils/MobileWebRedirectCheckoutUtils"; import { getCustomCheckoutFlowForAnalytics } from "../../payments/utils/MobileWebRedirectCheckoutUtils"; import useMountEffect from "../../../hooks/useMountEffect"; import { trackPaymentFlowStartedAnalyticsAndCTP } from "../../experiments/trigger_points/PaymentFlowStartedTriggerPoint"; import ActionSheetActionCreators from "../../action_sheet/native/ActionSheetActionCreators"; import AnalyticsUtils from "../../../utils/AnalyticsUtils"; import { goToStandalonePremiumCheckoutFromMobileApp } from "../../payments/native/utils/BillingStandaloneNativeUtils"; import { isMetaQuest } from "../../device/MetaQuestUtils.android"; import AlertActionCreators from "../../../actions/native/AlertActionCreators"; import InvalidGooglePlayPurchase from "../../billing/errors/InvalidGooglePlayPurchase"; import { fetchSubscriptions } from "../../billing/actions/BillingActionCreators"; import { getSubscriptionItemsForProduct, getPremiumBundlesWithPredicate } from "./PremiumBundledPlansUtils"; import { isThemeDark } from "../../../design/shared"; import Module6315 from "../../../_bundle/Module6315"; import Module6316 from "../../../_bundle/Module6316"; import Module6317 from "../../../_bundle/Module6317"; import Module6318 from "../../../_bundle/Module6318"; import Module6319 from "../../../_bundle/Module6319"; import Module6320 from "../../../_bundle/Module6320"; import { isAndroid, isIOS } from "../../../utils/PlatformUtils"; import HelpdeskUtils from "../../../utils/HelpdeskUtils"; import { BottomSheet } from "../../../design/components/Sheet/native/BottomSheet.native"; import BlockedPaymentsCountryDisplay from "../../billing/native/BlockedPaymentsCountryDisplay"; import { ActionSheetHeaderBar } from "../../../design/components/Sheet/native/ActionSheetHeaderBar.native"; import FastImage from "../../../components_native/common/FastImage"; import FormSection from "../../../design/void/Form/native/FormSection"; import PaymentFlowWarningMessage from "../../billing/native/PaymentFlowWarningMessage"; import { RadioGroup } from "../../../design/void/native"; import { NitroACOMSubscriptionExperiment } from "../../billing/native/ACOMExperiments"; import { useIsEligibleForBogoOffer } from "./hooks/useIsEligibleForBogoOffer.android"; import NativeCheckoutStoreProvider from "../../checkout/native/stores/NativeCheckoutStoreProvider"; function $mk78038($env) { return ({ additionalPlans, isDeprecated, numPremiumGuild, premiumTier }) => additionalPlans.length === 0 && !isDeprecated && numPremiumGuild === 0 && premiumTier === $env[0]; } function $mk114907($env) { return () => { if (isMetaQuest()) { (0, reset)(); ActionSheetActionCreators.hideActionSheet(); } else { const r9 = $env; (0, setMobileWebRedirectCheckoutStatus)("in_mobile_web"); AnalyticsUtils.track(AnalyticEvents.PAYMENT_FLOW_STEP, r9[4]); } }; } function $mk114908($env) { return () => { AlertActionCreators.show({ title: intl.string(t.NrBVjw), body: intl.string(t["gD+grx"]), hideActionSheet: true }); }; } let PlanOptionBadgeComponent, PlanOption, PremiumPlanSelectionActionSheetCTA, PremiumPlanSelectionActionSheet, _excluded, useStyles; let env3945 = {}; const Header = function Header(props) { let premiumType2 = props.premiumType; const { isPaymentSuccess, selectedPremiumType, trialOffer, discountOffer } = props; const styles = useStyles(); const r23 = (0, useNativeCheckoutStore)((a0) => ({ orderRequired: a0.orderRequired, orderRecord: a0.orderRecord })); const { orderRequired, orderRecord } = r23; if (premiumType2 == null && !isPaymentSuccess) { return {intl.string(t.vLz3Zs)} ; } if (isPaymentSuccess) { premiumType2 = selectedPremiumType; } Module38(premiumType2 != null, "If isPaymentSuccess is true, a value must be given for selectedPremiumType. Or premiumType must be given."); let r44 = trialOffer != null && premiumType2 != null; if (r44) { let r51 = trialOffer.subscription_trial?.sku_id === PremiumUtils.getSkuIdForPremiumType(premiumType2); if (r51) { let r3 = !orderRequired; if (orderRequired) { const trial_id = trialOffer.trial_id; const r4 = orderRecord == null; let r53 = void 0; if (!r4) { const subscriptionFacet = orderRecord.subscriptionFacet; r53 = subscriptionFacet == null ? void 0 : subscriptionFacet.subscriptionPreview?.subscriptionTrialId; } r3 = trial_id === r53; } r51 = r3; } r44 = r51; } return (0, jsx)(PremiumPlanActionSheetHeader, { premiumType: premiumType2, trialOffer: r44 ? trialOffer : null, discountOffer }); }; PlanOptionBadgeComponent = function PlanOptionBadgeComponent(props) { const { text, backgroundColorType = "green" } = props; const styles = useStyles(); const style = [styles.planOptionDiscount, ,]; const r1 = backgroundColorType === "white"; style[1] = r1 ? styles.planOptionDiscountWhite : null; return {text} ; }; PlanOption = function PlanOption(props) { let r30, r222; const { premiumItem, selectedProductId, optionNeedsProductNameLabel: optionNeedsProductNameLabel2 } = props; let customBadgeComponent = props.customBadgeComponent; const { trialOffer, discountOffer, discountedPriceString: discountedPriceString2 } = props; let userIsEligibleForBogoPromotion2 = props.userIsEligibleForBogoPromotion; if (userIsEligibleForBogoPromotion2 === void 0) { userIsEligibleForBogoPromotion2 = false; } const selectedPremiumType = props.selectedPremiumType; const styles = useStyles(); const [state, setState] = useState(0); const stateFromStores = useStateFromStores([IAPStore_android], () => IAPStore_android.getProduct(premiumItem.productId)); let price = useCheckoutPlanPriceString(premiumItem.productId, stateFromStores); const r60 = (0, useNativeCheckoutStore)((a0) => ({ orderRequired: a0.orderRequired, orderRecord: a0.orderRecord })); const { orderRequired, orderRecord } = r60; const premiumTier = premiumItem.premiumTier; let r4 = trialOffer != null && premiumTier != null; if (r4) { let r68 = trialOffer.subscription_trial?.sku_id === PremiumUtils.getSkuIdForPremiumType(premiumTier); if (r68) { let r6 = !orderRequired; if (orderRequired) { const trial_id = trialOffer.trial_id; const r7 = orderRecord == null; let r70 = void 0; if (!r7) { const subscriptionFacet = orderRecord.subscriptionFacet; r70 = subscriptionFacet == null ? void 0 : subscriptionFacet.subscriptionPreview?.subscriptionTrialId; } r6 = trial_id === r70; } r68 = r6; } r4 = r68; } const tierDisplayNameByPlanId = getTierDisplayNameByPlanId(premiumItem.basePlanId); const intervalString = PremiumUtils.getIntervalString(premiumItem.interval, false); const basePlanId = premiumItem.basePlanId; const PREMIUM_YEAR_TIER_2 = SubscriptionPlans.PREMIUM_YEAR_TIER_2; const r31 = r4 || discountOffer != null || (userIsEligibleForBogoPromotion2 ? basePlanId === PREMIUM_YEAR_TIER_2 : userIsEligibleForBogoPromotion2); const r41 = r31 ? null : DISCOUNTS[premiumItem.basePlanId]; if (userIsEligibleForBogoPromotion2) { userIsEligibleForBogoPromotion2 = premiumItem.basePlanId === SubscriptionPlans.PREMIUM_MONTH_TIER_2; } const productId2 = premiumItem.productId; const r35 = stateFromStores == null ? CurrencyCodes.USD : stateFromStores.currencyCode.toLowerCase() in CurrencyCodes ? stateFromStores.currencyCode.toLowerCase() : CurrencyCodes.USD; const r104 = SubscriptionPlanInfo[premiumItem.basePlanId]; const discountedPrice = discountedPriceString2 != null ? formatRate(discountedPriceString2, r104.interval, r104.intervalCount) : null; if (r4) { r30 = intl.formatToPlainString(t.hXcaLT, { price: formatPrice(0, r35, { minimumFractionDigits: 0, maximumFractionDigits: 0 }) }); } else { r30 = discountedPriceString2; if (r30 == null) { r30 = price == null ? PRICE_PLACEHOLDER : price; } } const regularPrice = formatRate(price == null ? PRICE_PLACEHOLDER : price, r104.interval, r104.intervalCount); const style = state > 0 ? [styles.planOptionPriceContainer, { transform: [{ translateY: state / 2 }] }] : styles.planOptionPriceContainer; const variant = discountOffer == null ? r4 ? "text-lg/medium" : "text-md/medium" : "text-lg/medium"; const r148 = productId2 === selectedProductId; let color = "interactive-text-default"; const r159 = [ {optionNeedsProductNameLabel2 ? `${tierDisplayNameByPlanId} ${intervalString}` : intervalString} , ,]; if (customBadgeComponent == null) { customBadgeComponent = r31 ? null : userIsEligibleForBogoPromotion2 ? : r41 != null ? : null; } const r202 = [ {customBadgeComponent} {r30} , , ,]; let r203 = null; if (r4) { const color2 = r148 ? "text-default" : "interactive-text-default"; if (premiumItem.interval === SubscriptionIntervalTypes.YEAR) { const ECT4A5 = t.ECT4A5; if (price == null) { price = PRICE_PLACEHOLDER; } r222 = intl.formatToPlainString(ECT4A5, { price }); } else { r222 = intl.formatToPlainString(t.v9QeON, { price: price == null ? PRICE_PLACEHOLDER : price }); } r203 = {r222}; } r202[1] = r203; const props2 = { style: styles.discountSubTextContainer, onLayout: (a0) => { const height = a0.nativeEvent.layout.height; if (height !== state) { setState(height); } }, children: null }; const r235 = discountedPrice != null; let r236 = null; if (r235) { const r237 = discountOffer != null; r236 = null; if (r237) { const r238 = selectedPremiumType == null; r236 = null; if (r238) { const color3 = r148 ? "text-default" : "interactive-text-default"; const r251 = t["02Gmgm"]; let numMonths = discountOffer.discount?.userUsageLimit; if (numMonths == null) { numMonths = 1; } r236 = {intl.formatToPlainString(r251, { discountedPrice, numMonths })} ; } } } const children = [r236, ,]; let r258 = discountedPriceString2 != null && discountOffer != null; if (r258) { if (r148) { color = "text-default"; } const r270 = t["vZk+c/"]; let numMonths2 = discountOffer.discount?.userUsageLimit; if (numMonths2 == null) { numMonths2 = 1; } r258 = {intl.formatToPlainString(r270, { regularPrice, numMonths: numMonths2 })} ; } children[1] = r258; props2.children = children; r202[2] = ; r159[1] = {r202}; return {r159}; }; PremiumPlanSelectionActionSheetCTA = function PremiumPlanSelectionActionSheetCTA(props) { const { isPaymentSuccess, onClose: onClose2, ctaText, onStartPayment, shouldUseMobileWebRedirectCheckout, disabled, loading } = props; if (isPaymentSuccess) { return