// Module ID: 7541 // Function ID: 7542 // Name: GuildOfficialMessageUtils // Dependencies: [2063, 4427, 4781, 1074, 1092, 672, 4637, 4639, 7542, 504, 7543, 7544, 2] // Exports: canManageGuildOfficialMessages, canSendGuildOfficialMessages, getAccessibleGuildOfficialTextColor, isGuildOfficialMessagesEnabled, showGuildOfficialMessageGradient, showGuildOfficialMessageTextColor, useCanToggleGuildOfficialMessages, useIsGuildOfficialMessagesEnabled // Module 7541 (GuildOfficialMessageUtils) import _modDef672 from "module_672" /* 672 */; import utils_ColorUtils from "utils/ColorUtils" /* 1092 */; import ColorUtils from "ColorUtils" /* 4637 */; import shared from "shared" /* 4639 */; import GuildOfficialMessagesExperimentDefault from "GuildOfficialMessagesExperiment" /* 7542 */; import ThreadHooks from "ThreadHooks" /* 7543 */; import isSystemMessageDefault from "isSystemMessage" /* 7544 */; import GuildStore from "GuildStore" /* 2063 */; import PermissionStore from "PermissionStore" /* 4427 */; const require = globalThis.__r; require = fn; function useCanManageGuildOfficialMessages(arg0, arg1, location) { _require = arg1; closure_129_0 = arg0; const items = [GuildStore]; const items1 = [arg0]; const stateFromStores = require("initialize").useStateFromStores(items, () => { let guild = null; if (null != closure_0) { guild = GuildStore.getGuild(tmp); } return guild; }, items1); const obj = require("initialize"); const tmp = arg0; let enabled = null != stateFromStores; if (enabled) { const features = stateFromStores.features; enabled = features.has(constants2.VERIFIED); } if (enabled) { enabled = obj2.useExperiment(obj3).enabled; } obj2 = GuildOfficialMessagesExperimentDefault; obj3 = { guildId: tmp, location }; const items2 = [PermissionStore]; const items3 = [arg1]; if (enabled) { enabled = tmp2Result.useStateFromStores(items2, () => PermissionStore.can(constants4.MANAGE_OFFICIAL_MESSAGES, closure_0), items3); } return enabled; } let closure_5 = fn(4781).GUILD_OFFICIAL_HIGHLIGHT_ALPHA; const Constants = fn(1074); ({ ChannelTypes: metroRequire, GuildFeatures: closure_7, MessageFlags: closure_8, Permissions: closure_9 } = Constants); const size = fn(2); const result = size.fileFinishedImporting("modules/messages/GuildOfficialMessageUtils.tsx"); export const getAccessibleGuildOfficialTextColor = function getAccessibleGuildOfficialTextColor(officialMessageColor, semanticColor, saturation, arg3) { let num = saturation; if (saturation === undefined) { num = 1; } let tmp = arg3; if (arg3 === undefined) { tmp = closure_5; } const int2hexResult = utils_ColorUtils.int2hex(officialMessageColor); let tmp5 = _modDef672(semanticColor); const tmp6 = _modDef672(int2hexResult); const mixResult = _modDef672.mix(tmp5, int2hexResult, tmp, "rgb"); const contrastResult = _modDef672.contrast(tmp6, mixResult); if (contrastResult < obj4.contrast(tmp6, tmp5)) { tmp5 = mixResult; } obj4 = _modDef672; const tmp2Result = ColorUtils; return tmp2Result.getAccessibleForegroundColor({ foreground: tmp6, background: tmp5, ratio: shared.WCAGContrastRatios.Text, saturationFactor: num }); }; 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 const isGuildOfficialMessagesEnabled = function isGuildOfficialMessagesEnabled(guild, GuildSettingsModalLanding) { let enabled = null != guild; if (enabled) { const features = guild.features; enabled = features.has(constants2.VERIFIED); } if (enabled) { const obj2 = { guildId: guild.id, location: GuildSettingsModalLanding }; enabled = GuildOfficialMessagesExperimentDefault.getCurrentConfig(obj2).enabled; } return enabled; }; export const useIsGuildOfficialMessagesEnabled = function useIsGuildOfficialMessagesEnabled(id, useGuildActionRows) { _require = id; const items = [GuildStore]; const items1 = [id]; const stateFromStores = require("initialize").useStateFromStores(items, () => { let guild = null; if (null != closure_0) { guild = GuildStore.getGuild(tmp); } return guild; }, items1); const obj = require("initialize"); let enabled = null != stateFromStores; if (enabled) { const features = stateFromStores.features; enabled = features.has(constants2.VERIFIED); } if (enabled) { enabled = obj2.useExperiment(obj3).enabled; } return enabled; }; export const canManageGuildOfficialMessages = function canManageGuildOfficialMessages(features, arg1, location) { let enabled = null != features; if (enabled) { features = features.features; enabled = features.has(constants2.VERIFIED); } if (enabled) { const obj2 = { guildId: features.id, location }; enabled = GuildOfficialMessagesExperimentDefault.getCurrentConfig(obj2).enabled; } if (enabled) { enabled = PermissionStore.can(constants4.MANAGE_OFFICIAL_MESSAGES, arg1); } return enabled; }; export { useCanManageGuildOfficialMessages }; export const useCanToggleGuildOfficialMessages = function useCanToggleGuildOfficialMessages(message, channel, LongPressMessageActionSheet) { const guild_id = channel.guild_id; const tmpResult = useCanManageGuildOfficialMessages(guild_id, channel, LongPressMessageActionSheet); let tmp3 = !tmpResult; if (tmpResult) { tmp3 = isSystemMessageDefault(message); } if (tmp3) { return !tmp3; } else if (message.hasFlag(constants3.IS_GUILD_OFFICIAL)) { let isActiveChannelOrUnarchivableThread = ThreadHooks.getIsActiveChannelOrUnarchivableThread(channel); } else { isActiveChannelOrUnarchivableThread = null != channel && !channel.isPrivate(); if (isActiveChannelOrUnarchivableThread) { isActiveChannelOrUnarchivableThread = ThreadHooks.getIsActiveChannelOrUnarchivableThread(channel); } if (isActiveChannelOrUnarchivableThread) { isActiveChannelOrUnarchivableThread = channel.type !== constants.GUILD_VOICE; } if (isActiveChannelOrUnarchivableThread) { isActiveChannelOrUnarchivableThread = channel.type !== constants.GUILD_STAGE_VOICE; } } }; export const canSendGuildOfficialMessages = function canSendGuildOfficialMessages(guild, channel, _sendMessage) { let enabled = null != guild; if (enabled) { const features = guild.features; enabled = features.has(constants2.VERIFIED); } if (enabled) { const obj2 = { guildId: guild.id, location: _sendMessage }; enabled = GuildOfficialMessagesExperimentDefault.getCurrentConfig(obj2).enabled; } if (enabled) { enabled = PermissionStore.can(constants4.MANAGE_OFFICIAL_MESSAGES, channel); } if (enabled) { let isActiveChannelOrUnarchivableThread = null != channel && !channel.isPrivate(); if (isActiveChannelOrUnarchivableThread) { isActiveChannelOrUnarchivableThread = ThreadHooks.getIsActiveChannelOrUnarchivableThread(channel); } if (isActiveChannelOrUnarchivableThread) { isActiveChannelOrUnarchivableThread = channel.type !== constants.GUILD_VOICE; } if (isActiveChannelOrUnarchivableThread) { isActiveChannelOrUnarchivableThread = channel.type !== constants.GUILD_STAGE_VOICE; } enabled = isActiveChannelOrUnarchivableThread; } return enabled; };