50 lines
2.4 KiB
TypeScript
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
|
|
};
|
|
};
|