diff --git a/src/Client.js b/src/Client.js index 1173aaa..46e9dd2 100644 --- a/src/Client.js +++ b/src/Client.js @@ -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); }); diff --git a/src/util/Constants.js b/src/util/Constants.js index 55c30ae..738305c 100644 --- a/src/util/Constants.js +++ b/src/util/Constants.js @@ -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' -}; \ No newline at end of file +};