diff options
Diffstat (limited to 'src/MenuChatMessage.ts')
-rw-r--r-- | src/MenuChatMessage.ts | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/src/MenuChatMessage.ts b/src/MenuChatMessage.ts new file mode 100644 index 00000000..1f72ea4a --- /dev/null +++ b/src/MenuChatMessage.ts @@ -0,0 +1,22 @@ +import { IContact } from './Contact.interface'; +import Menu from './Menu'; +import MenuItemStaticFactory from './MenuItemStaticFactory'; +import { IMessage } from './Message.interface'; + +function quoteMessage(contact: IContact, message: IMessage) { + const chatWindow = contact.getChatWindow(); + const inputText = chatWindow.getInput(); + const quote = message + .getPlaintextMessage() + .split('\n') + .map(line => '> ' + line) + .join('\n'); + + chatWindow.setInput(inputText + (!inputText || inputText.endsWith('\n\n') ? '' : '\n\n') + quote + '\n\n'); +} + +export default class MenuChatMessage extends Menu<[IContact, IMessage]> { + constructor() { + super([new MenuItemStaticFactory('core-quote', '', quoteMessage, 'quotation')]); + } +} |