Files
discord-decomp/modules/icymi/native/ICYMIMessageRowPreview.tsx
T
2026-11-01 12:12:55 +02:00

158 lines
6.0 KiB
TypeScript

// Metro module 15366 (f15367).
import * as Module19 from "react";
import { useMemo } from "react";
import { MessageEmbedTypes } from "../../../Constants";
import { isMediaAttachment } from "../../forums/ForumPostMediaUtils";
import { ChannelListLayoutTypes } from "../../main_tabs_v2/ChannelListLayoutTypes";
import { DEFAULT_OPTIONS } from "../../messages/native/renderer/RenderMessageOptionsContext";
import isForwardMessage from "../../forwarding/isForwardMessage";
import useTheme from "../../../hooks/useTheme";
import { createNativeStyleProperties } from "../../../design/components/Styles/native/createStyles";
import Module712 from "../../../_bundle/Module712";
import { RenderEmbeds, InlineEmbedMedia, InlineAttachmentMedia } from "../../user_settings/UserSettings";
import RowGenerator from "../../messages/native/renderer/RowGenerator";
import ChatItem from "../../../components_native/chat/ChatItem";
import { MessageContextType } from "../../messages/native/renderer/RowGeneratorTypes";
import { intl, t } from "../../../intl/index.native";
const ICYMIMessageRowPreview = function ICYMIMessageRowPreview(props) {
const { message: message4, lineClamp, messageSizeCacheRef, messageOptions, maxHeight, pointerEvents = "none" } = props;
const theme = useTheme();
let c21911_2 = createNativeStyleProperties({
seeMoreLabelColor: Module712.colors.TEXT_DEFAULT
})(theme);
const setting = RenderEmbeds.getSetting();
const setting2 = InlineEmbedMedia.getSetting();
const setting3 = InlineAttachmentMedia.getSetting();
return <ChatItem pointerEvents={pointerEvents} horizontalOffset={0} modifyRow={function modifyRow(a0) {
a0.contextType = MessageContextType.SEARCH;
if (lineClamp != null) {
a0.truncation = {
numberOfLines: lineClamp,
expandable: false,
seeMoreLabel: intl.string(t.qCozu3),
seeMoreLabelColor: c21911_2.seeMoreLabelColor
};
}
}} message={message4} rowGenerator={useMemo(() => {
const rowGenerator = new RowGenerator();
rowGenerator.setOptions({
renderEmbeds: setting,
inlineEmbedMedia: setting2,
inlineAttachmentMedia: setting3,
renderReactions: false,
animateEmoji: false,
gifAutoPlay: false,
renderReplies: false,
renderCodedLinks: false,
renderGiftCode: false,
renderActivityInviteEmbed: false,
renderThreadEmbeds: false,
renderForumPostActions: false,
ignoreMentioned: true,
enableSwipeActions: false,
renderExecutedCommands: false,
useAlternateEmbedColors: true,
...messageOptions
});
return rowGenerator;
}, [setting, setting2, setting3, messageOptions])} messageSizeCacheRef={messageSizeCacheRef} maxHeight={maxHeight} />;
};
const r24 = Module19.memo(function({ message, messageOptions: messageOptions2, ...rest }) {
let c21912_1 = rest;
const memo = useMemo(() => {
const r5 = message.set("content", null);
const r13 = r5.set("embeds", r5.embeds.filter(({ type }) => type === MessageEmbedTypes.IMAGE || type === MessageEmbedTypes.GIFV));
return r13.set("attachments", r13.attachments.filter((attachment) => isMediaAttachment(attachment))).set("editedTimestamp", null);
}, [message]);
return <ICYMIMessageRowPreview {...useMemo(() => {
let muted = c21912_1.muted;
if (muted == null) {
muted = false;
}
return {
message: memo,
layout: ChannelListLayoutTypes.COZY,
muted,
lineClamp: c21912_1.lineClamp
};
}, [memo, rest.muted, rest.lineClamp])} messageOptions={{
...DEFAULT_OPTIONS,
ignoreMentioned: true,
renderReplies: false,
renderThreadEmbeds: false,
renderReactions: false,
renderEmbeds: true,
gifAutoPlay: true,
animateEmoji: true,
renderPolls: true,
inlineEmbedMedia: true,
renderForumPostActions: false,
renderAttachments: true,
...messageOptions2
}} />;
});
const r27 = Module19.memo(function({ message: message2, messageOptions: messageOptions2, ...rest }) {
let c21913_1 = rest;
const memo2 = useMemo(() => {
const r7 = message2.set("content", null);
const r17 = r7.set("embeds", r7.embeds.filter(({ type }) => !(type === MessageEmbedTypes.IMAGE || type === MessageEmbedTypes.GIFV)).slice(0, 1));
return r17.set("attachments", r17.attachments.filter((attachment) => !isMediaAttachment(attachment)).slice(0, 1)).set("editedTimestamp", null);
}, [message2]);
return <ICYMIMessageRowPreview {...useMemo(() => {
let muted = c21913_1.muted;
if (muted == null) {
muted = false;
}
return {
message: memo2,
layout: ChannelListLayoutTypes.COZY,
muted,
lineClamp: c21913_1.lineClamp
};
}, [memo2, rest.muted, rest.lineClamp])} messageOptions={{
...DEFAULT_OPTIONS,
ignoreMentioned: true,
renderReplies: false,
renderThreadEmbeds: false,
renderReactions: false,
renderEmbeds: true,
renderAttachments: true,
...messageOptions2
}} />;
});
const r30 = Module19.memo(function({ message: message3, messageOptions: messageOptions2, ...rest }) {
let c21914_1 = rest;
const memo3 = useMemo(() => {
let muted = c21914_1.muted;
if (muted == null) {
muted = false;
}
return {
message: message3,
lineClamp: c21914_1.lineClamp,
layout: ChannelListLayoutTypes.COZY,
muted,
pointerEvents: c21914_1.pointerEvents
};
}, [message3, rest.lineClamp, rest.muted, rest.pointerEvents]);
const isForwardMessage2 = isForwardMessage(message3);
return <ICYMIMessageRowPreview {...memo3} messageOptions={{
...DEFAULT_OPTIONS,
ignoreMentioned: true,
renderReplies: false,
renderThreadEmbeds: false,
renderReactions: false,
gifAutoPlay: true,
animateEmoji: true,
renderPolls: true,
renderForumPostActions: false,
renderAttachments: isForwardMessage2,
renderEmbeds: isForwardMessage2,
inlineEmbedMedia: isForwardMessage2,
...messageOptions2
}} seeMoreLabel="..." />;
});
export { r24 as MediaOnlyRowPreview };
export { r27 as NonMediaEmbedsRowPreview };
export { r30 as MessageRowPreview };