// Metro module 8715 (f8716). import * as Module19 from "react"; import { useMemo } from "react"; import { View } from "react-native"; import IAPStore_android from "../../../stores/native/IAPStore.android"; import { CurrencyCodes, VerticalGradient } from "../../../Constants"; import { createStyles } from "../../../design/components/Styles/native/createStyles"; import Module712 from "../../../_bundle/Module712"; import { useDefaultVariantIndex } from "../hooks/useDefaultVariantIndex"; import { getSelectedProduct, getProductOrbPrice, getProductType } from "../utils/CollectiblesProductUtils"; import { getFormattedPriceForCollectiblesProduct } from "./CollectiblesUtils"; import { getProductDiscount, DISCOUNT_DISPLAY_MINIMUM_THRESHOLD, ShopDiscountSource, getShopDiscountSource } from "../CollectiblesUtils"; import { useFetchVirtualCurrencyBalance } from "../../virtual_currency/hooks/index"; import { CollectiblesShopPricePlaceholder } from "./CollectiblesShopPricePlaceholder"; import { Text } from "../../../design/components/Text/native/Text"; import { intl, t } from "../../../intl/index.native"; import { OrbsIcon } from "../../../design/components/Icon/native/redesign/generated/OrbsIcon"; import { isAndroid } from "../../../utils/PlatformUtils"; import { TagIcon } from "../../../design/components/Icon/native/redesign/generated/TagIcon"; import { NitroWheelIcon } from "../../../design/components/Icon/native/redesign/generated/NitroWheelIcon"; import { useCurrentUser } from "../hooks/useCurrentUser"; import { useIsProfileFramesEarlyAccessPhase } from "../hooks/useCanPurchaseFrames"; import { CollectiblesItemType } from "../../../_bundle/Module1901"; import PremiumUtils from "../../../utils/PremiumUtils"; import { useToken } from "../../../design/tokens/native/useToken"; import { hexToRgbaString, hexWithOpacity } from "../../../utils/ColorUtils"; import { getProductName } from "../utils/getProductName"; import { useStateFromStores } from "../../../_bundle/Module589"; import Module4611 from "../../../_bundle/Module4611"; import CollectiblesShopCardVariants from "./CollectiblesShopCardVariants"; const useStyles = createStyles({ regularMetadataContainer: { position: "absolute", height: "45%", width: "100%", padding: 10, flex: 1, bottom: 0, overflow: "hidden", borderBottomLeftRadius: Module712.radii.sm, borderBottomRightRadius: Module712.radii.sm, display: "flex", flexDirection: "column", justifyContent: "flex-end" }, assetName: { marginBottom: 4 }, priceVariantsContainer: { display: "flex", flexDirection: "row", justifyContent: "space-between", alignItems: "center", width: "100%", gap: Module712.space.PX_4 }, priceDescription: { display: "flex", flexDirection: "row", alignItems: "center", flex: 1 }, text: { flexShrink: 1 }, discountPercentage: { paddingLeft: 3 }, wheelIcon: { marginTop: 0, marginRight: 3 }, androidTextPadding: { paddingBottom: 2 } }); let Component = Module19.memo(({ product, hasShopDiscount, discountSource, styles, collectibleProductState, isFetchingGoogleSkus, preferVCPrice, isDisabled }) => { let r172, props; let balance; balance = void 0; const selectedProduct = getSelectedProduct(product, useDefaultVariantIndex(product)); const formattedPriceForCollectiblesProduct = getFormattedPriceForCollectiblesProduct(selectedProduct, hasShopDiscount, true); const memo = useMemo(() => getProductOrbPrice({ product: selectedProduct, hasShopDiscount }), [selectedProduct, hasShopDiscount]); const memo3 = useMemo(() => getProductDiscount(selectedProduct, hasShopDiscount).discountPercentage, [selectedProduct, hasShopDiscount]); const memo2 = useMemo(() => getProductDiscount(selectedProduct, hasShopDiscount, CurrencyCodes.DISCORD_ORB).discountPercentage, [selectedProduct, hasShopDiscount]); balance = useFetchVirtualCurrencyBalance().balance; const memo4 = useMemo(() => memo == null ? null : balance == null ? null : memo.amount <= balance, [balance, memo]); if (isFetchingGoogleSkus && formattedPriceForCollectiblesProduct == null) { return ; } if (collectibleProductState === "partiallyOwnedBundle") { return {intl.string(t.BEjTij)} ; } if (collectibleProductState === "purchased") { return {intl.string(t["6cfuDj"])} ; } if (collectibleProductState === "nitroUpsell") { return {intl.string(t.sEAnVH)} ; } if (collectibleProductState === "nitroClaim") { return {intl.string(t.rt69oo)} ; } if (isDisabled) { r172 = {intl.string(t.wu4gyV)} ; } else { L33: { L21: { if (memo != null && balance != null) { if (preferVCPrice !== true && !memo4 && formattedPriceForCollectiblesProduct != null) { break L21; } const style = [styles.priceDescription, { opacity: memo4 === false ? 0.5 : 1 }]; props = { style, children: [, {memo.amount}, memo2 >= DISCOUNT_DISPLAY_MINIMUM_THRESHOLD && {`-${memo2}%`} ] }; break L33; } } props = { style: styles.priceDescription, children: [hasShopDiscount ? discountSource === ShopDiscountSource.THIRDPARTY ? : : hasShopDiscount, {formattedPriceForCollectiblesProduct}, memo3 >= DISCOUNT_DISPLAY_MINIMUM_THRESHOLD && {`-${memo3}%`} ] }; } r172 = ; } return r172; }); Component.displayName = "PriceDescription"; const r59 = Module19.memo(function CardDetailsV2(props) { const { product, collectibleProductState, preferVCPrice, isDisabled, hidePrice } = props; const styles = useStyles(); const currentUser = useCurrentUser(); const r31 = useIsProfileFramesEarlyAccessPhase("CollectiblesShopCardCardDetailsV2") && getProductType(product) === CollectiblesItemType.PROFILE_FRAME; const hasShopDiscount2 = PremiumUtils.canUseShopDiscounts(currentUser) || r31; const shopDiscountSource = getShopDiscountSource(currentUser); const token = useToken(Module712.colors.BACKGROUND_BASE_LOW); const r15 = hexToRgbaString(hexWithOpacity(token, 0.9)); const r23 = hexToRgbaString(hexWithOpacity(token, 0)); const productName = getProductName(product); const stateFromStores = useStateFromStores([IAPStore_android], () => IAPStore_android.isFetchingGoogleSkus()); return {productName} {hidePrice ? !hidePrice : } ; }); export default r59;