decord/source/modules/messages/GuildOfficialMessageUtils.tsx

162 lines
6.1 KiB
TypeScript
Raw Normal View History

2026-07-28 08:39:19 +00:00
// Module ID: 6028
// Function ID: 53422
2026-07-20 16:05:17 +00:00
// Name: isGuildOfficialMessagesEnabled
2026-07-28 08:39:19 +00:00
// Dependencies: [1838, 3793, 4158, 653, 665, 666, 4009, 4011, 6029, 566, 6030, 5904, 2]
2026-07-20 16:05:17 +00:00
// Exports: canSendGuildOfficialMessages, getAccessibleGuildOfficialTextColor, showGuildOfficialMessageGradient, showGuildOfficialMessageTextColor, useCanToggleGuildOfficialMessages
2026-07-28 08:39:19 +00:00
// Module 6028 (isGuildOfficialMessagesEnabled)
2026-07-23 10:11:24 +00:00
import _createForOfIteratorHelperLoose from "_createForOfIteratorHelperLoose";
import _isNativeReflectConstruct from "_isNativeReflectConstruct";
import { GUILD_OFFICIAL_HIGHLIGHT_ALPHA as closure_5 } from "MESSAGE_GROUP_SPACING";
import ME from "ME";
let closure_6;
let closure_7;
let closure_8;
let closure_9;
const require = arg1;
2026-07-20 16:05:17 +00:00
function isGuildOfficialMessagesEnabled(guild, GuildSettingsModalLanding) {
let enabled = null != guild;
if (enabled) {
const features = guild.features;
enabled = features.has(constants2.VERIFIED);
}
if (enabled) {
2026-07-28 08:39:19 +00:00
let obj = importDefault(6029);
2026-07-20 16:05:17 +00:00
obj = { guildId: guild.id, location: GuildSettingsModalLanding };
enabled = obj.getCurrentConfig(obj).enabled;
}
return enabled;
}
function useIsGuildOfficialMessagesEnabled(id, useGuildActionRows) {
2026-07-23 10:11:24 +00:00
const _require = id;
2026-07-20 16:05:17 +00:00
let tmp;
2026-07-23 10:11:24 +00:00
let obj = _require(566);
const items = [_createForOfIteratorHelperLoose];
2026-07-20 16:05:17 +00:00
const items1 = [id];
const stateFromStores = obj.useStateFromStores(items, () => {
let guild = null;
2026-07-23 10:11:24 +00:00
if (null != closure_0) {
guild = outer1_3.getGuild(closure_0);
2026-07-20 16:05:17 +00:00
}
return guild;
}, items1);
obj = {};
if (null != id) {
tmp = id;
}
obj.guildId = tmp;
obj.location = useGuildActionRows;
let enabled = null != stateFromStores;
if (enabled) {
const features = stateFromStores.features;
enabled = features.has(constants2.VERIFIED);
}
if (enabled) {
enabled = obj2.useExperiment(obj).enabled;
}
return enabled;
}
function canManageGuildOfficialMessages(guild, channel, _sendMessage) {
let canResult = isGuildOfficialMessagesEnabled(guild, _sendMessage);
if (canResult) {
2026-07-23 10:11:24 +00:00
canResult = _isNativeReflectConstruct.can(constants4.MANAGE_OFFICIAL_MESSAGES, channel);
2026-07-20 16:05:17 +00:00
}
return canResult;
}
function useCanManageGuildOfficialMessages(id, arg1, useGuildActionRows) {
2026-07-23 10:11:24 +00:00
const _require = arg1;
2026-07-20 16:05:17 +00:00
let stateFromStores = useIsGuildOfficialMessagesEnabled(id, useGuildActionRows);
2026-07-23 10:11:24 +00:00
const items = [_isNativeReflectConstruct];
2026-07-20 16:05:17 +00:00
const items1 = [arg1];
if (stateFromStores) {
2026-07-23 10:11:24 +00:00
stateFromStores = obj.useStateFromStores(items, () => outer1_4.can(outer1_9.MANAGE_OFFICIAL_MESSAGES, closure_0), items1);
2026-07-20 16:05:17 +00:00
}
return stateFromStores;
}
function isChannelOfficialMessageEligible(isPrivate) {
let isActiveChannelOrUnarchivableThread = null != isPrivate && !isPrivate.isPrivate();
if (isActiveChannelOrUnarchivableThread) {
2026-07-28 08:39:19 +00:00
isActiveChannelOrUnarchivableThread = require(6030) /* useCanStartPublicThread */.getIsActiveChannelOrUnarchivableThread(isPrivate);
const obj = require(6030) /* useCanStartPublicThread */;
2026-07-20 16:05:17 +00:00
}
if (isActiveChannelOrUnarchivableThread) {
isActiveChannelOrUnarchivableThread = isPrivate.type !== constants.GUILD_VOICE;
}
if (isActiveChannelOrUnarchivableThread) {
isActiveChannelOrUnarchivableThread = isPrivate.type !== constants.GUILD_STAGE_VOICE;
}
return isActiveChannelOrUnarchivableThread;
}
2026-07-23 10:11:24 +00:00
({ ChannelTypes: closure_6, GuildFeatures: closure_7, MessageFlags: closure_8, Permissions: closure_9 } = ME);
const result = require("MESSAGE_GROUP_SPACING").fileFinishedImporting("modules/messages/GuildOfficialMessageUtils.tsx");
2026-07-20 16:05:17 +00:00
export const getAccessibleGuildOfficialTextColor = function getAccessibleGuildOfficialTextColor(officialMessageColor, merged, arg2, arg3) {
let num = arg2;
let tmp = arg3;
if (arg2 === undefined) {
num = 1;
}
if (tmp === undefined) {
tmp = closure_5;
}
2026-07-23 10:11:24 +00:00
let obj = require(665) /* pad2 */;
2026-07-20 16:05:17 +00:00
const int2hexResult = obj.int2hex(officialMessageColor);
2026-07-23 10:11:24 +00:00
let tmp3 = importDefault(666)(merged);
const tmp4 = importDefault(666)(int2hexResult);
const mixResult = importDefault(666).mix(tmp3, int2hexResult, tmp, "rgb");
const obj2 = importDefault(666);
const obj3 = importDefault(666);
const contrastResult = importDefault(666).contrast(tmp4, mixResult);
2026-07-20 16:05:17 +00:00
if (contrastResult < obj4.contrast(tmp4, tmp3)) {
tmp3 = mixResult;
}
2026-07-23 10:11:24 +00:00
obj4 = importDefault(666);
2026-07-28 08:39:19 +00:00
obj = { foreground: tmp4, background: tmp3, ratio: require(4011) /* AccessibilityAnnouncer */.WCAGContrastRatios.Text, saturationFactor: num };
return require(4009) /* hexToRgb */.getAccessibleForegroundColor(obj);
2026-07-20 16:05:17 +00:00
};
export function showGuildOfficialMessageGradient(officialMessageStyle) {
let tmp = "no_gradient" !== officialMessageStyle;
if (tmp) {
tmp = "hidden" !== officialMessageStyle;
}
return tmp;
}
export function showGuildOfficialMessageTextColor(officialMessageStyle) {
let tmp = "no_text_color" !== officialMessageStyle;
if (tmp) {
tmp = "hidden" !== officialMessageStyle;
}
return tmp;
}
export { isGuildOfficialMessagesEnabled };
export { useIsGuildOfficialMessagesEnabled };
export { canManageGuildOfficialMessages };
export { useCanManageGuildOfficialMessages };
export const useCanToggleGuildOfficialMessages = function useCanToggleGuildOfficialMessages(hasFlag, guild_id, LongPressMessageActionSheet) {
guild_id = guild_id.guild_id;
let tmp2;
if (null != guild_id) {
tmp2 = guild_id;
}
let tmp3 = !useCanManageGuildOfficialMessages(tmp2, guild_id, LongPressMessageActionSheet);
if (!tmp3) {
2026-07-28 08:39:19 +00:00
tmp3 = importDefault(5904)(hasFlag);
2026-07-20 16:05:17 +00:00
}
if (!!tmp3) {
return tmp6;
} else if (hasFlag.hasFlag(constants3.IS_GUILD_OFFICIAL)) {
2026-07-28 08:39:19 +00:00
let isActiveChannelOrUnarchivableThread = require(6030) /* useCanStartPublicThread */.getIsActiveChannelOrUnarchivableThread(guild_id);
const obj = require(6030) /* useCanStartPublicThread */;
2026-07-20 16:05:17 +00:00
} else {
isActiveChannelOrUnarchivableThread = isChannelOfficialMessageEligible(guild_id);
}
};
export const canSendGuildOfficialMessages = function canSendGuildOfficialMessages(guild, channel, _sendMessage) {
let tmp = canManageGuildOfficialMessages(guild, channel, _sendMessage);
if (tmp) {
tmp = isChannelOfficialMessageEligible(channel);
}
return tmp;
};