129 lines
5.4 KiB
TypeScript
129 lines
5.4 KiB
TypeScript
// 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 ? <GuildsBarActivityIndicatorBase style={memo} source={guildActivityIndicatorSource} {...rest} /> : 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
|
|
};
|
|
};
|