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