@pubby/sdk
Version:
Pubby Development Kit
57 lines (55 loc) • 1.85 kB
JavaScript
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 };