From 32fadda86a79c1b114ab5b9954f676424d0af333 Mon Sep 17 00:00:00 2001 From: Adhiraj Singh Date: Mon, 13 Jun 2022 16:22:28 +0530 Subject: [PATCH] feat: add button reply --- src/Types/Message.ts | 9 +++++++++ src/Utils/messages.ts | 17 +++++++++++++++++ 2 files changed, 26 insertions(+) diff --git a/src/Types/Message.ts b/src/Types/Message.ts index 1a53d44..d8a2b20 100644 --- a/src/Types/Message.ts +++ b/src/Types/Message.ts @@ -100,6 +100,12 @@ export type AnyMediaMessageContent = ( } & Buttonable & Templatable)) & { mimetype?: string } +export type ButtonReplyInfo = { + displayText: string + id: string + index: number +} + export type AnyRegularMessageContent = ( ({ text: string @@ -117,6 +123,9 @@ export type AnyRegularMessageContent = ( location: WALocationMessage } | { react: proto.IReactionMessage + } | { + buttonReply: ButtonReplyInfo + type: 'template' | 'plain' } ) & ViewOnce diff --git a/src/Utils/messages.ts b/src/Utils/messages.ts index 7c75998..a1dd9c3 100644 --- a/src/Utils/messages.ts +++ b/src/Utils/messages.ts @@ -307,6 +307,23 @@ export const generateWAMessageContent = async( (message.disappearingMessagesInChat ? WA_DEFAULT_EPHEMERAL : 0) : message.disappearingMessagesInChat m = prepareDisappearingMessageSettingContent(exp) + } else if('buttonReply' in message) { + switch (message.type) { + case 'template': + m.templateButtonReplyMessage = { + selectedDisplayText: message.buttonReply.displayText, + selectedId: message.buttonReply.id, + selectedIndex: message.buttonReply.index, + } + break + case 'plain': + m.buttonsResponseMessage = { + selectedButtonId: message.buttonReply.id, + selectedDisplayText: message.buttonReply.displayText, + type: proto.ButtonsResponseMessage.ButtonsResponseMessageType.DISPLAY_TEXT, + } + break + } } else { m = await prepareWAMessageMedia( message,