36 lines
1.1 KiB
TypeScript
36 lines
1.1 KiB
TypeScript
// Metro module 10375 (f10376).
|
|
export default function parseReactionPermissions(a0) {
|
|
const channel = a0.channel;
|
|
let canChat = a0.canChat;
|
|
const { renderReactions, canAddNewReactions } = a0;
|
|
let isLurking = a0.isLurking;
|
|
const { communicationDisabled, isActiveChannelOrUnarchivableThread, isAutomodQuarantined } = a0;
|
|
const isPrivate = channel.isPrivate();
|
|
const isSystemDM = channel.isSystemDM();
|
|
const isMediaThread = channel.isMediaThread();
|
|
if (!canChat) {
|
|
canChat = isPrivate;
|
|
}
|
|
if (canChat) {
|
|
canChat = isActiveChannelOrUnarchivableThread;
|
|
}
|
|
if (canChat) {
|
|
canChat = !isMediaThread;
|
|
}
|
|
const disableReactionCreates = (isLurking ? isLurking : !canChat) || !((canAddNewReactions === true || isPrivate) && !isSystemDM && isActiveChannelOrUnarchivableThread && !isMediaThread);
|
|
if (!isLurking) {
|
|
isLurking = !canChat;
|
|
}
|
|
if (!isLurking) {
|
|
isLurking = communicationDisabled === true;
|
|
}
|
|
if (!isLurking) {
|
|
isLurking = isAutomodQuarantined === true;
|
|
}
|
|
return {
|
|
disableReactionReads: !renderReactions,
|
|
disableReactionCreates,
|
|
disableReactionUpdates: isLurking
|
|
};
|
|
};
|