signal-desktop/ts/util/getQuoteBodyText.ts
2024-11-12 17:00:46 -05:00

30 lines
942 B
TypeScript

// Copyright 2023 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import type { ReadonlyMessageAttributesType } from '../model-types.d';
import * as EmbeddedContact from '../types/EmbeddedContact';
export function getQuoteBodyText(
messageAttributes: ReadonlyMessageAttributesType,
id: number | null
): string | undefined {
const storyReactionEmoji = messageAttributes.storyReaction?.emoji;
if (id != null) {
const { editHistory } = messageAttributes;
const editedMessage =
editHistory && editHistory.find(edit => edit.timestamp === id);
if (editedMessage && editedMessage.body) {
return editedMessage.body;
}
}
const { body, contact: embeddedContact } = messageAttributes;
const embeddedContactName =
embeddedContact && embeddedContact.length > 0
? EmbeddedContact.getName(embeddedContact[0])
: '';
return body || embeddedContactName || storyReactionEmoji;
}