90 lines
3.2 KiB
TypeScript
90 lines
3.2 KiB
TypeScript
// Metro module 12537 (f12538).
|
|
import { Image as Image2, View } from "react-native";
|
|
import { AppliedGuildBoostsRequiredForBoostedGuildTier, BoostedGuildTiers } from "../../../Constants";
|
|
import { createStyles } from "../../../design/components/Styles/native/createStyles";
|
|
import Module712 from "../../../_bundle/Module712";
|
|
import { getTier048PxSource } from "../../../design/components/Illustration/native/redesign/generated/Tier048Px";
|
|
import Module12542 from "../../../_bundle/Module12542";
|
|
import Module12543 from "../../../_bundle/Module12543";
|
|
import Module12544 from "../../../_bundle/Module12544";
|
|
import useGuildPowerupsBoostCount from "../powerups/hooks/useGuildPowerupsBoostCount";
|
|
import { getNextGuildTierFromGuild, getTierName } from "../../../utils/GuildBoostingUtils";
|
|
import ProgressCircle from "./components/ProgressCircle";
|
|
import { Text } from "../../../design/components/Text/native/Text";
|
|
const useStyles = createStyles({
|
|
guildTierProgressCircle: {
|
|
position: "relative",
|
|
width: 70,
|
|
height: 70
|
|
},
|
|
guildTierBackground: {
|
|
backgroundColor: Module712.colors.BACKGROUND_SURFACE_HIGH,
|
|
width: 64,
|
|
height: 64,
|
|
alignItems: "center",
|
|
justifyContent: "center",
|
|
borderRadius: Module712.radii.xxl
|
|
},
|
|
guildTierNoneIcon: {
|
|
width: 18,
|
|
height: 30
|
|
},
|
|
guildTierIcon: {
|
|
width: 24,
|
|
height: 24
|
|
},
|
|
guildTierName: {
|
|
lineHeight: 16,
|
|
marginTop: 2
|
|
}
|
|
});
|
|
export default function BoostedGuildTierProgressCircle(props) {
|
|
let props2, props3, source;
|
|
const { guild, theme } = props;
|
|
const styles = useStyles();
|
|
const available = useGuildPowerupsBoostCount(guild?.id).available;
|
|
if (guild == null) {
|
|
return <View style={styles.guildTierBackground}>
|
|
<Image2 source={getTier048PxSource(theme)} style={styles.guildTierNoneIcon} accessibilityElementsHidden importantForAccessibility="no" />
|
|
</View>;
|
|
}
|
|
const nextGuildTierFromGuild = getNextGuildTierFromGuild(guild.id);
|
|
const r32 = nextGuildTierFromGuild != null ? AppliedGuildBoostsRequiredForBoostedGuildTier[nextGuildTierFromGuild] : null;
|
|
const percent = r32 != null ? r32 > 0 ? available / r32 * 100 : 100 : 100;
|
|
L17: {
|
|
props2 = {
|
|
style: styles.guildTierProgressCircle,
|
|
percent,
|
|
children: null
|
|
};
|
|
props3 = {
|
|
style: styles.guildTierBackground,
|
|
children: null
|
|
};
|
|
if (guild != null && guild.premiumTier !== BoostedGuildTiers.NONE) {
|
|
const premiumTier = guild.premiumTier;
|
|
if (BoostedGuildTiers.TIER_1 === premiumTier) {
|
|
source = Module12542;
|
|
break L17;
|
|
}
|
|
if (BoostedGuildTiers.TIER_2 === premiumTier) {
|
|
source = Module12543;
|
|
break L17;
|
|
}
|
|
const TIER_3 = BoostedGuildTiers.TIER_3;
|
|
source = void 0;
|
|
if (TIER_3 !== premiumTier) {
|
|
break L17;
|
|
}
|
|
source = Module12544;
|
|
} else {
|
|
source = getTier048PxSource(theme);
|
|
}
|
|
}
|
|
props3.children = [<Image2 source={source} style={styles.guildTierIcon} accessibilityElementsHidden importantForAccessibility="no" />, <Text style={styles.guildTierName} variant="text-xs/semibold" color="interactive-text-active">
|
|
{getTierName(guild.premiumTier)}
|
|
</Text>];
|
|
props2.children = <View {...props3} />;
|
|
return <ProgressCircle {...props2} />;
|
|
};
|