// Metro module 14988 (f14989). import { useMemo } from "react"; import GuildIncidentsStore from "../../../guild_antiraid/GuildIncidentsStore"; import UserGuildJoinRequestStore from "../../../guild_member_verification/UserGuildJoinRequestStore"; import LurkingStore from "../../../lurker_mode/LurkingStore"; import GuildMemberStore from "../../../../stores/GuildMemberStore"; import GuildStore from "../../../../stores/GuildStore"; import PermissionStore from "../../../../stores/PermissionStore"; import UserStore from "../../../../stores/UserStore"; import { GuildFeatures, Permissions } from "../../../../Constants"; import { createStyles } from "../../../../design/components/Styles/native/createStyles"; import { useStateFromStores } from "../../../../_bundle/Module589"; import { isActionedAndNotAcked } from "../../../guild_member_verification/GuildJoinRequestUtils"; import useGuildMediaState from "../../useGuildMediaState"; import { useToken } from "../../../../design/tokens/native/useToken"; import Module712 from "../../../../_bundle/Module712"; import { BADGE_PADDING } from "../../../../design/void/native"; import { getMediaIcon, GuildsBarActivityIndicatorBase } from "../GuildsBarActivityIndicator"; import computeGuildsBarCutout from "../utils/computeGuildsBarCutout"; import useGuildsBarBottomRightBadge from "./useGuildsBarBottomRightBadge"; const _excluded = ["guildActivityIndicatorSource"]; const useStyles = createStyles({ topRightBadge: { position: "absolute", right: 9, backgroundColor: "transparent", borderColor: "transparent" } }); export default function useGuildsBarBadges(a0, a1, a2) { let c21505_3, token, token2, memo, cutoutTopRight, cutout; const styles = useStyles(); const stateFromStores = useStateFromStores([GuildStore], () => { const guild = GuildStore.getGuild(a0); let r8 = guild == null ? void 0 : guild.features.has(GuildFeatures.MEMBER_VERIFICATION_MANUAL_APPROVAL); if (r8 == null) { r8 = false; } return r8; }); const stateFromStores2 = useStateFromStores([UserGuildJoinRequestStore, UserStore, GuildMemberStore], () => { L7: { if (stateFromStores) { const request = UserGuildJoinRequestStore.getRequest(a0); const currentUser = UserStore.getCurrentUser(); if (currentUser != null && request != null && request.userId === currentUser.id) { const member = GuildMemberStore.getMember(a0, request.userId); if (member != null && !member.isPending && !isActionedAndNotAcked(request)) { break L7; } return request.applicationStatus; } } } }, [a0, stateFromStores]); const stateFromStores3 = useStateFromStores([PermissionStore, GuildStore, GuildIncidentsStore], () => { const guild = GuildStore.getGuild(a0); if (guild != null && PermissionStore.can(Permissions.MANAGE_GUILD, guild)) { const guildIncident = GuildIncidentsStore.getGuildIncident(a0); const r19 = guild == null; let r20 = void 0; if (!r19) { const features = guild.features; const has = features.has; r20 = has == null ? void 0 : has.call(features, GuildFeatures.INVITES_DISABLED); } if (!r20) { r20 = guildIncident?.invitesDisabledUntil != null && new Date(guildIncident.invitesDisabledUntil) > new Date(); } return r20; } return false; }, [a0]); const guildMediaState = useGuildMediaState(a0); c21505_3 = guildMediaState; const stateFromStores4 = useStateFromStores([LurkingStore], () => LurkingStore.getLurkingPreviewExpiry(a0), [a0]); token = useToken(Module712.modules.mobile.GUILD_BAR_ITEM_SIZE); token2 = useToken(Module712.modules.mobile.GUILD_BAR_ITEM_MARGIN); memo = useMemo(() => [styles.topRightBadge, { top: token2 - BADGE_PADDING }], [styles.topRightBadge, token2]); const memo2 = useMemo(() => { const mediaIcon = getMediaIcon(c21505_3); let guildActivityIndicatorSource2 = mediaIcon?.source; if (guildActivityIndicatorSource2 == null) { guildActivityIndicatorSource2 = null; } const r10 = { guildActivityIndicatorSource: guildActivityIndicatorSource2, IconComponent: mediaIcon?.icon, isCurrentUserConnected: c21505_3.isCurrentUserConnected }; const { guildActivityIndicatorSource, ...rest } = r10; return { badgeTopRight: guildActivityIndicatorSource != null ? : null, cutoutTopRight: guildActivityIndicatorSource != null ? computeGuildsBarCutout({ position: "top-right", containerSize: token }) : void 0 }; }, [guildMediaState, memo, token]); const badgeTopRight = memo2.badgeTopRight; cutoutTopRight = memo2.cutoutTopRight; const guildsBarBottomRightBadge = useGuildsBarBottomRightBadge({ mentionCount: a1, isMentionLowImportance: a2, joinRequestState: stateFromStores2, shouldShowInvitesDisabled: stateFromStores3, lurkerPreviewExpiresAt: stateFromStores4 }); const badge = guildsBarBottomRightBadge.badge; cutout = guildsBarBottomRightBadge.cutout; return { badgeTopRight, badgeBottomRight: badge, cutouts: useMemo(() => { const r1 = []; if (cutoutTopRight != null) { r1.push(cutoutTopRight); } if (cutout != null) { r1.push(cutout); } return r1; }, [cutoutTopRight, cutout]), mediaState: guildMediaState }; };