// Metro module 10283 (f10284).
import { MUTED_OPACITY_CONTENT } from "../../channel_list_v2/native/RedesignChannelListConstants";
import { ANSI_CONTROL_SEQUENCE_RE } from "../../../utils/HighlightJsAnsiLanguage";
import { smartOutput, isStaticRouteIconType } from "../MarkupRulesUtils";
import { makeSizeStyle, getLayoutStyles } from "../../main_tabs_v2/native/shared_components/guild_channels/layouts/ChannelListLayout";
import { ICON_SIZE } from "../../../design/components/Icon/IconSize";
import { AST_KEY } from "../MarkupTypes";
import MarkupRules from "../MarkupRules";
import HighlightText from "../../search/native/components/HighlightText";
import FastImage from "../../../components_native/common/FastImage";
import { isAndroid } from "../../../_bundle/Module501";
import Spoiler from "./Spoiler";
import { inlineChannelMentionReact, createInlineChannelReact } from "./MarkupInlineChannelMentionRules";
import { LegacyText, ThemedIcon } from "../../../design/void/native";
import { isFabric } from "../../../utils/native/FabricUtils";
import { AttachmentIcon } from "../../../design/components/Icon/native/redesign/generated/AttachmentIcon";
import Module4669 from "../../../_bundle/Module4669";
import Timestamp_native from "../Timestamp.native";
let c6867_6, createMessagePreviewReactRules;
const defaultReactFn = function defaultReactFn(a0, a1, a2) {
return typeof a0.content === "string" ? a0.content : smartOutput(a0, a1, a2);
};
createMessagePreviewReactRules = function createMessagePreviewReactRules({ iconColor, iconSize, channelIconSize, customEmojiSize = 15 }) {
let c17842_2 = customEmojiSize;
const r21 = {};
r21[AST_KEY.TEXT] = {
react: defaultReactFn
};
r21[AST_KEY.STRIKETHROUGH] = {
...MarkupRules.RULES[AST_KEY.STRIKETHROUGH],
react: defaultReactFn
};
r21[AST_KEY.UNDERLINE] = {
...MarkupRules.RULES[AST_KEY.UNDERLINE],
react: defaultReactFn
};
r21[AST_KEY.ITALICS] = {
...MarkupRules.RULES[AST_KEY.ITALICS],
react: defaultReactFn
};
r21[AST_KEY.STRONG] = {
...MarkupRules.RULES[AST_KEY.STRONG],
react: defaultReactFn
};
r21[AST_KEY.LINK] = {
...MarkupRules.RULES[AST_KEY.LINK],
react: defaultReactFn
};
r21[AST_KEY.URL] = {
...MarkupRules.RULES[AST_KEY.URL],
react: defaultReactFn
};
r21[AST_KEY.AUTOLINK] = {
...MarkupRules.RULES[AST_KEY.AUTOLINK],
react: defaultReactFn
};
r21[AST_KEY.LINE_BREAK] = {
...MarkupRules.RULES[AST_KEY.LINE_BREAK],
react: () => "\n"
};
r21[AST_KEY.HIGHLIGHT] = {
react: (a0, a1, a2) =>
{smartOutput(a0, a1, a2)}
};
r21[AST_KEY.BLOCK_QUOTE] = {
...MarkupRules.RULES[AST_KEY.BLOCK_QUOTE],
react: defaultReactFn
};
r21[AST_KEY.PARAGRAPH] = {
...MarkupRules.RULES[AST_KEY.PARAGRAPH],
order: 600,
react: defaultReactFn
};
r21[AST_KEY.EMOJI] = {
react: (a0) => a0.surrogate || a0.content
};
r21[AST_KEY.CUSTOM_EMOJI] = {
react: (a0, a1, a2) => {
if (a0.src) {
return ;
}
return a0.alt;
}
};
r21[AST_KEY.SPOILER] = {
react: (a0, a1, a2) =>
{smartOutput(a0, a1, a2)}
};
r21[AST_KEY.STATIC_ROUTE_LINK] = {
react: (a0, a1, a2) => isStaticRouteIconType(a0.channelId) ? smartOutput(a0, a1, a2) : null
};
r21[AST_KEY.INLINE_CODE] = {
...MarkupRules.RULES[AST_KEY.INLINE_CODE],
react: defaultReactFn
};
r21[AST_KEY.CODE_BLOCK] = {
...MarkupRules.RULES[AST_KEY.CODE_BLOCK],
parse: (a0, a1, a2) => {
const r17 = MarkupRules.RULES[AST_KEY.CODE_BLOCK].parse(a0, a1, a2);
if (r17.lang.toLowerCase() === "ansi") {
r17.content = r17.content.replaceAll(c6867_6, "");
}
return r17;
},
react: defaultReactFn
};
r21[AST_KEY.MENTION] = {
...MarkupRules.RULES[AST_KEY.MENTION],
react: defaultReactFn
};
r21[AST_KEY.CHANNEL_MENTION] = {
...MarkupRules.RULES[AST_KEY.CHANNEL_MENTION],
react: inlineChannelMentionReact
};
r21[AST_KEY.ATTACHMENT_LINK] = {
...MarkupRules.RULES[AST_KEY.ATTACHMENT_LINK],
react: (a0, a1, a2) =>
{isFabric() ? "📎 " : }
{smartOutput(a0, a1, a2)}
};
r21[AST_KEY.SOUNDBOARD] = {
...MarkupRules.RULES[AST_KEY.SOUNDBOARD],
react: defaultReactFn
};
r21[AST_KEY.GUILD] = {
react: defaultReactFn
};
r21[AST_KEY.CHANNEL] = {
react: createInlineChannelReact(isFabric() ? "💬" : )
};
r21[AST_KEY.COMMAND_MENTION] = {
...MarkupRules.RULES[AST_KEY.COMMAND_MENTION],
react: (a0, a1, a2) =>
/
{smartOutput(a0, a1, a2)}
};
r21[AST_KEY.TIMESTAMP] = {
...MarkupRules.RULES[AST_KEY.TIMESTAMP],
react: (a0, a1, a2) =>
};
r21[AST_KEY.LIST] = {
...MarkupRules.RULES[AST_KEY.LIST],
react: (a0, a1, a2) => {
const r8 = a0.items[0];
const r6 = Array.isArray(r8) ? r8[0] : r8;
return r6 != null ? smartOutput(r6, a1, a2) : null;
}
};
r21[AST_KEY.HEADING] = {
react: defaultReactFn
};
r21[AST_KEY.SUBTEXT] = {
react: defaultReactFn
};
return r21;
};
c6867_6 = new RegExp(ANSI_CONTROL_SEQUENCE_RE, "g");
export default function createChannelListMessagePreviewReactRules(a0, a1, a2, a3) {
const styles = getLayoutStyles(a0);
const r14 = a3 != null ? Math.min(a2, a3) : a2;
let r29 = ICON_SIZE[styles.messagePreview.messageTypeIconSizeNew];
if (r29 == null) {
r29 = 0;
}
return createMessagePreviewReactRules({
iconColor: a1,
iconSize: styles.messagePreview.messageTypeIconSizeNew,
channelIconSize: styles.messagePreview.messageTypeIconSize,
customEmojiSize: r29 * r14
});
};
export { createMessagePreviewReactRules };