fix(messages): keep spoilers on forwarded link embeds (#3124)

This commit is contained in:
Hampus
2026-10-02 17:25:33 +02:00
committed by GitHub
parent 6f98de33f7
commit 7b40df5d6c
3 changed files with 5 additions and 2 deletions
@@ -445,6 +445,7 @@ export const ForwardedMessageContent = observer(({message, snapshot, onDelete}:
message={message} message={message}
embedIndex={index} embedIndex={index}
contextualEmbeds={snapshot.embeds} contextualEmbeds={snapshot.embeds}
contextualContent={snapshot.content}
onDelete={onDelete} onDelete={onDelete}
isPreview={true} isPreview={true}
data-flx="channel.message-attachments.forwarded-message-content.embed" data-flx="channel.message-attachments.forwarded-message-content.embed"
@@ -70,7 +70,7 @@ function withFreshEmbedUrls(embed: MessageEmbed): MessageEmbed {
} }
export const Embed: FC<EmbedProps> = observer((props: EmbedProps) => { export const Embed: FC<EmbedProps> = observer((props: EmbedProps) => {
const {message, embedIndex, contextualEmbeds, onDelete, isPreview} = props; const {message, embedIndex, contextualEmbeds, contextualContent, onDelete, isPreview} = props;
const embed = withFreshEmbedUrls(props.embed); const embed = withFreshEmbedUrls(props.embed);
const {i18n} = useLingui(); const {i18n} = useLingui();
const {enabled: isMobile} = MobileLayout; const {enabled: isMobile} = MobileLayout;
@@ -120,7 +120,8 @@ export const Embed: FC<EmbedProps> = observer((props: EmbedProps) => {
'data-message-copy-text': copyText, 'data-message-copy-text': copyText,
} as const) } as const)
: {}; : {};
const spoileredUrls = useMemo(() => extractSpoileredUrls(message.content), [message.content]); const spoilerSourceContent = contextualContent ?? message.content;
const spoileredUrls = useMemo(() => extractSpoileredUrls(spoilerSourceContent), [spoilerSourceContent]);
const {isSpoilerEmbed, matchingSpoilerUrls} = useMemo(() => { const {isSpoilerEmbed, matchingSpoilerUrls} = useMemo(() => {
const urlsToCheck = [ const urlsToCheck = [
embed.url, embed.url,
@@ -32,6 +32,7 @@ export interface EmbedProps {
embedIndex?: number; embedIndex?: number;
onDelete?: (bypassConfirm?: boolean) => void; onDelete?: (bypassConfirm?: boolean) => void;
contextualEmbeds?: ReadonlyArray<MessageEmbed>; contextualEmbeds?: ReadonlyArray<MessageEmbed>;
contextualContent?: string;
isPreview?: boolean; isPreview?: boolean;
} }