Copy Messages: Fix message sender title extraction (#3368)
This commit is contained in:
parent
10d4e6b9fa
commit
f9a789a2cc
@ -50,7 +50,7 @@ import { getServerTime } from '../../../util/serverTime';
|
||||
|
||||
import versionNotification from '../../../versionNotification.txt';
|
||||
import parseMessageInput from '../../../util/parseMessageInput';
|
||||
import { getMessageSummaryText, getSenderTitle } from '../../helpers';
|
||||
import { getMessageSummaryText, getSenderTitle, isChatChannel } from '../../helpers';
|
||||
import * as langProvider from '../../../util/langProvider';
|
||||
import { copyHtmlToClipboard } from '../../../util/clipboard';
|
||||
import { renderMessageSummaryHtml } from '../../helpers/renderMessageSummaryHtml';
|
||||
@ -814,31 +814,32 @@ function copyTextForMessages(global: GlobalState, chatId: string, messageIds: nu
|
||||
const { type: messageListType, threadId } = selectCurrentMessageList(global) || {};
|
||||
const lang = langProvider.translate;
|
||||
|
||||
const chat = selectChat(global, chatId);
|
||||
|
||||
const chatMessages = messageListType === 'scheduled'
|
||||
? selectChatScheduledMessages(global, chatId)
|
||||
: selectChatMessages(global, chatId);
|
||||
if (!chatMessages || !threadId) return;
|
||||
|
||||
if (!chat || !chatMessages || !threadId) return;
|
||||
|
||||
const messages = messageIds
|
||||
.map((id) => chatMessages[id])
|
||||
.filter((message) => selectAllowedMessageActions(global, message, threadId).canCopy)
|
||||
.sort((message1, message2) => message1.id - message2.id);
|
||||
|
||||
const result = messages.reduce((acc, message) => {
|
||||
const sender = selectSender(global, message);
|
||||
const resultHtml: string[] = [];
|
||||
const resultText: string[] = [];
|
||||
|
||||
acc.push(`> ${sender ? getSenderTitle(lang, sender) : ''}:`);
|
||||
acc.push(`${renderMessageSummaryHtml(lang, message)}\n`);
|
||||
messages.forEach((message) => {
|
||||
const sender = isChatChannel(chat) ? chat : selectSender(global, message);
|
||||
const senderTitle = `> ${sender ? getSenderTitle(lang, sender) : message.forwardInfo?.hiddenUserName || ''}:`;
|
||||
|
||||
return acc;
|
||||
}, [] as string[]);
|
||||
resultHtml.push(senderTitle);
|
||||
resultHtml.push(`${renderMessageSummaryHtml(lang, message)}\n`);
|
||||
|
||||
const resultText = messages.reduce((acc, message) => {
|
||||
const sender = selectSender(global, message);
|
||||
acc.push(`> ${sender ? getSenderTitle(lang, sender) : ''}:`);
|
||||
acc.push(`${getMessageSummaryText(lang, message, false, 0, true)}\n`);
|
||||
resultText.push(senderTitle);
|
||||
resultText.push(`${getMessageSummaryText(lang, message, false, 0, true)}\n`);
|
||||
});
|
||||
|
||||
return acc;
|
||||
}, [] as string[]);
|
||||
|
||||
copyHtmlToClipboard(result.join('\n'), resultText.join('\n'));
|
||||
copyHtmlToClipboard(resultHtml.join('\n'), resultText.join('\n'));
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user