f88520d925
We overload the copy message method that comes with Converse 11, to add the message metadata (nick and full date).
33 lines
1.2 KiB
TypeScript
33 lines
1.2 KiB
TypeScript
// SPDX-FileCopyrightText: 2024 John Livingston <https://www.john-livingston.fr/>
|
|
//
|
|
// SPDX-License-Identifier: AGPL-3.0-only
|
|
|
|
/**
|
|
* Do some customization on Message actions custom elements:
|
|
* * override the copy text method to add meta data
|
|
*
|
|
* @param plugin The plugin object
|
|
*/
|
|
export function customizeMessageAction (plugin: any): void {
|
|
const _converse = plugin._converse
|
|
const MessageActions = _converse.api.elements.registry['converse-message-actions']
|
|
if (MessageActions) {
|
|
class MessageActionsOverloaded extends MessageActions {
|
|
async onMessageCopyButtonClicked (ev?: Event): Promise<void> {
|
|
ev?.preventDefault?.()
|
|
let txt = ''
|
|
try {
|
|
txt += this.model.getDisplayName() as string
|
|
txt += ' - '
|
|
const date = new Date(this.model.get('edited') || this.model.get('time'))
|
|
txt += date.toLocaleDateString() + ' ' + date.toLocaleTimeString()
|
|
txt += '\n'
|
|
} catch {}
|
|
txt += this.model.getMessageText() as string
|
|
await navigator.clipboard.writeText(txt)
|
|
}
|
|
}
|
|
_converse.api.elements.define('converse-message-actions', MessageActionsOverloaded)
|
|
}
|
|
}
|