Files
discord-decomp/sources/modules/markup/native/MarkupMessagePreviewReactRules.tsx
2026-07-28 01:06:53 +03:00

350 lines
19 KiB
TypeScript

/* Metro module 10979; source: modules/markup/native/MarkupMessagePreviewReactRules.tsx; dependencies: [31, 10980, 33, 4600, 8778, 10981, 6817, 4598, 10986, 10987, 5475, 478, 10988, 10989, 1305, 4020, 9786, 6660, 10990, 2] */
import HighlightText from '../../search/native/components/HighlightText.tsx'; /* Metro dependency 10987 */
import Spoiler from './Spoiler.tsx'; /* Metro dependency 10988 */
import TimestampNative from '../Timestamp.native.tsx'; /* Metro dependency 10990 */
import * as FileImportTrackerModule from '../../../by-id/module-00002-FileImportTracker.js'; /* Metro dependency 2 */
import * as ReactModule from '../../../by-id/module-00031-React.js'; /* Metro dependency 31 */
import * as JsxRuntimeModule from '../../../by-id/module-00033-JsxRuntime.js'; /* Metro dependency 33 */
import * as NativeModule from '../../../design/void/native.tsx'; /* Metro dependency 1305 */
import * as MarkupTypesModule from '../MarkupTypes.tsx'; /* Metro dependency 4598 */
import * as HighlightJsAnsiLanguageModule from '../../../utils/HighlightJsAnsiLanguage.tsx'; /* Metro dependency 4600 */
import * as IconSizeModule from '../../../design/components/Icon/IconSize.tsx'; /* Metro dependency 6817 */
import * as MarkupRulesUtilsModule from '../MarkupRulesUtils.tsx'; /* Metro dependency 8778 */
import * as RedesignChannelListConstantsModule from '../../channel_list_v2/native/RedesignChannelListConstants.tsx'; /* Metro dependency 10980 */
import * as ChannelListLayoutModule from '../../main_tabs_v2/native/shared_components/guild_channels/layouts/ChannelListLayout.tsx'; /* Metro dependency 10981 */
import * as MarkupTypesDefaultRulesModule from '../MarkupTypesDefaultRules.tsx'; /* Metro dependency 10986 */
function _fun84050(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#84050, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:11165:6, offset: 0x01f35f6b, size: 249 bytes, params: 8, frame: 20
const env0_0 = require;
const createMessagePreviewReactRules2 = createMessagePreviewReactRules;
const Object = global.Object;
Object.defineProperty(exports, '__esModule', {value: true});
ReactModule;
const RegExp = global.RegExp;
const ANSI_CONTROL_SEQUENCE_RE = (HighlightJsAnsiLanguageModule).ANSI_CONTROL_SEQUENCE_RE;
const regExp = new RegExp(ANSI_CONTROL_SEQUENCE_RE, 'g');
(FileImportTrackerModule).fileFinishedImporting('modules/markup/native/MarkupMessagePreviewReactRules.tsx');
exports.default = createChannelListMessagePreviewReactRules;
exports.createMessagePreviewReactRules = createMessagePreviewReactRules2;
function defaultReactFn(a0, a1, a2) { // fn#84051, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:11165:214, offset: 0x01f36064, size: 72 bytes, params: 4, frame: 15
var r0;
var value;
if (typeof a0.content === 'string') {
r0 = a0.content;
} else {
value = require(8778) /* metro dependency 8778: MarkupRulesUtils */;
value = value.smartOutput(a0, a1, a2);
r0 = value;
}
return r0;
}
function createMessagePreviewReactRules({iconColor, iconSize, channelIconSize, customEmojiSize}) { // fn#84052, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:11165:315, offset: 0x01f360ac, size: 2178 bytes, params: 2, frame: 29
var r19;
var r6;
if (customEmojiSize !== undefined) {
}
const object = {};
const AST_KEY = require(dependencyMap[7]).AST_KEY;
const TEXT = AST_KEY.TEXT;
let defaultReactFnBinding = defaultReactFn;
object[TEXT] = {react: defaultReactFnBinding};
const STRIKETHROUGH = AST_KEY.STRIKETHROUGH;
const object3 = {};
const DEFAULT_RULES = require(dependencyMap[8]).DEFAULT_RULES;
const STRIKETHROUGH2 = AST_KEY.STRIKETHROUGH;
copyDataProperties(object3, DEFAULT_RULES[STRIKETHROUGH2], r19);
object3['react'] = defaultReactFnBinding;
object[STRIKETHROUGH] = object3;
const UNDERLINE = AST_KEY.UNDERLINE;
const object4 = {};
const UNDERLINE2 = AST_KEY.UNDERLINE;
copyDataProperties(object4, DEFAULT_RULES[UNDERLINE2], r19);
object4['react'] = defaultReactFnBinding;
object[UNDERLINE] = object4;
const ITALICS = AST_KEY.ITALICS;
const object5 = {};
const ITALICS2 = AST_KEY.ITALICS;
copyDataProperties(object5, DEFAULT_RULES[ITALICS2], r19);
object5['react'] = defaultReactFnBinding;
object[ITALICS] = object5;
const STRONG = AST_KEY.STRONG;
const object6 = {};
const STRONG2 = AST_KEY.STRONG;
copyDataProperties(object6, DEFAULT_RULES[STRONG2], r19);
object6['react'] = defaultReactFnBinding;
object[STRONG] = object6;
const LINK = AST_KEY.LINK;
const object7 = {};
const LINK2 = AST_KEY.LINK;
copyDataProperties(object7, DEFAULT_RULES[LINK2], r19);
object7['react'] = defaultReactFnBinding;
object[LINK] = object7;
const URL = AST_KEY.URL;
const object8 = {};
const URL2 = AST_KEY.URL;
copyDataProperties(object8, DEFAULT_RULES[URL2], r19);
object8['react'] = defaultReactFnBinding;
object[URL] = object8;
const AUTOLINK = AST_KEY.AUTOLINK;
const object9 = {};
const AUTOLINK2 = AST_KEY.AUTOLINK;
copyDataProperties(object9, DEFAULT_RULES[AUTOLINK2], r19);
object9['react'] = defaultReactFnBinding;
object[AUTOLINK] = object9;
const LINE_BREAK = AST_KEY.LINE_BREAK;
const object10 = {};
const LINE_BREAK2 = AST_KEY.LINE_BREAK;
copyDataProperties(object10, DEFAULT_RULES[LINE_BREAK2], r19);
object10['react'] = function() {
return '\n';
};
object[LINE_BREAK] = object10;
const HIGHLIGHT = AST_KEY.HIGHLIGHT;
object[HIGHLIGHT] = {react: react_84054};
const BLOCK_QUOTE = AST_KEY.BLOCK_QUOTE;
const object12 = {};
const BLOCK_QUOTE2 = AST_KEY.BLOCK_QUOTE;
copyDataProperties(object12, DEFAULT_RULES[BLOCK_QUOTE2], r19);
object12['react'] = defaultReactFnBinding;
object[BLOCK_QUOTE] = object12;
const PARAGRAPH = AST_KEY.PARAGRAPH;
const object13 = {};
const PARAGRAPH2 = AST_KEY.PARAGRAPH;
copyDataProperties(object13, DEFAULT_RULES[PARAGRAPH2], r19);
object13['order'] = 600;
object13['react'] = defaultReactFnBinding;
object[PARAGRAPH] = object13;
const EMOJI = AST_KEY.EMOJI;
object[EMOJI] = {react: function(a0) {
return a0.surrogate || a0.content;
}};
const CUSTOM_EMOJI = AST_KEY.CUSTOM_EMOJI;
object[CUSTOM_EMOJI] = {react: react_84056};
const SPOILER = AST_KEY.SPOILER;
object[SPOILER] = {react: react_84057};
const STATIC_ROUTE_LINK = AST_KEY.STATIC_ROUTE_LINK;
object[STATIC_ROUTE_LINK] = {react: react_84058};
const INLINE_CODE = AST_KEY.INLINE_CODE;
const object18 = {};
const INLINE_CODE2 = AST_KEY.INLINE_CODE;
copyDataProperties(object18, DEFAULT_RULES[INLINE_CODE2], r19);
object18['react'] = defaultReactFnBinding;
object[INLINE_CODE] = object18;
const CODE_BLOCK = AST_KEY.CODE_BLOCK;
const object19 = {};
const CODE_BLOCK2 = AST_KEY.CODE_BLOCK;
copyDataProperties(object19, DEFAULT_RULES[CODE_BLOCK2], r19);
object19['parse'] = createMessagePreviewReactRulesParse;
object19['react'] = defaultReactFnBinding;
object[CODE_BLOCK] = object19;
const MENTION = AST_KEY.MENTION;
const object20 = {};
const MENTION2 = AST_KEY.MENTION;
copyDataProperties(object20, DEFAULT_RULES[MENTION2], r19);
object20['react'] = defaultReactFnBinding;
object[MENTION] = object20;
const CHANNEL_MENTION = AST_KEY.CHANNEL_MENTION;
const object21 = {};
const CHANNEL_MENTION2 = AST_KEY.CHANNEL_MENTION;
copyDataProperties(object21, DEFAULT_RULES[CHANNEL_MENTION2], r19);
object21['react'] = require(dependencyMap[13]).inlineChannelMentionReact;
object[CHANNEL_MENTION] = object21;
const ATTACHMENT_LINK = AST_KEY.ATTACHMENT_LINK;
const object22 = {};
const ATTACHMENT_LINK2 = AST_KEY.ATTACHMENT_LINK;
copyDataProperties(object22, DEFAULT_RULES[ATTACHMENT_LINK2], r19);
object22['react'] = createMessagePreviewReactRulesReact_84060;
object[ATTACHMENT_LINK] = object22;
const SOUNDBOARD = AST_KEY.SOUNDBOARD;
const object23 = {};
const SOUNDBOARD2 = AST_KEY.SOUNDBOARD;
copyDataProperties(object23, DEFAULT_RULES[SOUNDBOARD2], r19);
object23['react'] = defaultReactFnBinding;
object[SOUNDBOARD] = object23;
const GUILD = AST_KEY.GUILD;
object[GUILD] = {react: defaultReactFnBinding};
const CHANNEL = AST_KEY.CHANNEL;
const moduleValue = require(dependencyMap[13]);
const createInlineChannelReact = moduleValue.createInlineChannelReact;
if (require(dependencyMap[15]).isFabric()) {
r6 = '💬';
} else {
const ThemedIcon = require(dependencyMap[14]).ThemedIcon;
r6 = (
<ThemedIcon
source={importDefault(dependencyMap[17])}
size={channelIconSize}
themedColor={iconColor}
/>
);
r19 = dependencyMap;
}
object[CHANNEL] = {react: Reflect.apply(createInlineChannelReact, moduleValue, [r6])};
const COMMAND_MENTION = AST_KEY.COMMAND_MENTION;
const object27 = {};
const COMMAND_MENTION2 = AST_KEY.COMMAND_MENTION;
copyDataProperties(object27, DEFAULT_RULES[COMMAND_MENTION2], r19);
object27['react'] = createMessagePreviewReactRulesReact_84061;
object[COMMAND_MENTION] = object27;
const TIMESTAMP = AST_KEY.TIMESTAMP;
const object28 = {};
const TIMESTAMP2 = AST_KEY.TIMESTAMP;
copyDataProperties(object28, DEFAULT_RULES[TIMESTAMP2], r19);
object28['react'] = createMessagePreviewReactRulesReact_84062;
object[TIMESTAMP] = object28;
const LIST = AST_KEY.LIST;
const object29 = {};
const LIST2 = AST_KEY.LIST;
copyDataProperties(object29, DEFAULT_RULES[LIST2], r19);
object29['react'] = createMessagePreviewReactRulesReact_84063;
object[LIST] = object29;
const HEADING = AST_KEY.HEADING;
defaultReactFnBinding = defaultReactFn;
object[HEADING] = {react: defaultReactFnBinding};
const SUBTEXT = AST_KEY.SUBTEXT;
object[SUBTEXT] = {react: defaultReactFnBinding};
return object;
function createMessagePreviewReactRulesReact_84054(a0, a1, a2) { // fn#84054, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:11165:1302, owner: createMessagePreviewReactRules.react, offset: 0x01f3692e, size: 87 bytes, params: 4, frame: 19
const value = environment.__proto__;
return ((Component) => <Component key={a2.key}>{(MarkupRulesUtilsModule).smartOutput(a0,
a1, a2)}</Component>)(HighlightText);
}
function createMessagePreviewReactRulesReact_84056(a0, a1, a2) { // fn#84056, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:11165:1677, owner: createMessagePreviewReactRules.react, offset: 0x01f36998, size: 226 bytes, params: 4, frame: 22
var r7;
var value;
var sizeStyle;
var FastImage;
var items2;
if (a0.src) {
value = environment.__proto__;
sizeStyle = (require(10981) /* metro dependency 10981: ChannelListLayout */).makeSizeStyle(customEmojiSize);
FastImage = importDefault(5475) /* metro dependency 5475: FastImage */;
items2 = [sizeStyle];
items2[1] = {resizeMode: 'contain'};
r7 = (require(478) /* metro dependency 478: PlatformUtils */).isAndroid() && ({transform: [{translateY: 3}]});
items2[2] = r7;
r7 = a2.muted && ({opacity: MUTED_OPACITY_CONTENT});
items2[3] = r7;
return (
<FastImage
style={items2}
source={{uri: a0.src}}
key={a2.key}
/>
);
}
return a0.alt;
}
function createMessagePreviewReactRulesReact_84057(a0, a1, a2) { // fn#84057, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:11165:1930, owner: createMessagePreviewReactRules.react, offset: 0x01f36a7a, size: 105 bytes, params: 4, frame: 19
const value = environment.__proto__;
return ((Component) => <Component disableReveal muted={a2.muted} key={a2.key}>{(MarkupRulesUtilsModule).smartOutput(a0,
a1, a2)}</Component>)(Spoiler);
}
function createMessagePreviewReactRulesReact_84058(a0, a1, a2) { // fn#84058, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:11165:2070, owner: createMessagePreviewReactRules.react, offset: 0x01f36ae3, size: 87 bytes, params: 4, frame: 17
var r0;
let value = environment.__proto__;
if (MarkupRulesUtilsModule.isStaticRouteIconType(a0.channelId)) {
value = MarkupRulesUtilsModule;
value = value.smartOutput(a0, a1, a2);
r0 = value;
} else {
r0 = null;
}
return r0;
}
function createMessagePreviewReactRulesParse(a0, a1, a2) { // fn#84059, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:11165:2345, owner: createMessagePreviewReactRules.parse, offset: 0x01f36b3a, size: 140 bytes, params: 4, frame: 16
const DEFAULT_RULES = (MarkupTypesDefaultRulesModule).DEFAULT_RULES;
const AST_KEY = (MarkupTypesModule).AST_KEY;
const CODE_BLOCK = AST_KEY.CODE_BLOCK;
const value2 = DEFAULT_RULES[CODE_BLOCK].parse(a0, a1, a2);
if (value2.lang.toLowerCase() === 'ansi') {
value2.content = value2.content.replaceAll(env1_6, '');
}
return value2;
}
function createMessagePreviewReactRulesReact_84060(a0, a1, a2) { // fn#84060, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:11165:2861, owner: createMessagePreviewReactRules.react, offset: 0x01f36bc6, size: 197 bytes, params: 4, frame: 22
let value = environment.__proto__;
const LegacyText = (NativeModule).LegacyText;
const items2 = [
(require(4020) /* metro dependency 4020: FabricUtils */).isFabric()
? '📎 '
: ((AttachmentIcon) => <AttachmentIcon color={iconColor} size={iconSize} />)((require(9786) /* metro dependency 9786: AttachmentIcon */).AttachmentIcon),
];
value = require(8778) /* metro dependency 8778: MarkupRulesUtils */;
items2[1] = value.smartOutput(a0, a1, a2);
return (
<LegacyText key={a2.key}>
{items2}
</LegacyText>
);
}
function createMessagePreviewReactRulesReact_84061(a0, a1, a2) { // fn#84061, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:11165:3421, owner: createMessagePreviewReactRules.react, offset: 0x01f36c8b, size: 103 bytes, params: 4, frame: 19
let value = environment.__proto__;
const LegacyText = (NativeModule).LegacyText;
value = require(8778) /* metro dependency 8778: MarkupRulesUtils */;
value = value.smartOutput(a0, a1, a2);
return (
<LegacyText key={a2.key}>
{'/'}
{value}
</LegacyText>
);
}
function createMessagePreviewReactRulesReact_84062(a0, a1, a2) { // fn#84062, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:11165:3591, owner: createMessagePreviewReactRules.react, offset: 0x01f36cf2, size: 62 bytes, params: 4, frame: 15
const value = environment.__proto__;
return ((Component) => <Component node={a0} style={null} key={a2.key} />)(TimestampNative);
}
function createMessagePreviewReactRulesReact_84063({items}, a1, a2) { // fn#84063, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:11165:3710, owner: createMessagePreviewReactRules.react, offset: 0x01f36d30, size: 98 bytes, params: 4, frame: 16
var r0;
const property = items[0];
const Array = global.Array;
const r5 = Array.isArray(property) ? property[0] : property;
let value = null;
if (value == r5) {
r0 = value;
} else {
value = environment.__proto__;
value = require(8778) /* metro dependency 8778: MarkupRulesUtils */;
value = value.smartOutput(r5, a1, a2);
r0 = value;
}
return r0;
}
}
function createChannelListMessagePreviewReactRules(a0, a1, a2, a3) { // fn#84064, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:11165:4015, offset: 0x01f36d92, size: 191 bytes, params: 5, frame: 18
var r4;
let value = a2;
const layoutStyles = (ChannelListLayoutModule).getLayoutStyles(a0);
if (a3 == null) {
r4 = value;
} else {
value = global.Math.min(value, a3);
r4 = value;
}
const createMessagePreviewReactRulesBinding = createMessagePreviewReactRules;
const object = {iconColor: a1};
object.iconSize = layoutStyles.messagePreview.messageTypeIconSizeNew;
object.channelIconSize = layoutStyles.messagePreview.messageTypeIconSize;
const ICON_SIZE = (IconSizeModule).ICON_SIZE;
object.customEmojiSize = (ICON_SIZE[layoutStyles.messagePreview.messageTypeIconSizeNew] ?? 0) * r4;
return createMessagePreviewReactRulesBinding(object);
}
}
global.__d(_fun84050, 10979, [31, 10980, 33, 4600, 8778, 10981, 6817, 4598, 10986, 10987, 5475, 478, 10988, 10989,
1305, 4020, 9786, 6660, 10990,
2]) /* metro module 10979, dependencies: [31, 10980, 33, 4600, 8778, 10981, 6817, 4598, 10986, 10987, 5475, 478, 10988, 10989, 1305, 4020, 9786, 6660, 10990, 2] */;