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

101 lines
3.8 KiB
TypeScript

// Metro module 15705 (f15706).
import { memo, useEffect } from "react";
import { View } from "react-native";
import RelationshipStore from "../../../stores/RelationshipStore";
import { AnalyticEvents, MessageFlags, Fonts } from "../../../Constants";
import { createStyles } from "../../../design/components/Styles/native/createStyles";
import TextStyles from "../../rebrand/native/TextStyles";
import Module712 from "../../../_bundle/Module712";
import { useMessageRequestPreview } from "../hooks/useMessageRequestPreview";
import { useStateFromStoresObject } from "../../../_bundle/Module589";
import AnalyticsUtils from "../../../utils/AnalyticsUtils";
import { intl, t } from "../../../intl/index.native";
import renderMessageMarkup from "../../messages/renderMessageMarkup";
import { getMessageStickers } from "../../stickers/StickersUtils";
import { LegacyText } from "../../../design/void/native";
const useStyles = createStyles({
systemContent: {
fontStyle: "italic",
...TextStyles(Fonts.PRIMARY_MEDIUM, Module712.colors.TEXT_DEFAULT, 12),
lineHeight: 16
},
messageContent: {
...TextStyles(Fonts.PRIMARY_MEDIUM, Module712.colors.TEXT_DEFAULT, 12),
lineHeight: 16
}
});
const r60 = memo(function MessageRequestPreview(props) {
let r2, r37, style, styles;
let channel, message;
L32: {
channel = props.channel;
style = props.style;
message = void 0;
styles = useStyles();
const messageRequestPreview = useMessageRequestPreview(channel);
const { loaded, error } = messageRequestPreview;
message = messageRequestPreview.message;
const stateFromStoresObject = useStateFromStoresObject([RelationshipStore], () => ({
isBlocked: message != null && RelationshipStore.isBlockedForMessage(message),
isIgnored: message != null && RelationshipStore.isIgnoredForMessage(message)
}), [message]);
const { isBlocked, isIgnored } = stateFromStoresObject;
useEffect(() => {
if (message != null) {
AnalyticsUtils.track(AnalyticEvents.MESSAGE_REQUEST_PREVIEW_VIEWED, {
is_spam: channel.isSpam,
channel_id: channel.id,
other_user_id: message.author.id
});
}
}, [channel, message]);
if (error) {
r37 = intl.string(t.BZHld2);
r2 = false;
} else {
r37 = null;
r2 = false;
if (loaded) {
if (message != null && isBlocked) {
r37 = intl.string(t["WPe+xL"]);
r2 = false;
break L32;
}
if (message != null && isIgnored) {
r37 = intl.string(t.uxrh1O);
r2 = false;
break L32;
}
if (message?.content != null && message.content !== "") {
const content = renderMessageMarkup(message, {
noStyleAndInteraction: true,
allowGameMentions: true
}).content;
if (!(Array.isArray(content) && content.length === 0)) {
const r108 = content == null;
r2 = true;
r37 = content;
if (!r108) {
break L32;
}
}
r37 = intl.string(t["262oPB"]);
r2 = false;
break L32;
}
if (message != null) {
r37 = getMessageStickers(message).length > 0 ? intl.string(t["zuI+by"]) : message.interaction != null ? intl.string(t["2v7kfl"]) : message.hasFlag(MessageFlags.IS_VOICE_MESSAGE) ? intl.string(t["6bhHrc"]) : message.hasFlag(MessageFlags.IS_COMPONENTS_V2) ? intl.string(t.Xxm5i3) : intl.string(t.LoMGlg);
r2 = false;
} else {
r37 = intl.string(t["0KfDxM"]);
r2 = false;
}
}
}
}
return <View style={style}>
<LegacyText style={r2 ? styles.messageContent : styles.systemContent} numberOfLines={3} ellipsizeMode="tail">{r37}</LegacyText>
</View>;
});
export default r60;