diff --git a/app/javascript/dashboard/components/widgets/conversation/ReplyBox.vue b/app/javascript/dashboard/components/widgets/conversation/ReplyBox.vue index b28d757ec..6e8c9c34c 100644 --- a/app/javascript/dashboard/components/widgets/conversation/ReplyBox.vue +++ b/app/javascript/dashboard/components/widgets/conversation/ReplyBox.vue @@ -701,18 +701,33 @@ export default { if (this.isSignatureEnabledForInbox && this.messageSignature) { newMessage += '\n\n' + this.messageSignature; } - const messagePayload = this.getMessagePayload(newMessage); - this.clearMessage(); + const isOnWhatsApp = + this.isATwilioWhatsAppChannel || + this.isAWhatsAppCloudChannel || + this.is360DialogWhatsAppChannel; + if (isOnWhatsApp && !this.isPrivate) { + this.sendMessageAsMultipleMessages(newMessage); + } else { + const messagePayload = this.getMessagePayload(newMessage); + this.sendMessage(messagePayload); + } + if (!this.isPrivate) { this.clearEmailField(); } - this.sendMessage(messagePayload); + this.clearMessage(); this.hideEmojiPicker(); this.$emit('update:popoutReplyBox', false); } }, + sendMessageAsMultipleMessages(message) { + const messages = this.getMessagePayloadForWhatsapp(message); + messages.forEach(messagePayload => { + this.sendMessage(messagePayload); + }); + }, async onSendReply() { const undefinedVariables = getUndefinedVariablesInMessage({ message: this.message, @@ -951,6 +966,33 @@ export default { (item, index) => itemIndex !== index ); }, + getMessagePayloadForWhatsapp(message) { + const multipleMessagePayload = []; + const messagePayload = { + conversationId: this.currentChat.id, + message, + private: false, + }; + + multipleMessagePayload.push(messagePayload); + + if (this.attachedFiles && this.attachedFiles.length) { + this.attachedFiles.forEach(attachment => { + const attachedFile = this.globalConfig.directUploadsEnabled + ? attachment.blobSignedId + : attachment.resource.file; + const attachmentPayload = { + conversationId: this.currentChat.id, + files: [attachedFile], + private: false, + message: '', + }; + multipleMessagePayload.push(attachmentPayload); + }); + } + + return multipleMessagePayload; + }, getMessagePayload(message) { const messagePayload = { conversationId: this.currentChat.id,