Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
46 changes: 18 additions & 28 deletions src/Client.js
Original file line number Diff line number Diff line change
Expand Up @@ -664,46 +664,35 @@ class Client extends EventEmitter {
},
);

let last_message;

await exposeFunctionIfAbsent(
this.pupPage,
'onChangeMessageTypeEvent',
(msg) => {
if (msg.type === 'revoked') {
const message = new Message(this, msg);
let revoked_msg;
if (last_message && msg.id.id === last_message.id.id) {
revoked_msg = new Message(this, last_message);

if (message.protocolMessageKey)
revoked_msg.id = { ...message.protocolMessageKey };
}
const originalKey = msg.protocolMessageKey;
const message = new Message(this, { ...msg, id: originalKey });
const revoked_msg = originalKey
? new Message(this, { id: originalKey })
: undefined;

/**
* Emitted when a message is deleted for everyone in the chat.
* @event Client#message_revoke_everyone
* @param {Message} message The message that was revoked, in its current state. It will not contain the original message's data.
* @param {?Message} revoked_msg The message that was revoked, before it was revoked. It will contain the message's original data.
* Note that due to the way this data is captured, it may be possible that this param will be undefined.
*/
this.emit(
Events.MESSAGE_REVOKED_EVERYONE,
message,
revoked_msg,
);
}
/**
* Emitted when a message is deleted for everyone in the chat.
* @event Client#message_revoke_everyone
* @param {Message} message The message that was revoked, in its current state. It will not contain the original message's data.
* @param {?Message} revoked_msg The message that was revoked, before it was revoked. It will contain the message's original data.
* Note that due to the way this data is captured, it may be possible that this param will be undefined.
*/
this.emit(
Events.MESSAGE_REVOKED_EVERYONE,
message,
revoked_msg,
);
},
);

await exposeFunctionIfAbsent(
this.pupPage,
'onChangeMessageEvent',
(msg) => {
if (msg.type !== 'revoked') {
last_message = msg;
}

/**
* The event notification that is received when one of
* the group participants changes their phone number.
Expand Down Expand Up @@ -1032,6 +1021,7 @@ class Client extends EventEmitter {
window.onChangeMessageEvent(window.WWebJS.getMessageModel(msg));
});
Msg.on('change:type', (msg) => {
if (msg.type !== 'revoked') return;
window.onChangeMessageTypeEvent(
window.WWebJS.getMessageModel(msg),
);
Expand Down
Loading