UNPKG

@pubby/sdk

Version:
57 lines (55 loc) 1.85 kB
var PubbyMessage = /** @class */ (function () { function PubbyMessage(message, chat) { this.chat = chat; Object.assign(this, message); } Object.defineProperty(PubbyMessage.prototype, "user", { get: function () { return this.chat.pubby.room.state.users.get(this.fromId); }, enumerable: false, configurable: true }); PubbyMessage.prototype.send = function () { return this.chat.send(this); }; PubbyMessage.prototype.reply = function (text) { return this.chat.send(this.chat.createMessage({ replyId: this.id, text: text, })); }; PubbyMessage.prototype.remove = function () { return this.chat.remove(this.id); }; PubbyMessage.prototype.onReply = function () { var _this = this; var listeners = []; for (var _i = 0; _i < arguments.length; _i++) { listeners[_i] = arguments[_i]; } var listener = function (msg) { if (msg.replyId === _this.id) { listeners.forEach(function (listener) { return listener(msg); }); } }; this.chat.on("message", listener); return { off: function () { return _this.chat.off("message", listener); }, }; }; PubbyMessage.prototype.onceReply = function (callback, fromId) { var _this = this; var listener = function (msg) { if (msg.replyId === _this.id && msg.fromId === fromId) { callback(msg); } }; this.chat.once("message", listener); return { off: function () { return _this.chat.off("message", listener); }, }; }; return PubbyMessage; }()); export { PubbyMessage };