polfan-server-js-client 0.2.93 → 0.2.95
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.idea/workspace.xml +85 -56
- package/build/index.cjs.js +310 -72
- package/build/index.cjs.js.map +1 -1
- package/build/index.umd.js +1 -1
- package/build/index.umd.js.map +1 -1
- package/build/types/AbstractChatClient.d.ts +3 -3
- package/build/types/state-tracker/MessagesManager.d.ts +13 -5
- package/build/types/types/src/index.d.ts +4 -4
- package/build/types/types/src/schemes/FollowedTopic.d.ts +4 -0
- package/build/types/types/src/schemes/commands/SetSessionData.d.ts +8 -0
- package/build/types/types/src/schemes/commands/UpdateFollowedTopic.d.ts +6 -0
- package/package.json +1 -1
- package/src/AbstractChatClient.ts +4 -5
- package/src/state-tracker/MessagesManager.ts +141 -22
- package/src/types/src/index.ts +7 -5
- package/src/types/src/schemes/FollowedTopic.ts +5 -0
- package/src/types/src/schemes/commands/SetSessionData.ts +9 -0
- package/src/types/src/schemes/commands/UpdateFollowedTopic.ts +7 -0
- package/tsconfig.json +16 -16
- package/src/types/src/schemes/commands/UnfollowTopic.ts +0 -5
package/build/index.cjs.js
CHANGED
|
@@ -1705,12 +1705,12 @@ var RoomMessagesHistory = /*#__PURE__*/function () {
|
|
|
1705
1705
|
}();
|
|
1706
1706
|
;// ./src/state-tracker/MessagesManager.ts
|
|
1707
1707
|
function MessagesManager_typeof(o) { "@babel/helpers - typeof"; return MessagesManager_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, MessagesManager_typeof(o); }
|
|
1708
|
+
function MessagesManager_ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
1709
|
+
function MessagesManager_objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? MessagesManager_ownKeys(Object(t), !0).forEach(function (r) { MessagesManager_defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : MessagesManager_ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
1708
1710
|
function MessagesManager_toConsumableArray(r) { return MessagesManager_arrayWithoutHoles(r) || MessagesManager_iterableToArray(r) || MessagesManager_unsupportedIterableToArray(r) || MessagesManager_nonIterableSpread(); }
|
|
1709
1711
|
function MessagesManager_nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
1710
1712
|
function MessagesManager_iterableToArray(r) { if ("undefined" != typeof Symbol && null != r[Symbol.iterator] || null != r["@@iterator"]) return Array.from(r); }
|
|
1711
1713
|
function MessagesManager_arrayWithoutHoles(r) { if (Array.isArray(r)) return MessagesManager_arrayLikeToArray(r); }
|
|
1712
|
-
function MessagesManager_ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
1713
|
-
function MessagesManager_objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? MessagesManager_ownKeys(Object(t), !0).forEach(function (r) { MessagesManager_defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : MessagesManager_ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
1714
1714
|
function MessagesManager_createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = MessagesManager_unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
|
|
1715
1715
|
function MessagesManager_unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return MessagesManager_arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? MessagesManager_arrayLikeToArray(r, a) : void 0; } }
|
|
1716
1716
|
function MessagesManager_arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
|
|
@@ -1735,6 +1735,7 @@ var MessagesManager = /*#__PURE__*/function () {
|
|
|
1735
1735
|
MessagesManager_defineProperty(this, "followedTopics", new IndexedCollection());
|
|
1736
1736
|
MessagesManager_defineProperty(this, "followedTopicsPromises", new PromiseRegistry());
|
|
1737
1737
|
MessagesManager_defineProperty(this, "deferredSession", new DeferredTask());
|
|
1738
|
+
MessagesManager_defineProperty(this, "unreadSummariesCache", new Map());
|
|
1738
1739
|
this.tracker = tracker;
|
|
1739
1740
|
this.tracker.client.on('Session', function (ev) {
|
|
1740
1741
|
return _this.handleSession(ev);
|
|
@@ -1751,9 +1752,6 @@ var MessagesManager = /*#__PURE__*/function () {
|
|
|
1751
1752
|
this.tracker.client.on('TopicFollowed', function (ev) {
|
|
1752
1753
|
return _this.handleTopicFollowed(ev);
|
|
1753
1754
|
});
|
|
1754
|
-
this.tracker.client.on('TopicUnfollowed', function (ev) {
|
|
1755
|
-
return _this.handleTopicUnfollowed(ev);
|
|
1756
|
-
});
|
|
1757
1755
|
this.tracker.client.on('NewMessage', function (ev) {
|
|
1758
1756
|
return _this.handleNewMessage(ev);
|
|
1759
1757
|
});
|
|
@@ -1928,13 +1926,13 @@ var MessagesManager = /*#__PURE__*/function () {
|
|
|
1928
1926
|
return getRoomFollowedTopics;
|
|
1929
1927
|
}()
|
|
1930
1928
|
/**
|
|
1931
|
-
* Batch acknowledge all
|
|
1929
|
+
* Batch acknowledge all messages for given room.
|
|
1932
1930
|
*/
|
|
1933
1931
|
)
|
|
1934
1932
|
}, {
|
|
1935
|
-
key: "
|
|
1933
|
+
key: "ackRoom",
|
|
1936
1934
|
value: (function () {
|
|
1937
|
-
var
|
|
1935
|
+
var _ackRoom = MessagesManager_asyncToGenerator(/*#__PURE__*/MessagesManager_regenerator().m(function _callee5(roomId) {
|
|
1938
1936
|
var collection, _iterator, _step, followedTopic, _t2;
|
|
1939
1937
|
return MessagesManager_regenerator().w(function (_context5) {
|
|
1940
1938
|
while (1) switch (_context5.p = _context5.n) {
|
|
@@ -1958,7 +1956,7 @@ var MessagesManager = /*#__PURE__*/function () {
|
|
|
1958
1956
|
break;
|
|
1959
1957
|
}
|
|
1960
1958
|
followedTopic = _step.value;
|
|
1961
|
-
if (!followedTopic.
|
|
1959
|
+
if (!followedTopic.isUnread) {
|
|
1962
1960
|
_context5.n = 5;
|
|
1963
1961
|
break;
|
|
1964
1962
|
}
|
|
@@ -1985,45 +1983,160 @@ var MessagesManager = /*#__PURE__*/function () {
|
|
|
1985
1983
|
}
|
|
1986
1984
|
}, _callee5, this, [[3, 7, 8, 9]]);
|
|
1987
1985
|
}));
|
|
1988
|
-
function
|
|
1989
|
-
return
|
|
1986
|
+
function ackRoom(_x4) {
|
|
1987
|
+
return _ackRoom.apply(this, arguments);
|
|
1990
1988
|
}
|
|
1991
|
-
return
|
|
1989
|
+
return ackRoom;
|
|
1992
1990
|
}()
|
|
1993
1991
|
/**
|
|
1994
|
-
* Calculate missed messages from any topic in given room.
|
|
1992
|
+
* Calculate missed messages with mentions from any topic in given room.
|
|
1995
1993
|
* @return Undefined if you are not in room.
|
|
1996
1994
|
*/
|
|
1997
1995
|
)
|
|
1998
1996
|
}, {
|
|
1999
|
-
key: "
|
|
1997
|
+
key: "summarizeUnreadMessages",
|
|
2000
1998
|
value: (function () {
|
|
2001
|
-
var
|
|
2002
|
-
var collection;
|
|
1999
|
+
var _summarizeUnreadMessages = MessagesManager_asyncToGenerator(/*#__PURE__*/MessagesManager_regenerator().m(function _callee6(location) {
|
|
2000
|
+
var cacheKey, roomIds, targetTopicId, rooms, mentionCount, isUnread, _iterator2, _step2, roomId, collection, _iterator3, _step3, _topic$mentionCount, topic, result, _t3, _t4;
|
|
2003
2001
|
return MessagesManager_regenerator().w(function (_context6) {
|
|
2004
|
-
while (1) switch (_context6.n) {
|
|
2002
|
+
while (1) switch (_context6.p = _context6.n) {
|
|
2005
2003
|
case 0:
|
|
2006
|
-
|
|
2007
|
-
|
|
2004
|
+
cacheKey = location.topicId ? "topic:".concat(location.roomId, ":").concat(location.topicId) : location.roomId ? "room:".concat(location.roomId) : location.spaceId ? "space:".concat(location.spaceId) : 'spaceless';
|
|
2005
|
+
if (!this.unreadSummariesCache.has(cacheKey)) {
|
|
2006
|
+
_context6.n = 1;
|
|
2007
|
+
break;
|
|
2008
|
+
}
|
|
2009
|
+
return _context6.a(2, this.unreadSummariesCache.get(cacheKey));
|
|
2008
2010
|
case 1:
|
|
2011
|
+
roomIds = [];
|
|
2012
|
+
_context6.n = 2;
|
|
2013
|
+
return this.tracker.rooms.get();
|
|
2014
|
+
case 2:
|
|
2015
|
+
rooms = _context6.v;
|
|
2016
|
+
if (!location.topicId) {
|
|
2017
|
+
_context6.n = 4;
|
|
2018
|
+
break;
|
|
2019
|
+
}
|
|
2020
|
+
if (location.roomId) {
|
|
2021
|
+
_context6.n = 3;
|
|
2022
|
+
break;
|
|
2023
|
+
}
|
|
2024
|
+
throw new Error("roomId is required when querying by topicId");
|
|
2025
|
+
case 3:
|
|
2026
|
+
roomIds = [location.roomId];
|
|
2027
|
+
targetTopicId = location.topicId;
|
|
2028
|
+
_context6.n = 8;
|
|
2029
|
+
break;
|
|
2030
|
+
case 4:
|
|
2031
|
+
if (!location.roomId) {
|
|
2032
|
+
_context6.n = 5;
|
|
2033
|
+
break;
|
|
2034
|
+
}
|
|
2035
|
+
roomIds = [location.roomId];
|
|
2036
|
+
_context6.n = 8;
|
|
2037
|
+
break;
|
|
2038
|
+
case 5:
|
|
2039
|
+
if (!location.spaceId) {
|
|
2040
|
+
_context6.n = 7;
|
|
2041
|
+
break;
|
|
2042
|
+
}
|
|
2043
|
+
_context6.n = 6;
|
|
2044
|
+
return this.cacheSpaceFollowedTopics(location.spaceId);
|
|
2045
|
+
case 6:
|
|
2046
|
+
roomIds = rooms.findBy('spaceId', location.spaceId).items.map(function (r) {
|
|
2047
|
+
return r.id;
|
|
2048
|
+
});
|
|
2049
|
+
_context6.n = 8;
|
|
2050
|
+
break;
|
|
2051
|
+
case 7:
|
|
2052
|
+
roomIds = rooms.items.filter(function (r) {
|
|
2053
|
+
return !r.spaceId;
|
|
2054
|
+
}).map(function (r) {
|
|
2055
|
+
return r.id;
|
|
2056
|
+
});
|
|
2057
|
+
case 8:
|
|
2058
|
+
mentionCount = 0;
|
|
2059
|
+
isUnread = false;
|
|
2060
|
+
_iterator2 = MessagesManager_createForOfIteratorHelper(roomIds);
|
|
2061
|
+
_context6.p = 9;
|
|
2062
|
+
_iterator2.s();
|
|
2063
|
+
case 10:
|
|
2064
|
+
if ((_step2 = _iterator2.n()).done) {
|
|
2065
|
+
_context6.n = 21;
|
|
2066
|
+
break;
|
|
2067
|
+
}
|
|
2068
|
+
roomId = _step2.value;
|
|
2069
|
+
_context6.n = 11;
|
|
2070
|
+
return this.getRoomFollowedTopics(roomId);
|
|
2071
|
+
case 11:
|
|
2009
2072
|
collection = _context6.v;
|
|
2010
|
-
if (
|
|
2011
|
-
_context6.n =
|
|
2073
|
+
if (collection) {
|
|
2074
|
+
_context6.n = 12;
|
|
2012
2075
|
break;
|
|
2013
2076
|
}
|
|
2014
|
-
return _context6.a(
|
|
2015
|
-
|
|
2016
|
-
|
|
2017
|
-
|
|
2018
|
-
|
|
2019
|
-
|
|
2077
|
+
return _context6.a(3, 20);
|
|
2078
|
+
case 12:
|
|
2079
|
+
_iterator3 = MessagesManager_createForOfIteratorHelper(collection.items);
|
|
2080
|
+
_context6.p = 13;
|
|
2081
|
+
_iterator3.s();
|
|
2082
|
+
case 14:
|
|
2083
|
+
if ((_step3 = _iterator3.n()).done) {
|
|
2084
|
+
_context6.n = 17;
|
|
2085
|
+
break;
|
|
2086
|
+
}
|
|
2087
|
+
topic = _step3.value;
|
|
2088
|
+
if (!(targetTopicId && topic.location.topicId !== targetTopicId)) {
|
|
2089
|
+
_context6.n = 15;
|
|
2090
|
+
break;
|
|
2091
|
+
}
|
|
2092
|
+
return _context6.a(3, 16);
|
|
2093
|
+
case 15:
|
|
2094
|
+
if (topic.isUnread) {
|
|
2095
|
+
isUnread = true;
|
|
2096
|
+
}
|
|
2097
|
+
mentionCount += (_topic$mentionCount = topic.mentionCount) !== null && _topic$mentionCount !== void 0 ? _topic$mentionCount : 0;
|
|
2098
|
+
case 16:
|
|
2099
|
+
_context6.n = 14;
|
|
2100
|
+
break;
|
|
2101
|
+
case 17:
|
|
2102
|
+
_context6.n = 19;
|
|
2103
|
+
break;
|
|
2104
|
+
case 18:
|
|
2105
|
+
_context6.p = 18;
|
|
2106
|
+
_t3 = _context6.v;
|
|
2107
|
+
_iterator3.e(_t3);
|
|
2108
|
+
case 19:
|
|
2109
|
+
_context6.p = 19;
|
|
2110
|
+
_iterator3.f();
|
|
2111
|
+
return _context6.f(19);
|
|
2112
|
+
case 20:
|
|
2113
|
+
_context6.n = 10;
|
|
2114
|
+
break;
|
|
2115
|
+
case 21:
|
|
2116
|
+
_context6.n = 23;
|
|
2117
|
+
break;
|
|
2118
|
+
case 22:
|
|
2119
|
+
_context6.p = 22;
|
|
2120
|
+
_t4 = _context6.v;
|
|
2121
|
+
_iterator2.e(_t4);
|
|
2122
|
+
case 23:
|
|
2123
|
+
_context6.p = 23;
|
|
2124
|
+
_iterator2.f();
|
|
2125
|
+
return _context6.f(23);
|
|
2126
|
+
case 24:
|
|
2127
|
+
result = {
|
|
2128
|
+
mentionCount: mentionCount,
|
|
2129
|
+
isUnread: isUnread
|
|
2130
|
+
};
|
|
2131
|
+
this.unreadSummariesCache.set(cacheKey, result);
|
|
2132
|
+
return _context6.a(2, result);
|
|
2020
2133
|
}
|
|
2021
|
-
}, _callee6, this);
|
|
2134
|
+
}, _callee6, this, [[13, 18, 19, 20], [9, 22, 23, 24]]);
|
|
2022
2135
|
}));
|
|
2023
|
-
function
|
|
2024
|
-
return
|
|
2136
|
+
function summarizeUnreadMessages(_x5) {
|
|
2137
|
+
return _summarizeUnreadMessages.apply(this, arguments);
|
|
2025
2138
|
}
|
|
2026
|
-
return
|
|
2139
|
+
return summarizeUnreadMessages;
|
|
2027
2140
|
}()
|
|
2028
2141
|
/**
|
|
2029
2142
|
* For internal use. If you want to delete the message, execute a proper command on client object.
|
|
@@ -2033,11 +2146,15 @@ var MessagesManager = /*#__PURE__*/function () {
|
|
|
2033
2146
|
}, {
|
|
2034
2147
|
key: "_deleteByTopicIds",
|
|
2035
2148
|
value: function _deleteByTopicIds(roomId) {
|
|
2036
|
-
var _this$followedTopics
|
|
2149
|
+
var _this$followedTopics$,
|
|
2150
|
+
_this4 = this;
|
|
2037
2151
|
for (var _len = arguments.length, topicIds = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
|
|
2038
2152
|
topicIds[_key - 1] = arguments[_key];
|
|
2039
2153
|
}
|
|
2040
2154
|
(_this$followedTopics$ = this.followedTopics.get(roomId)) === null || _this$followedTopics$ === void 0 || _this$followedTopics$["delete"].apply(_this$followedTopics$, topicIds);
|
|
2155
|
+
topicIds.forEach(function (topicId) {
|
|
2156
|
+
return _this4.invalidateUnreadSummaries(roomId, topicId);
|
|
2157
|
+
});
|
|
2041
2158
|
}
|
|
2042
2159
|
|
|
2043
2160
|
/**
|
|
@@ -2081,7 +2198,82 @@ var MessagesManager = /*#__PURE__*/function () {
|
|
|
2081
2198
|
return _resolveLastMessage2.apply(this, arguments);
|
|
2082
2199
|
}
|
|
2083
2200
|
return _resolveLastMessage;
|
|
2084
|
-
}()
|
|
2201
|
+
}()
|
|
2202
|
+
/**
|
|
2203
|
+
* Wyczyść cache celowo, tylko dla lokalizacji których dotyczy zmiana.
|
|
2204
|
+
*/
|
|
2205
|
+
)
|
|
2206
|
+
}, {
|
|
2207
|
+
key: "invalidateUnreadSummaries",
|
|
2208
|
+
value: function invalidateUnreadSummaries(roomId, topicId) {
|
|
2209
|
+
if (!roomId) {
|
|
2210
|
+
this.unreadSummariesCache.clear();
|
|
2211
|
+
return;
|
|
2212
|
+
}
|
|
2213
|
+
this.unreadSummariesCache["delete"]("room:".concat(roomId));
|
|
2214
|
+
if (topicId) {
|
|
2215
|
+
this.unreadSummariesCache["delete"]("topic:".concat(roomId, ":").concat(topicId));
|
|
2216
|
+
} else {
|
|
2217
|
+
var _iterator4 = MessagesManager_createForOfIteratorHelper(this.unreadSummariesCache.keys()),
|
|
2218
|
+
_step4;
|
|
2219
|
+
try {
|
|
2220
|
+
for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {
|
|
2221
|
+
var key = _step4.value;
|
|
2222
|
+
if (key.startsWith("topic:".concat(roomId, ":"))) {
|
|
2223
|
+
this.unreadSummariesCache["delete"](key);
|
|
2224
|
+
}
|
|
2225
|
+
}
|
|
2226
|
+
} catch (err) {
|
|
2227
|
+
_iterator4.e(err);
|
|
2228
|
+
} finally {
|
|
2229
|
+
_iterator4.f();
|
|
2230
|
+
}
|
|
2231
|
+
}
|
|
2232
|
+
var _iterator5 = MessagesManager_createForOfIteratorHelper(this.unreadSummariesCache.keys()),
|
|
2233
|
+
_step5;
|
|
2234
|
+
try {
|
|
2235
|
+
for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {
|
|
2236
|
+
var _key2 = _step5.value;
|
|
2237
|
+
if (_key2.startsWith('space:') || _key2 === 'spaceless') {
|
|
2238
|
+
this.unreadSummariesCache["delete"](_key2);
|
|
2239
|
+
}
|
|
2240
|
+
}
|
|
2241
|
+
} catch (err) {
|
|
2242
|
+
_iterator5.e(err);
|
|
2243
|
+
} finally {
|
|
2244
|
+
_iterator5.f();
|
|
2245
|
+
}
|
|
2246
|
+
}
|
|
2247
|
+
}, {
|
|
2248
|
+
key: "invalidateUnreadSummariesForRooms",
|
|
2249
|
+
value: function invalidateUnreadSummariesForRooms(roomIds) {
|
|
2250
|
+
var _this5 = this;
|
|
2251
|
+
var roomIdsSet = new Set(roomIds);
|
|
2252
|
+
roomIds.forEach(function (roomId) {
|
|
2253
|
+
_this5.unreadSummariesCache["delete"]("room:".concat(roomId));
|
|
2254
|
+
});
|
|
2255
|
+
var _iterator6 = MessagesManager_createForOfIteratorHelper(this.unreadSummariesCache.keys()),
|
|
2256
|
+
_step6;
|
|
2257
|
+
try {
|
|
2258
|
+
for (_iterator6.s(); !(_step6 = _iterator6.n()).done;) {
|
|
2259
|
+
var key = _step6.value;
|
|
2260
|
+
if (key.startsWith('space:') || key === 'spaceless') {
|
|
2261
|
+
this.unreadSummariesCache["delete"](key);
|
|
2262
|
+
continue;
|
|
2263
|
+
}
|
|
2264
|
+
if (key.startsWith('topic:')) {
|
|
2265
|
+
var parts = key.split(':');
|
|
2266
|
+
if (parts.length >= 2 && roomIdsSet.has(parts[1])) {
|
|
2267
|
+
this.unreadSummariesCache["delete"](key);
|
|
2268
|
+
}
|
|
2269
|
+
}
|
|
2270
|
+
}
|
|
2271
|
+
} catch (err) {
|
|
2272
|
+
_iterator6.e(err);
|
|
2273
|
+
} finally {
|
|
2274
|
+
_iterator6.f();
|
|
2275
|
+
}
|
|
2276
|
+
}
|
|
2085
2277
|
}, {
|
|
2086
2278
|
key: "createHistoryForNewRoom",
|
|
2087
2279
|
value: function createHistoryForNewRoom(room) {
|
|
@@ -2090,24 +2282,20 @@ var MessagesManager = /*#__PURE__*/function () {
|
|
|
2090
2282
|
}, {
|
|
2091
2283
|
key: "handleNewMessage",
|
|
2092
2284
|
value: function handleNewMessage(ev) {
|
|
2093
|
-
this.updateLocallyFollowedTopicOnNewMessage(ev);
|
|
2285
|
+
void this.updateLocallyFollowedTopicOnNewMessage(ev);
|
|
2094
2286
|
}
|
|
2095
2287
|
}, {
|
|
2096
2288
|
key: "handleFollowedTopicUpdated",
|
|
2097
2289
|
value: function handleFollowedTopicUpdated(ev) {
|
|
2098
2290
|
var _this$followedTopics$2;
|
|
2099
2291
|
(_this$followedTopics$2 = this.followedTopics.get(ev.followedTopic.location.roomId)) === null || _this$followedTopics$2 === void 0 || _this$followedTopics$2.set(ev.followedTopic);
|
|
2292
|
+
this.invalidateUnreadSummaries(ev.followedTopic.location.roomId, ev.followedTopic.location.topicId);
|
|
2100
2293
|
}
|
|
2101
2294
|
}, {
|
|
2102
2295
|
key: "handleTopicFollowed",
|
|
2103
2296
|
value: function handleTopicFollowed(ev) {
|
|
2104
2297
|
this.setFollowedTopicsArray([ev.followedTopic.location.roomId], [ev.followedTopic]);
|
|
2105
|
-
|
|
2106
|
-
}, {
|
|
2107
|
-
key: "handleTopicUnfollowed",
|
|
2108
|
-
value: function handleTopicUnfollowed(ev) {
|
|
2109
|
-
var _this$followedTopics$3;
|
|
2110
|
-
(_this$followedTopics$3 = this.followedTopics.get(ev.location.roomId)) === null || _this$followedTopics$3 === void 0 || _this$followedTopics$3["delete"](ev.location.topicId);
|
|
2298
|
+
this.invalidateUnreadSummaries(ev.followedTopic.location.roomId, ev.followedTopic.location.topicId);
|
|
2111
2299
|
}
|
|
2112
2300
|
}, {
|
|
2113
2301
|
key: "handleRoomDeleted",
|
|
@@ -2151,6 +2339,7 @@ var MessagesManager = /*#__PURE__*/function () {
|
|
|
2151
2339
|
followedTopic = result.data.followedTopics[0];
|
|
2152
2340
|
if (followedTopic) {
|
|
2153
2341
|
this.followedTopics.get(ev.roomId).set(followedTopic);
|
|
2342
|
+
this.invalidateUnreadSummaries(ev.roomId, ev.topic.id);
|
|
2154
2343
|
}
|
|
2155
2344
|
case 2:
|
|
2156
2345
|
return _context8.a(2);
|
|
@@ -2165,51 +2354,98 @@ var MessagesManager = /*#__PURE__*/function () {
|
|
|
2165
2354
|
}, {
|
|
2166
2355
|
key: "handleTopicDeleted",
|
|
2167
2356
|
value: function handleTopicDeleted(ev) {
|
|
2168
|
-
var _this$followedTopics$
|
|
2169
|
-
(_this$followedTopics$
|
|
2357
|
+
var _this$followedTopics$3;
|
|
2358
|
+
(_this$followedTopics$3 = this.followedTopics.get(ev.location.roomId)) === null || _this$followedTopics$3 === void 0 || _this$followedTopics$3["delete"](ev.location.topicId);
|
|
2359
|
+
this.invalidateUnreadSummaries(ev.location.roomId, ev.location.topicId);
|
|
2170
2360
|
}
|
|
2171
2361
|
}, {
|
|
2172
2362
|
key: "handleSession",
|
|
2173
2363
|
value: function handleSession(ev) {
|
|
2174
|
-
var
|
|
2364
|
+
var _this6 = this;
|
|
2175
2365
|
this.followedTopics.deleteAll();
|
|
2176
2366
|
this.followedTopicsPromises.forgetAll();
|
|
2367
|
+
this.invalidateUnreadSummaries();
|
|
2177
2368
|
this.roomHistories.deleteAll();
|
|
2178
2369
|
ev.state.rooms.forEach(function (room) {
|
|
2179
|
-
return
|
|
2370
|
+
return _this6.createHistoryForNewRoom(room);
|
|
2180
2371
|
});
|
|
2181
2372
|
this.deferredSession.resolve();
|
|
2182
2373
|
}
|
|
2183
2374
|
}, {
|
|
2184
2375
|
key: "updateLocallyFollowedTopicOnNewMessage",
|
|
2185
|
-
value: function
|
|
2186
|
-
var
|
|
2187
|
-
|
|
2188
|
-
|
|
2189
|
-
|
|
2190
|
-
|
|
2191
|
-
|
|
2192
|
-
|
|
2193
|
-
|
|
2194
|
-
|
|
2195
|
-
|
|
2196
|
-
|
|
2197
|
-
|
|
2198
|
-
|
|
2199
|
-
|
|
2200
|
-
|
|
2201
|
-
|
|
2202
|
-
|
|
2203
|
-
|
|
2204
|
-
|
|
2205
|
-
|
|
2376
|
+
value: function () {
|
|
2377
|
+
var _updateLocallyFollowedTopicOnNewMessage = MessagesManager_asyncToGenerator(/*#__PURE__*/MessagesManager_regenerator().m(function _callee9(ev) {
|
|
2378
|
+
var _this$tracker$me;
|
|
2379
|
+
var roomFollowedTopics, followedTopic, isMe, update, _member$spaceMember$r, _member$spaceMember, member, roleIds, mentionHandlers, mentionExists;
|
|
2380
|
+
return MessagesManager_regenerator().w(function (_context9) {
|
|
2381
|
+
while (1) switch (_context9.n) {
|
|
2382
|
+
case 0:
|
|
2383
|
+
roomFollowedTopics = this.followedTopics.get(ev.message.location.roomId);
|
|
2384
|
+
followedTopic = roomFollowedTopics === null || roomFollowedTopics === void 0 ? void 0 : roomFollowedTopics.get(ev.message.location.topicId);
|
|
2385
|
+
if (!(!roomFollowedTopics || !followedTopic || ev.message.type === 'Ephemeral')) {
|
|
2386
|
+
_context9.n = 1;
|
|
2387
|
+
break;
|
|
2388
|
+
}
|
|
2389
|
+
return _context9.a(2);
|
|
2390
|
+
case 1:
|
|
2391
|
+
isMe = ev.message.author.user.id === ((_this$tracker$me = this.tracker.me) === null || _this$tracker$me === void 0 ? void 0 : _this$tracker$me.id);
|
|
2392
|
+
if (!isMe) {
|
|
2393
|
+
_context9.n = 2;
|
|
2394
|
+
break;
|
|
2395
|
+
}
|
|
2396
|
+
// Reset missed messages count if new message is authored by me
|
|
2397
|
+
update = {
|
|
2398
|
+
missed: 0,
|
|
2399
|
+
lastAckMessageId: ev.message.id
|
|
2400
|
+
};
|
|
2401
|
+
_context9.n = 5;
|
|
2402
|
+
break;
|
|
2403
|
+
case 2:
|
|
2404
|
+
if (!(ev.message.type === 'Text')) {
|
|
2405
|
+
_context9.n = 4;
|
|
2406
|
+
break;
|
|
2407
|
+
}
|
|
2408
|
+
_context9.n = 3;
|
|
2409
|
+
return this.tracker.rooms.getMe(ev.message.location.roomId);
|
|
2410
|
+
case 3:
|
|
2411
|
+
member = _context9.v;
|
|
2412
|
+
roleIds = [].concat(MessagesManager_toConsumableArray((_member$spaceMember$r = (_member$spaceMember = member.spaceMember) === null || _member$spaceMember === void 0 ? void 0 : _member$spaceMember.roles) !== null && _member$spaceMember$r !== void 0 ? _member$spaceMember$r : []), MessagesManager_toConsumableArray(member.roles));
|
|
2413
|
+
mentionHandlers = [].concat(MessagesManager_toConsumableArray(roleIds.map(function (id) {
|
|
2414
|
+
return "<@&".concat(id, ">");
|
|
2415
|
+
})), ["<@".concat(ev.message.author.user.id, ">")]);
|
|
2416
|
+
mentionExists = mentionHandlers.some(function (handler) {
|
|
2417
|
+
return ev.message.content.includes(handler);
|
|
2418
|
+
});
|
|
2419
|
+
update = {
|
|
2420
|
+
missed: followedTopic.missed === null ? null : followedTopic.missed + 1,
|
|
2421
|
+
isUnread: true,
|
|
2422
|
+
mentionCount: followedTopic.mentionCount + (mentionExists ? 1 : 0)
|
|
2423
|
+
};
|
|
2424
|
+
_context9.n = 5;
|
|
2425
|
+
break;
|
|
2426
|
+
case 4:
|
|
2427
|
+
// ...or just mark as unread.
|
|
2428
|
+
update = {
|
|
2429
|
+
missed: followedTopic.missed === null ? null : followedTopic.missed + 1,
|
|
2430
|
+
isUnread: true
|
|
2431
|
+
};
|
|
2432
|
+
case 5:
|
|
2433
|
+
roomFollowedTopics.set(MessagesManager_objectSpread(MessagesManager_objectSpread({}, followedTopic), update));
|
|
2434
|
+
this.invalidateUnreadSummaries(ev.message.location.roomId, ev.message.location.topicId);
|
|
2435
|
+
case 6:
|
|
2436
|
+
return _context9.a(2);
|
|
2437
|
+
}
|
|
2438
|
+
}, _callee9, this);
|
|
2439
|
+
}));
|
|
2440
|
+
function updateLocallyFollowedTopicOnNewMessage(_x8) {
|
|
2441
|
+
return _updateLocallyFollowedTopicOnNewMessage.apply(this, arguments);
|
|
2206
2442
|
}
|
|
2207
|
-
|
|
2208
|
-
}
|
|
2443
|
+
return updateLocallyFollowedTopicOnNewMessage;
|
|
2444
|
+
}()
|
|
2209
2445
|
}, {
|
|
2210
2446
|
key: "setFollowedTopicsArray",
|
|
2211
2447
|
value: function setFollowedTopicsArray(roomIds, followedTopics) {
|
|
2212
|
-
var
|
|
2448
|
+
var _this7 = this;
|
|
2213
2449
|
var roomToTopics = {};
|
|
2214
2450
|
|
|
2215
2451
|
// Reassign followed topics to limit collection change event emit
|
|
@@ -2219,22 +2455,24 @@ var MessagesManager = /*#__PURE__*/function () {
|
|
|
2219
2455
|
roomToTopics[followedTopic.location.roomId].push(followedTopic);
|
|
2220
2456
|
});
|
|
2221
2457
|
roomIds.forEach(function (roomId) {
|
|
2222
|
-
if (!
|
|
2223
|
-
|
|
2458
|
+
if (!_this7.followedTopics.has(roomId)) {
|
|
2459
|
+
_this7.followedTopics.set([roomId, new ObservableIndexedObjectCollection(function (followedTopic) {
|
|
2224
2460
|
return followedTopic.location.topicId;
|
|
2225
2461
|
})]);
|
|
2226
2462
|
}
|
|
2227
2463
|
if (roomToTopics[roomId]) {
|
|
2228
|
-
var
|
|
2229
|
-
(
|
|
2464
|
+
var _this7$followedTopics;
|
|
2465
|
+
(_this7$followedTopics = _this7.followedTopics.get(roomId)).set.apply(_this7$followedTopics, MessagesManager_toConsumableArray(roomToTopics[roomId]));
|
|
2230
2466
|
}
|
|
2231
2467
|
});
|
|
2468
|
+
this.invalidateUnreadSummariesForRooms(roomIds);
|
|
2232
2469
|
}
|
|
2233
2470
|
}, {
|
|
2234
2471
|
key: "clearRoomFollowedTopicsStructures",
|
|
2235
2472
|
value: function clearRoomFollowedTopicsStructures(roomId) {
|
|
2236
2473
|
this.followedTopics["delete"](roomId);
|
|
2237
2474
|
this.followedTopicsPromises.forget(roomId);
|
|
2475
|
+
this.invalidateUnreadSummaries(roomId);
|
|
2238
2476
|
}
|
|
2239
2477
|
}]);
|
|
2240
2478
|
}();
|