diff --git a/src/chat/functions/deleteMessage.ts b/src/chat/functions/deleteMessage.ts index 378424852f..a1006e8d6f 100644 --- a/src/chat/functions/deleteMessage.ts +++ b/src/chat/functions/deleteMessage.ts @@ -14,6 +14,8 @@ * limitations under the License. */ +import { compare } from 'compare-versions'; + import { assertGetChat } from '../../assert'; import { Cmd, Wid } from '../../whatsapp'; import { MSG_TYPE, SendMsgResult } from '../../whatsapp/enums'; @@ -83,7 +85,7 @@ export async function deleteMessage( let sendMsgResult: SendMsgResult = SendMsgResult.ERROR_UNKNOWN; let isRevoked = false; let isDeleted = false; - const isSentByMe = msg.isSentByMe; + const isSentByMe = msg.senderObj.isMe; if (msg.type === MSG_TYPE.REVOKED && revoke) { // Message is already revoked @@ -94,7 +96,18 @@ export async function deleteMessage( (msg as any).__x_isUserCreatedType = true; } - Cmd.sendRevokeMsgs(chat, [msg], { clearMedia: deleteMediaInDevice }); + if (compare(self.Debug.VERSION, '2.3000.0', '>=')) { + Cmd.sendRevokeMsgs( + chat, + { + type: 'message', + list: [msg], + }, + { clearMedia: deleteMediaInDevice } + ); + } else { + Cmd.sendRevokeMsgs(chat, [msg], { clearMedia: deleteMediaInDevice }); + } if (chat.promises.sendRevokeMsgs) { const result = await chat.promises.sendRevokeMsgs; @@ -102,9 +115,20 @@ export async function deleteMessage( sendMsgResult = result[0]; } } - isRevoked = msg.isRevokedByMe; + isRevoked = msg.type == 'revoked'; } else { - Cmd.sendDeleteMsgs(chat, [msg], deleteMediaInDevice); + if (compare(self.Debug.VERSION, '2.3000.0', '>=')) { + Cmd.sendDeleteMsgs( + chat, + { + type: 'message', + list: [msg], + }, + { clearMedia: deleteMediaInDevice } + ); + } else { + Cmd.sendDeleteMsgs(chat, [msg], { clearMedia: deleteMediaInDevice }); + } if (chat.promises.sendDeleteMsgs) { const result = await chat.promises.sendDeleteMsgs; diff --git a/src/whatsapp/misc/Cmd.ts b/src/whatsapp/misc/Cmd.ts index 5db3062067..0ca5cb8038 100644 --- a/src/whatsapp/misc/Cmd.ts +++ b/src/whatsapp/misc/Cmd.ts @@ -68,13 +68,25 @@ export declare class CmdClass extends EventEmitter { ): void; sendDeleteMsgs( chat: ChatModel, - msgs: MsgModel[], - clearMedia?: boolean, - toastPosition?: any + msg: + | { + type: string; + list: MsgModel[]; + } + | MsgModel[], + options?: { + clearMedia?: boolean; + toastPosition?: any; + } ): void; sendRevokeMsgs( chat: ChatModel, - msgs: MsgModel[], + msg: + | { + type: string; + list: MsgModel[]; + } + | MsgModel[], options?: { clearMedia?: boolean; toastPosition?: any;