Files
discord-decomp/modules/premium/native/BoostedGuildTierProgressCircle.tsx
T
2026-11-01 12:12:55 +02:00

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} />;
};