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

50 lines
2.4 KiB
TypeScript

// Metro module 10374 (f10375).
import LurkingStore from "../lurker_mode/LurkingStore";
import GuildMemberStore from "../../stores/GuildMemberStore";
import GuildVerificationStore from "../../stores/GuildVerificationStore";
import PermissionStore from "../../stores/PermissionStore";
import { Permissions } from "../../Constants";
import { useStateFromStores } from "../../_bundle/Module589";
import { useCurrentUserAutomodQuaratinedProfile } from "../guild_automod/AutomodPermissionUtils";
import { useCurrentUserCommunicationDisabled } from "../guild_communication_disabled/useUserCommunicationDisabled";
import { useIsActiveChannelOrUnarchivableThread } from "../threads/ThreadHooks";
import parseReactionPermissions from "./parseReactionPermissions";
export default function useReactionPermissions(a0) {
const guild_id = a0?.guild_id;
const stateFromStores = useStateFromStores([GuildVerificationStore], () => guild_id == null || GuildVerificationStore.canChatInGuild(guild_id), [guild_id]);
const stateFromStores2 = useStateFromStores([LurkingStore], () => guild_id != null && LurkingStore.isLurking(guild_id), [guild_id]);
const stateFromStores3 = useStateFromStores([GuildMemberStore], () => guild_id != null && GuildMemberStore.isCurrentUserGuest(guild_id), [guild_id]);
const stateFromStores4 = useStateFromStores([PermissionStore], () => {
let r0 = stateFromStores;
if (stateFromStores) {
r0 = PermissionStore.can(Permissions.ADD_REACTIONS, a0);
}
return r0;
}, [stateFromStores, a0]);
const currentUserAutomodQuaratinedProfile = useCurrentUserAutomodQuaratinedProfile(guild_id);
const [, communicationDisabled] = useCurrentUserCommunicationDisabled(guild_id);
const isActiveChannelOrUnarchivableThread = useIsActiveChannelOrUnarchivableThread(a0);
return a0 == null ? {
disableReactionReads: true,
disableReactionCreates: true,
disableReactionUpdates: true,
isLurking: false,
isGuest: false,
isPendingMember: false
} : {
...parseReactionPermissions({
channel: a0,
canChat: stateFromStores,
renderReactions: true,
canAddNewReactions: stateFromStores4,
isLurking: stateFromStores2,
communicationDisabled,
isActiveChannelOrUnarchivableThread,
isAutomodQuarantined: currentUserAutomodQuaratinedProfile
}),
isLurking: stateFromStores2,
isGuest: stateFromStores3,
isPendingMember: false
};
};