feat: added ACK events (#73)

Implements ack change detection, making it possible to know when messages have been delivered, read, etc.

Co-authored-by: Pedro S. Lopez <pedroslopez@me.com>
This commit is contained in:
João Vitor Miranda
2020-02-26 23:59:46 -03:00
committed by GitHub
parent 1ebaf56617
commit bb4ad11bfa
2 changed files with 18 additions and 2 deletions

View File

@@ -214,6 +214,20 @@ class Client extends EventEmitter {
});
await page.exposeFunction('onMessageAckEvent', (msg, ack) => {
const message = new Message(this, msg);
/**
* Emitted when an ack event occurrs on message type.
* @event Client#message_ack
* @param {Message} message The message that was affected
* @param {number} ack The new ACK value
*/
this.emit(Events.MESSAGE_ACK, message, ack);
});
await page.exposeFunction('onAppStateChangedEvent', (_AppState, state) => {
/**
@@ -239,6 +253,7 @@ class Client extends EventEmitter {
window.Store.Msg.on('add', window.onAddMessageEvent);
window.Store.Msg.on('change', window.onChangeMessageEvent);
window.Store.Msg.on('change:type', window.onChangeMessageTypeEvent);
window.Store.Msg.on('change:ack', window.onMessageAckEvent);
window.Store.Msg.on('remove', window.onRemoveMessageEvent);
window.Store.AppState.on('change:state', window.onAppStateChangedEvent);
});

View File

@@ -35,9 +35,10 @@ exports.Events = {
MESSAGE_CREATE: 'message_create',
MESSAGE_REVOKED_EVERYONE: 'message_revoke_everyone',
MESSAGE_REVOKED_ME: 'message_revoke_me',
MESSAGE_ACK: 'message_ack',
QR_RECEIVED: 'qr',
DISCONNECTED: 'disconnected',
STATE_CHANGED: 'change_state'
STATE_CHANGED: 'change_state',
};
/**
@@ -89,4 +90,4 @@ exports.WAState = {
UNLAUNCHED: 'UNLAUNCHED',
UNPAIRED: 'UNPAIRED',
UNPAIRED_IDLE: 'UNPAIRED_IDLE'
};
};