Files
discord-decomp/modules/guild_antiraid/GuildAntiRaidPermissionsUtils.tsx
T
2026-11-01 12:12:55 +02:00

54 lines
2.1 KiB
TypeScript

// Metro module 10265 (f10266).
import PermissionStore from "../../stores/PermissionStore";
import GuildIncidentsStore from "./GuildIncidentsStore";
import { EMPTY_STRING_SNOWFLAKE_ID, Permissions } from "../../Constants";
import { useStateFromStores } from "../../_bundle/Module589";
import { hasDetectedActivity } from "./GuildAntiRaidUtils";
import { useIsMentionRaidExperimentEnabled } from "../guild_automod/ExperimentUtils";
export function canReportRaid(a0, r3 = PermissionStore) {
let r8 = r3.can(Permissions.BAN_MEMBERS, a0);
const r9 = r3;
if (!r8) {
r8 = r9.can(Permissions.KICK_MEMBERS, a0);
}
if (!r8) {
r8 = r9.can(Permissions.MODERATE_MEMBERS, a0);
}
if (!r8) {
r8 = r9.can(Permissions.MANAGE_GUILD, a0);
}
return r8;
}
export function useCanReportRaid(a0) {
const stateFromStores = useStateFromStores([PermissionStore], () => {
if (PermissionStore !== void 0) {
return PermissionStore.can(Permissions.BAN_MEMBERS, a0) || PermissionStore.can(Permissions.KICK_MEMBERS, a0) || PermissionStore.can(Permissions.MODERATE_MEMBERS, a0) || PermissionStore.can(Permissions.MANAGE_GUILD, a0);
}
}, [a0]);
const stateFromStores2 = useStateFromStores([GuildIncidentsStore], () => a0 != null ? GuildIncidentsStore.getGuildIncident(a0.id) : null, [a0]);
const r23 = stateFromStores2 != null && hasDetectedActivity(stateFromStores2);
return r23 ? !r23 : stateFromStores;
}
export function canEnableRaidAlerts(a0, r4 = PermissionStore) {
return r4.can(Permissions.MANAGE_GUILD, a0);
}
export function useCanEnableRaidAlerts(a0) {
return useStateFromStores([PermissionStore], () => {
if (PermissionStore !== void 0) {
return PermissionStore.can(Permissions.MANAGE_GUILD, a0);
}
}, [a0]);
}
export function useShowMentionRaidLimitUpsell(a0) {
const stateFromStores = useStateFromStores([PermissionStore], () => {
if (PermissionStore !== void 0) {
return PermissionStore.can(Permissions.MANAGE_GUILD, a0);
}
}, [a0]);
let r19 = a0?.id;
if (r19 == null) {
r19 = EMPTY_STRING_SNOWFLAKE_ID;
}
return useIsMentionRaidExperimentEnabled(r19, false) && stateFromStores;
}