129 lines
5.3 KiB
TypeScript
129 lines
5.3 KiB
TypeScript
// Metro module 6558 (f6559).
|
|
import { View } from "react-native";
|
|
import EntitlementStore from "../../../stores/game_store/EntitlementStore";
|
|
import { SubscriptionStatusTypes } from "../../../Constants";
|
|
import { createStyles } from "../../../design/components/Styles/native/createStyles";
|
|
import Module712 from "../../../_bundle/Module712";
|
|
import PremiumUtils, { castPremiumSubscriptionAsSkuId, extendDateWithUnconsumedFractionalPremium } from "../../../utils/PremiumUtils";
|
|
import { intl, t } from "../../../intl/index.native";
|
|
import PremiumGroup_messages from "../premium_group/PremiumGroup.messages";
|
|
import GameIcon, { GameIconSizes } from "../../game_detection/native/GameIcon";
|
|
import { Text } from "../../../design/components/Text/native/Text";
|
|
import { useStateFromStoresArray } from "../../../_bundle/Module589";
|
|
import Module12 from "../../../_bundle/Module12";
|
|
let useStyles;
|
|
const AccountCreditTier = function AccountCreditTier(props) {
|
|
let r44, currentSubscription2, months, shouldAddDivider, skuId, styles, tierDisplayNameByPlanId;
|
|
L12: {
|
|
const planId = props.planId;
|
|
months = props.months;
|
|
currentSubscription2 = props.currentSubscription;
|
|
shouldAddDivider = props.shouldAddDivider;
|
|
const { unconsumedFractionalPremiumUnits, hasPremiumGroup: hasPremiumGroup2 } = props;
|
|
styles = useStyles();
|
|
skuId = castPremiumSubscriptionAsSkuId(PremiumUtils.getSkuIdForPlan(planId));
|
|
tierDisplayNameByPlanId = PremiumUtils.getTierDisplayNameByPlanId(planId);
|
|
if (hasPremiumGroup2) {
|
|
r44 = intl.string(PremiumGroup_messages["5asczk"]);
|
|
} else {
|
|
if (currentSubscription2 != null && currentSubscription2.planId === planId) {
|
|
let date = extendDateWithUnconsumedFractionalPremium(currentSubscription2.status === SubscriptionStatusTypes.PAUSED && currentSubscription2.pauseEndsAt != null ? new Date(currentSubscription2.pauseEndsAt) : new Date(currentSubscription2.currentPeriodEnd), unconsumedFractionalPremiumUnits);
|
|
const r71 = t["5CNRRA"];
|
|
if (date == null) {
|
|
date = 0;
|
|
}
|
|
r44 = intl.formatToPlainString(r71, {
|
|
date
|
|
});
|
|
break L12;
|
|
}
|
|
r44 = intl.formatToPlainString(t.eNXZ5O, {
|
|
planName: tierDisplayNameByPlanId
|
|
});
|
|
}
|
|
}
|
|
const r81 = currentSubscription2 != null && currentSubscription2.isPurchasedExternally;
|
|
return <View style={[styles.creditItem, shouldAddDivider ? styles.divider : null]}>
|
|
<GameIcon size={GameIconSizes.SMALL} skuId={skuId} />
|
|
<View style={styles.textContainer}>
|
|
<Text style={styles.headerText} variant="text-md/semibold" color="mobile-text-heading-primary">
|
|
{intl.format(t.LzobT9, {
|
|
planName: tierDisplayNameByPlanId
|
|
})}
|
|
</Text>
|
|
{r81 ? !r81 : <Text style={styles.subText} variant="text-xs/medium" color="text-default">{r44}</Text>}
|
|
</View>
|
|
<Text style={styles.timeText} variant="text-md/medium" color="text-default">
|
|
{intl.format(t["ess/xl"], {
|
|
count: months
|
|
})}
|
|
</Text>
|
|
</View>;
|
|
};
|
|
useStyles = createStyles({
|
|
title: {
|
|
marginBottom: 12
|
|
},
|
|
creditList: {
|
|
borderRadius: Module712.radii.xs,
|
|
backgroundColor: Module712.colors.BACKGROUND_SURFACE_HIGH
|
|
},
|
|
creditItem: {
|
|
flexDirection: "row",
|
|
alignItems: "center",
|
|
padding: 16
|
|
},
|
|
textContainer: {
|
|
marginLeft: 16,
|
|
marginRight: 16,
|
|
flexDirection: "column",
|
|
flex: 1
|
|
},
|
|
headerText: {
|
|
lineHeight: 20
|
|
},
|
|
subText: {
|
|
lineHeight: 16
|
|
},
|
|
timeText: {
|
|
lineHeight: 20,
|
|
alignSelf: "flex-start"
|
|
},
|
|
divider: {
|
|
borderBottomWidth: 1,
|
|
borderBottomColor: Module712.colors.BORDER_SUBTLE
|
|
},
|
|
creditDescription: {
|
|
marginTop: 8
|
|
}
|
|
});
|
|
export default function PremiumAccountCredit(props) {
|
|
let c15795_3;
|
|
const { currentSubscription, entitlements, style, creditListContainerStyle, hasPremiumGroup } = props;
|
|
c15795_3 = void 0;
|
|
const styles = useStyles();
|
|
const stateFromStoresArray = useStateFromStoresArray([EntitlementStore], () => EntitlementStore.getUnactivatedFractionalPremiumUnits());
|
|
if (entitlements != null && PremiumUtils.hasAccountCredit(entitlements)) {
|
|
const r16 = Module12(Array.from(entitlements)).filter(({ subscriptionPlanId, parentId, consumed }) => subscriptionPlanId != null && parentId != null && !consumed).groupBy((item) => item.subscriptionPlanId).value();
|
|
c15795_3 = r16;
|
|
return <View style={style}>
|
|
<Text style={styles.title} accessibilityRole="header" variant="eyebrow" color="text-default">
|
|
{intl.string(t.YugZY0)}
|
|
</Text>
|
|
<View style={[styles.creditList, creditListContainerStyle]}>
|
|
{Object.keys(r16).map((item) => {
|
|
const r4 = Object;
|
|
return <AccountCreditTier key={item} planId={item} months={c15795_3[item].length} currentSubscription={currentSubscription} shouldAddDivider={!(item === r4.keys(c15795_3)[Object.keys(c15795_3).length - 1])} unconsumedFractionalPremiumUnits={stateFromStoresArray} hasPremiumGroup={hasPremiumGroup} />;
|
|
})}
|
|
</View>
|
|
<Text style={styles.creditDescription} variant="text-sm/medium">
|
|
{intl.string(t.kNEjGm)}
|
|
</Text>
|
|
{currentSubscription != null ? currentSubscription.isPurchasedExternally ? <Text style={styles.creditDescription} variant="text-sm/medium">
|
|
{intl.string(t.azRP0E)}
|
|
</Text> : null : null}
|
|
</View>;
|
|
}
|
|
return null;
|
|
};
|