// Metro module 6046 (f6047). import GuildStore from "../../stores/GuildStore"; import PermissionStore from "../../stores/PermissionStore"; import { GUILD_OFFICIAL_HIGHLIGHT_ALPHA } from "./MessageConstants"; import { GuildFeatures, Permissions, MessageFlags, ChannelTypes } from "../../Constants"; import { int2hex } from "../../_bundle/int2hslRaw"; import Module689 from "../../_bundle/Module689"; import { getAccessibleForegroundColor } from "../../utils/ColorUtils"; import { WCAGContrastRatios } from "../../design/shared"; import GuildOfficialMessagesExperiment from "./GuildOfficialMessagesExperiment"; import { useStateFromStores } from "../../_bundle/Module589"; import { getIsActiveChannelOrUnarchivableThread } from "../threads/ThreadHooks"; import isSystemMessage from "./isSystemMessage"; function $mk77626($env) { return () => { const r4 = $env[0]; return r4 != null ? $env.$parent[3].getGuild(r4) : null; }; } let env3830 = {}; export function useCanManageGuildOfficialMessages(a0, a1, a2) { let env15378; let guildId = a0; const r2 = env15378 = { $parent: env3830 }; env15378[0] = a0; const stateFromStores = useStateFromStores([GuildStore], $mk77626(r2), [a0]); if (a0 == null) { guildId = void 0; } const enabled = GuildOfficialMessagesExperiment.useExperiment({ guildId, location: a2 }).enabled; let r25 = stateFromStores != null && stateFromStores.features.has(GuildFeatures.VERIFIED) && enabled; const stateFromStores2 = useStateFromStores([PermissionStore], () => PermissionStore.can(Permissions.MANAGE_OFFICIAL_MESSAGES, a1), [a1]); if (r25) { r25 = stateFromStores2; } return r25; } export function getAccessibleGuildOfficialTextColor(a0, a1, saturationFactor = 1, r12 = GUILD_OFFICIAL_HIGHLIGHT_ALPHA) { const r11 = int2hex(a0); let background = Module689(a1); const foreground = Module689(r11); const r28 = Module689.mix(background, r11, r12, "rgb"); if (Module689.contrast(foreground, r28) < Module689.contrast(foreground, background)) { background = r28; } return getAccessibleForegroundColor({ foreground, background, ratio: WCAGContrastRatios.Text, saturationFactor }); } export function showGuildOfficialMessageGradient(a0) { return a0 !== "no_gradient" && a0 !== "hidden"; } export function showGuildOfficialMessageTextColor(a0) { return a0 !== "no_text_color" && a0 !== "hidden"; } export function isGuildOfficialMessagesEnabled(a0, a1) { return a0 != null && a0.features.has(GuildFeatures.VERIFIED) && GuildOfficialMessagesExperiment.getCurrentConfig({ guildId: a0.id, location: a1 }).enabled; } export function useIsGuildOfficialMessagesEnabled(a0, a1) { let env15376; const r3 = env15376 = { $parent: env3830 }; let guildId = a0; env15376[0] = a0; const stateFromStores = useStateFromStores([GuildStore], $mk77626(r3), [a0]); if (a0 == null) { guildId = void 0; } const enabled = GuildOfficialMessagesExperiment.useExperiment({ guildId, location: a1 }).enabled; return stateFromStores != null && stateFromStores.features.has(GuildFeatures.VERIFIED) && enabled; } export function canManageGuildOfficialMessages(a0, a1, a2) { return a0 != null && a0.features.has(GuildFeatures.VERIFIED) && GuildOfficialMessagesExperiment.getCurrentConfig({ guildId: a0.id, location: a2 }).enabled && PermissionStore.can(Permissions.MANAGE_OFFICIAL_MESSAGES, a1); } export function useCanToggleGuildOfficialMessages(a0, a1, a2) { let guild_id = a1.guild_id; if (guild_id == null) { guild_id = void 0; } const r8 = useCanManageGuildOfficialMessages(guild_id, a1, a2); const r9 = r8 ? isSystemMessage(a0) : !r8; return r9 ? !r9 : a0.hasFlag(MessageFlags.IS_GUILD_OFFICIAL) ? getIsActiveChannelOrUnarchivableThread(a1) : a1 != null && !a1.isPrivate() && getIsActiveChannelOrUnarchivableThread(a1) && a1.type !== ChannelTypes.GUILD_VOICE && a1.type !== ChannelTypes.GUILD_STAGE_VOICE; } export function canSendGuildOfficialMessages(a0, a1, a2) { return a0 != null && a0.features.has(GuildFeatures.VERIFIED) && GuildOfficialMessagesExperiment.getCurrentConfig({ guildId: a0.id, location: a2 }).enabled && PermissionStore.can(Permissions.MANAGE_OFFICIAL_MESSAGES, a1) && (a1 != null && !a1.isPrivate() && getIsActiveChannelOrUnarchivableThread(a1) && a1.type !== ChannelTypes.GUILD_VOICE && a1.type !== ChannelTypes.GUILD_STAGE_VOICE); }