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

65 lines
3.1 KiB
TypeScript

// Metro module 15004 (f15005).
import { memo, useMemo } from "react";
import { GUILD_ITEM_BADGE_SIZE } from "./GuildsBarConstants";
import { createStyles } from "../../../design/components/Styles/native/createStyles";
import Module712 from "../../../_bundle/Module712";
import computeGuildsBarCutout from "./utils/computeGuildsBarCutout";
import MobileVisualRefreshExperiment from "../../themes/experiments/MobileVisualRefreshExperiment";
import GuildsBarAnimatedItemWrapper, { useGuildsBarAnimatedWrapperStyles } from "./GuildsBarAnimatedItemWrapper";
import AvatarUtils from "../../../utils/AvatarUtils";
import GuildIcon, { ImageSizes, GuildIconSizes } from "../../guild/native/GuildIcon";
import AlertActionCreators from "../../../actions/AlertActionCreators";
import { intl, t } from "../../../intl/index.native";
import GuildSettingsActionCreators from "../../guild_settings/GuildSettingsActionCreators";
import GuildsBarGeoRestrictedBadge from "./GuildsBarGeoRestrictedBadge";
import HomeDrawerGuildRow from "../../home_drawer/native/HomeDrawerGuildRow";
import FastImage from "../../../components_native/common/FastImage";
const useStyles = createStyles({
guildIcon: {
width: Module712.modules.mobile.GUILD_BAR_ITEM_SIZE,
height: Module712.modules.mobile.GUILD_BAR_ITEM_SIZE
},
geoRestrictedBadge: {
borderColor: "transparent",
width: GUILD_ITEM_BADGE_SIZE,
height: GUILD_ITEM_BADGE_SIZE,
bottom: 4,
right: 12
}
});
const cutouts = [computeGuildsBarCutout({
position: "bottom-right"
})];
const r45 = memo(function GuildsBarGeoRestrictedGuild(props) {
const restrictedGuild = props.restrictedGuild;
const r15 = MobileVisualRefreshExperiment("GuildsBarGeoRestrictedGuild");
const styles = useStyles();
const styles2 = useGuildsBarAnimatedWrapperStyles({
disableSelectedColor: true,
disableBGColor: true
});
const source = restrictedGuild.icon != null ? AvatarUtils.getAnimatableSourceWithFallback(false, (a0) => AvatarUtils.getGuildIconSource({
id: restrictedGuild.id,
size: ImageSizes[GuildIconSizes.LARGE],
icon: restrictedGuild.icon,
canAnimate: a0
})) : null;
return <GuildsBarAnimatedItemWrapper selected={false} unread={false} circle={!r15} styles={styles2} label={restrictedGuild.name} isDragTarget={false} config={useMemo(() => ({
onPress: () => {
AlertActionCreators.show({
title: intl.string(t.aCAiGl),
body: intl.format(t["4cJV9S"], {
serverName: restrictedGuild.name
}),
cancelText: intl.string(t.J2TBi3),
onCancel: () => {
GuildSettingsActionCreators.leaveGuild(restrictedGuild.id);
}
});
}
}), [restrictedGuild.id, restrictedGuild.name])} cutouts={cutouts} overState={void 0} externalChildren={<GuildsBarGeoRestrictedBadge style={styles.geoRestrictedBadge} />} expandedChildren={<HomeDrawerGuildRow guildId={restrictedGuild.id} />}>
{source != null ? <FastImage source={source} style={styles.guildIcon} fadeDuration={0} /> : <GuildIcon value={restrictedGuild.name} selected={false} animate={false} size={GuildIconSizes.LARGE} />}
</GuildsBarAnimatedItemWrapper>;
});
export default r45;