stream-chat-react 10.20.0 → 10.20.1
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/dist/browser.full-bundle.js +23 -18
- package/dist/browser.full-bundle.js.map +1 -1
- package/dist/browser.full-bundle.min.js +3 -3
- package/dist/browser.full-bundle.min.js.map +1 -1
- package/dist/components/Channel/Channel.js +18 -16
- package/dist/components/Channel/channelState.d.ts +1 -0
- package/dist/components/Channel/channelState.d.ts.map +1 -1
- package/dist/components/Channel/channelState.js +2 -2
- package/dist/components/InfiniteScrollPaginator/InfiniteScroll.js +1 -0
- package/dist/components/MessageList/utils.d.ts.map +1 -1
- package/dist/components/MessageList/utils.js +1 -0
- package/dist/components/Thread/Thread.js +1 -0
- package/dist/index.cjs.js +23 -18
- package/dist/index.cjs.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +1 -1
|
@@ -25,7 +25,7 @@ import { EmojiProvider } from '../../context/EmojiContext';
|
|
|
25
25
|
import { useTranslationContext } from '../../context/TranslationContext';
|
|
26
26
|
import { TypingProvider } from '../../context/TypingContext';
|
|
27
27
|
import { DEFAULT_INITIAL_CHANNEL_PAGE_SIZE, DEFAULT_NEXT_CHANNEL_PAGE_SIZE, DEFAULT_THREAD_PAGE_SIZE, } from '../../constants/limits';
|
|
28
|
-
import { hasMoreMessagesProbably
|
|
28
|
+
import { hasMoreMessagesProbably } from '../MessageList/utils';
|
|
29
29
|
import defaultEmojiData from '../../stream-emoji.json';
|
|
30
30
|
import { makeAddNotifications } from './utils';
|
|
31
31
|
import { getChannel } from '../../utils/getChannel';
|
|
@@ -153,6 +153,7 @@ var ChannelInner = function (props) {
|
|
|
153
153
|
/**
|
|
154
154
|
* As the channel state is not normalized we re-fetch the channel data. Thus, we avoid having to search for user references in the channel state.
|
|
155
155
|
*/
|
|
156
|
+
// FIXME: we should use channelQueryOptions if they are available
|
|
156
157
|
return [4 /*yield*/, channel.query({
|
|
157
158
|
messages: { id_lt: oldestID, limit: DEFAULT_NEXT_CHANNEL_PAGE_SIZE },
|
|
158
159
|
watchers: { limit: DEFAULT_NEXT_CHANNEL_PAGE_SIZE },
|
|
@@ -161,6 +162,7 @@ var ChannelInner = function (props) {
|
|
|
161
162
|
/**
|
|
162
163
|
* As the channel state is not normalized we re-fetch the channel data. Thus, we avoid having to search for user references in the channel state.
|
|
163
164
|
*/
|
|
165
|
+
// FIXME: we should use channelQueryOptions if they are available
|
|
164
166
|
_m.sent();
|
|
165
167
|
_m.label = 2;
|
|
166
168
|
case 2:
|
|
@@ -179,14 +181,14 @@ var ChannelInner = function (props) {
|
|
|
179
181
|
};
|
|
180
182
|
(function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
181
183
|
var members, _i, _a, member, userId, _b, user, user_id, config, e_1;
|
|
182
|
-
var _c;
|
|
183
|
-
return __generator(this, function (
|
|
184
|
-
switch (
|
|
184
|
+
var _c, _d, _e;
|
|
185
|
+
return __generator(this, function (_f) {
|
|
186
|
+
switch (_f.label) {
|
|
185
187
|
case 0:
|
|
186
188
|
if (!(!channel.initialized && initializeOnMount)) return [3 /*break*/, 4];
|
|
187
|
-
|
|
189
|
+
_f.label = 1;
|
|
188
190
|
case 1:
|
|
189
|
-
|
|
191
|
+
_f.trys.push([1, 3, , 4]);
|
|
190
192
|
members = [];
|
|
191
193
|
if (!channel.id && ((_c = channel.data) === null || _c === void 0 ? void 0 : _c.members)) {
|
|
192
194
|
for (_i = 0, _a = channel.data.members; _i < _a.length; _i++) {
|
|
@@ -206,12 +208,12 @@ var ChannelInner = function (props) {
|
|
|
206
208
|
}
|
|
207
209
|
return [4 /*yield*/, getChannel({ channel: channel, client: client, members: members, options: channelQueryOptions })];
|
|
208
210
|
case 2:
|
|
209
|
-
|
|
211
|
+
_f.sent();
|
|
210
212
|
config = channel.getConfig();
|
|
211
213
|
setChannelConfig(config);
|
|
212
214
|
return [3 /*break*/, 4];
|
|
213
215
|
case 3:
|
|
214
|
-
e_1 =
|
|
216
|
+
e_1 = _f.sent();
|
|
215
217
|
dispatch({ error: e_1, type: 'setError' });
|
|
216
218
|
errored = true;
|
|
217
219
|
return [3 /*break*/, 4];
|
|
@@ -219,7 +221,11 @@ var ChannelInner = function (props) {
|
|
|
219
221
|
done = true;
|
|
220
222
|
originalTitle.current = document.title;
|
|
221
223
|
if (!errored) {
|
|
222
|
-
dispatch({
|
|
224
|
+
dispatch({
|
|
225
|
+
channel: channel,
|
|
226
|
+
hasMore: hasMoreMessagesProbably(channel.state.messages.length, (_e = (_d = channelQueryOptions === null || channelQueryOptions === void 0 ? void 0 : channelQueryOptions.messages) === null || _d === void 0 ? void 0 : _d.limit) !== null && _e !== void 0 ? _e : DEFAULT_INITIAL_CHANNEL_PAGE_SIZE),
|
|
227
|
+
type: 'initStateFromChannel',
|
|
228
|
+
});
|
|
223
229
|
if (channel.countUnread() > 0)
|
|
224
230
|
markRead();
|
|
225
231
|
// The more complex sync logic is done in Chat
|
|
@@ -274,22 +280,17 @@ var ChannelInner = function (props) {
|
|
|
274
280
|
var loadMore = function (limit) {
|
|
275
281
|
if (limit === void 0) { limit = DEFAULT_NEXT_CHANNEL_PAGE_SIZE; }
|
|
276
282
|
return __awaiter(void 0, void 0, void 0, function () {
|
|
277
|
-
var oldestMessage,
|
|
283
|
+
var oldestMessage, oldestID, perPage, queryResponse, e_2, hasMoreMessages;
|
|
278
284
|
var _a;
|
|
279
285
|
return __generator(this, function (_b) {
|
|
280
286
|
switch (_b.label) {
|
|
281
287
|
case 0:
|
|
282
|
-
if (!online.current || !window.navigator.onLine)
|
|
288
|
+
if (!online.current || !window.navigator.onLine || !state.hasMore)
|
|
283
289
|
return [2 /*return*/, 0];
|
|
284
290
|
oldestMessage = (_a = state === null || state === void 0 ? void 0 : state.messages) === null || _a === void 0 ? void 0 : _a[0];
|
|
285
291
|
if (state.loadingMore || state.loadingMoreNewer || (oldestMessage === null || oldestMessage === void 0 ? void 0 : oldestMessage.status) !== 'received') {
|
|
286
292
|
return [2 /*return*/, 0];
|
|
287
293
|
}
|
|
288
|
-
notHasMore = hasNotMoreMessages(channel.state.messages.length, DEFAULT_INITIAL_CHANNEL_PAGE_SIZE);
|
|
289
|
-
if (notHasMore) {
|
|
290
|
-
loadMoreFinished(false, channel.state.messages);
|
|
291
|
-
return [2 /*return*/, channel.state.messages.length];
|
|
292
|
-
}
|
|
293
294
|
dispatch({ loadingMore: true, type: 'setLoadingMore' });
|
|
294
295
|
oldestID = oldestMessage === null || oldestMessage === void 0 ? void 0 : oldestMessage.id;
|
|
295
296
|
perPage = limit;
|
|
@@ -569,6 +570,7 @@ var ChannelInner = function (props) {
|
|
|
569
570
|
return __generator(this, function (_b) {
|
|
570
571
|
switch (_b.label) {
|
|
571
572
|
case 0:
|
|
573
|
+
// FIXME: should prevent loading more, if state.thread.reply_count === channel.state.threads[parentID].length
|
|
572
574
|
if (state.threadLoadingMore || !state.thread)
|
|
573
575
|
return [2 /*return*/];
|
|
574
576
|
dispatch({ type: 'startLoadingThread' });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"channelState.d.ts","sourceRoot":"","sources":["../../../src/components/Channel/channelState.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AACrC,OAAO,KAAK,EAAE,OAAO,EAAE,eAAe,EAAE,YAAY,IAAI,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAEhG,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC;AAErF,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAC;AAEnE,oBAAY,yBAAyB,CACnC,kBAAkB,SAAS,yBAAyB,GAAG,yBAAyB,IAE9E;IACE,IAAI,EAAE,aAAa,CAAC;CACrB,GACD;IACE,IAAI,EAAE,yBAAyB,CAAC;CACjC,GACD;IACE,OAAO,EAAE,OAAO,CAAC,kBAAkB,CAAC,CAAC;IACrC,IAAI,EAAE,yBAAyB,CAAC;IAChC,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B,GACD;IACE,OAAO,EAAE,OAAO,CAAC,kBAAkB,CAAC,CAAC;IACrC,IAAI,EAAE,6BAA6B,CAAC;CACrC,GACD;IACE,YAAY,EAAE,OAAO,CAAC;IACtB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,IAAI,EAAE,uBAAuB,CAAC;CAC/B,GACD;IACE,OAAO,EAAE,OAAO,CAAC,kBAAkB,CAAC,CAAC;IACrC,IAAI,EAAE,sBAAsB,CAAC;CAC9B,GACD;IACE,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,aAAa,CAAC,kBAAkB,CAAC,EAAE,CAAC;IAC9C,IAAI,EAAE,kBAAkB,CAAC;CAC1B,GACD;IACE,YAAY,EAAE,OAAO,CAAC;IACtB,QAAQ,EAAE,aAAa,CAAC,kBAAkB,CAAC,EAAE,CAAC;IAC9C,IAAI,EAAE,uBAAuB,CAAC;CAC/B,GACD;IACE,aAAa,EAAE,OAAO,CAAC;IACvB,cAAc,EAAE,KAAK,CAAC,UAAU,CAAC,kBAAkB,CAAC,kBAAkB,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;IAC3F,IAAI,EAAE,wBAAwB,CAAC;CAChC,GACD;IACE,OAAO,EAAE,OAAO,CAAC,kBAAkB,CAAC,CAAC;IACrC,OAAO,EAAE,aAAa,CAAC,kBAAkB,CAAC,CAAC;IAC3C,IAAI,EAAE,YAAY,CAAC;CACpB,GACD;IACE,KAAK,EAAE,KAAK,CAAC;IACb,IAAI,EAAE,UAAU,CAAC;CAClB,GACD;IACE,WAAW,EAAE,OAAO,CAAC;IACrB,IAAI,EAAE,gBAAgB,CAAC;CACxB,GACD;IACE,gBAAgB,EAAE,OAAO,CAAC;IAC1B,IAAI,EAAE,qBAAqB,CAAC;CAC7B,GACD;IACE,OAAO,EAAE,aAAa,CAAC,kBAAkB,CAAC,CAAC;IAC3C,IAAI,EAAE,WAAW,CAAC;CACnB,GACD;IACE,OAAO,EAAE,OAAO,CAAC,kBAAkB,CAAC,CAAC;IACrC,IAAI,EAAE,WAAW,CAAC;CACnB,GACD;IACE,IAAI,EAAE,oBAAoB,CAAC;CAC5B,GACD;IACE,OAAO,EAAE,OAAO,CAAC,kBAAkB,CAAC,CAAC;IACrC,OAAO,EAAE,eAAe,CAAC,kBAAkB,CAAC,CAAC;IAC7C,IAAI,EAAE,qBAAqB,CAAC;CAC7B,GACD;IACE,IAAI,EAAE,qBAAqB,CAAC;CAC7B,CAAC;AAEN,oBAAY,mBAAmB,CAC7B,kBAAkB,SAAS,yBAAyB,GAAG,yBAAyB,IAC9E,OAAO,CAAC,YAAY,CAAC,kBAAkB,CAAC,EAAE,yBAAyB,CAAC,kBAAkB,CAAC,CAAC,CAAC;AAE7F,eAAO,MAAM,cAAc,
|
|
1
|
+
{"version":3,"file":"channelState.d.ts","sourceRoot":"","sources":["../../../src/components/Channel/channelState.ts"],"names":[],"mappings":"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"}
|
|
@@ -18,8 +18,8 @@ export var channelReducer = function (state, action) {
|
|
|
18
18
|
return __assign(__assign({}, state), { members: __assign({}, channel.state.members), messages: __spreadArray([], channel.state.messages, true), pinnedMessages: __spreadArray([], channel.state.pinnedMessages, true), read: __assign({}, channel.state.read), watcherCount: channel.state.watcher_count, watchers: __assign({}, channel.state.watchers) });
|
|
19
19
|
}
|
|
20
20
|
case 'initStateFromChannel': {
|
|
21
|
-
var channel = action.channel;
|
|
22
|
-
return __assign(__assign({}, state), { loading: false, members: __assign({}, channel.state.members), messages: __spreadArray([], channel.state.messages, true), pinnedMessages: __spreadArray([], channel.state.pinnedMessages, true), read: __assign({}, channel.state.read), watcherCount: channel.state.watcher_count, watchers: __assign({}, channel.state.watchers) });
|
|
21
|
+
var channel = action.channel, hasMore = action.hasMore;
|
|
22
|
+
return __assign(__assign({}, state), { hasMore: hasMore, loading: false, members: __assign({}, channel.state.members), messages: __spreadArray([], channel.state.messages, true), pinnedMessages: __spreadArray([], channel.state.pinnedMessages, true), read: __assign({}, channel.state.read), watcherCount: channel.state.watcher_count, watchers: __assign({}, channel.state.watchers) });
|
|
23
23
|
}
|
|
24
24
|
case 'jumpToLatestMessage': {
|
|
25
25
|
return __assign(__assign({}, state), { hasMoreNewer: false, highlightedMessageId: undefined, loading: false, suppressAutoscroll: false });
|
|
@@ -31,6 +31,7 @@ export var InfiniteScroll = function (props) {
|
|
|
31
31
|
}
|
|
32
32
|
if (isLoading)
|
|
33
33
|
return;
|
|
34
|
+
// FIXME: this triggers loadMore call when a user types messages in thread and the scroll container container expands
|
|
34
35
|
if (reverseOffset < Number(threshold) &&
|
|
35
36
|
typeof loadPreviousPageFn === 'function' &&
|
|
36
37
|
hasPreviousPageFlag) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/components/MessageList/utils.ts"],"names":[],"mappings":";AAOA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAC;AAEnE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC;AAEvE,aAAK,qBAAqB,CACxB,kBAAkB,SAAS,yBAAyB,GAAG,yBAAyB,IAC9E;IACF,QAAQ,EAAE,aAAa,CAAC,kBAAkB,CAAC,EAAE,CAAC;IAC9C,MAAM,EAAE,MAAM,CAAC;IACf,4BAA4B;IAC5B,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,2EAA2E;IAC3E,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,kEAAkE;IAClE,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC,8DAA8D;IAC9D,QAAQ,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;IACvB,+FAA+F;IAC/F,sBAAsB,CAAC,EAAE,KAAK,CAAC,QAAQ,CACrC,KAAK,CAAC,cAAc,CAAC,aAAa,CAAC,kBAAkB,CAAC,GAAG,SAAS,CAAC,CACpE,CAAC;CACH,CAAC;AAEF;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,eAAe,8KAuF3B,CAAC;AAEF,eAAO,MAAM,iBAAiB,UAAW,MAAM,GAAG,IAAI,WAQrD,CAAC;AAGF,eAAO,MAAM,eAAe,oJAY3B,CAAC;AAEF,eAAO,MAAM,aAAa;eAIU,IAAI;;mCACnB,OAAO,uDAqC3B,CAAC;AAEF,eAAO,MAAM,WAAW,qJAIL,MAAM,wCAgDxB,CAAC;AAEF,oBAAY,UAAU,GAAG,EAAE,GAAG,QAAQ,GAAG,KAAK,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAErE,eAAO,MAAM,cAAc,oPAMV,OAAO,KACrB,UAyCF,CAAC;AAOF,eAAO,MAAM,uBAAuB,0BAA2B,MAAM,SAAS,MAAM,YACnD,CAAC;
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/components/MessageList/utils.ts"],"names":[],"mappings":";AAOA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAC;AAEnE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC;AAEvE,aAAK,qBAAqB,CACxB,kBAAkB,SAAS,yBAAyB,GAAG,yBAAyB,IAC9E;IACF,QAAQ,EAAE,aAAa,CAAC,kBAAkB,CAAC,EAAE,CAAC;IAC9C,MAAM,EAAE,MAAM,CAAC;IACf,4BAA4B;IAC5B,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,2EAA2E;IAC3E,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,kEAAkE;IAClE,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC,8DAA8D;IAC9D,QAAQ,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;IACvB,+FAA+F;IAC/F,sBAAsB,CAAC,EAAE,KAAK,CAAC,QAAQ,CACrC,KAAK,CAAC,cAAc,CAAC,aAAa,CAAC,kBAAkB,CAAC,GAAG,SAAS,CAAC,CACpE,CAAC;CACH,CAAC;AAEF;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,eAAe,8KAuF3B,CAAC;AAEF,eAAO,MAAM,iBAAiB,UAAW,MAAM,GAAG,IAAI,WAQrD,CAAC;AAGF,eAAO,MAAM,eAAe,oJAY3B,CAAC;AAEF,eAAO,MAAM,aAAa;eAIU,IAAI;;mCACnB,OAAO,uDAqC3B,CAAC;AAEF,eAAO,MAAM,WAAW,qJAIL,MAAM,wCAgDxB,CAAC;AAEF,oBAAY,UAAU,GAAG,EAAE,GAAG,QAAQ,GAAG,KAAK,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAErE,eAAO,MAAM,cAAc,oPAMV,OAAO,KACrB,UAyCF,CAAC;AAOF,eAAO,MAAM,uBAAuB,0BAA2B,MAAM,SAAS,MAAM,YACnD,CAAC;AAGlC,eAAO,MAAM,kBAAkB,0BAA2B,MAAM,SAAS,MAAM,YAChD,CAAC"}
|
|
@@ -219,6 +219,7 @@ export var getGroupStyles = function (message, previousMessage, nextMessage, noG
|
|
|
219
219
|
export var hasMoreMessagesProbably = function (returnedCountMessages, limit) {
|
|
220
220
|
return returnedCountMessages === limit;
|
|
221
221
|
};
|
|
222
|
+
// @deprecated
|
|
222
223
|
export var hasNotMoreMessages = function (returnedCountMessages, limit) {
|
|
223
224
|
return returnedCountMessages < limit;
|
|
224
225
|
};
|
|
@@ -31,6 +31,7 @@ var ThreadInner = function (props) {
|
|
|
31
31
|
var ThreadMessageList = virtualized ? VirtualizedMessageList : MessageList;
|
|
32
32
|
useEffect(function () {
|
|
33
33
|
if ((thread === null || thread === void 0 ? void 0 : thread.id) && (thread === null || thread === void 0 ? void 0 : thread.reply_count)) {
|
|
34
|
+
// FIXME: integrators can customize channel query options but cannot customize channel.getReplies() options
|
|
34
35
|
loadMoreThread();
|
|
35
36
|
}
|
|
36
37
|
}, []);
|
package/dist/index.cjs.js
CHANGED
|
@@ -27341,8 +27341,8 @@ var channelReducer = function (state, action) {
|
|
|
27341
27341
|
return __assign(__assign({}, state), { members: __assign({}, channel.state.members), messages: __spreadArray([], channel.state.messages, true), pinnedMessages: __spreadArray([], channel.state.pinnedMessages, true), read: __assign({}, channel.state.read), watcherCount: channel.state.watcher_count, watchers: __assign({}, channel.state.watchers) });
|
|
27342
27342
|
}
|
|
27343
27343
|
case 'initStateFromChannel': {
|
|
27344
|
-
var channel = action.channel;
|
|
27345
|
-
return __assign(__assign({}, state), { loading: false, members: __assign({}, channel.state.members), messages: __spreadArray([], channel.state.messages, true), pinnedMessages: __spreadArray([], channel.state.pinnedMessages, true), read: __assign({}, channel.state.read), watcherCount: channel.state.watcher_count, watchers: __assign({}, channel.state.watchers) });
|
|
27344
|
+
var channel = action.channel, hasMore = action.hasMore;
|
|
27345
|
+
return __assign(__assign({}, state), { hasMore: hasMore, loading: false, members: __assign({}, channel.state.members), messages: __spreadArray([], channel.state.messages, true), pinnedMessages: __spreadArray([], channel.state.pinnedMessages, true), read: __assign({}, channel.state.read), watcherCount: channel.state.watcher_count, watchers: __assign({}, channel.state.watchers) });
|
|
27346
27346
|
}
|
|
27347
27347
|
case 'jumpToLatestMessage': {
|
|
27348
27348
|
return __assign(__assign({}, state), { hasMoreNewer: false, highlightedMessageId: undefined, loading: false, suppressAutoscroll: false });
|
|
@@ -32965,6 +32965,7 @@ var getGroupStyles = function (message, previousMessage, nextMessage, noGroupByU
|
|
|
32965
32965
|
var hasMoreMessagesProbably = function (returnedCountMessages, limit) {
|
|
32966
32966
|
return returnedCountMessages === limit;
|
|
32967
32967
|
};
|
|
32968
|
+
// @deprecated
|
|
32968
32969
|
var hasNotMoreMessages = function (returnedCountMessages, limit) {
|
|
32969
32970
|
return returnedCountMessages < limit;
|
|
32970
32971
|
};
|
|
@@ -33260,6 +33261,7 @@ var ChannelInner = function (props) {
|
|
|
33260
33261
|
/**
|
|
33261
33262
|
* As the channel state is not normalized we re-fetch the channel data. Thus, we avoid having to search for user references in the channel state.
|
|
33262
33263
|
*/
|
|
33264
|
+
// FIXME: we should use channelQueryOptions if they are available
|
|
33263
33265
|
return [4 /*yield*/, channel.query({
|
|
33264
33266
|
messages: { id_lt: oldestID, limit: DEFAULT_NEXT_CHANNEL_PAGE_SIZE },
|
|
33265
33267
|
watchers: { limit: DEFAULT_NEXT_CHANNEL_PAGE_SIZE },
|
|
@@ -33268,6 +33270,7 @@ var ChannelInner = function (props) {
|
|
|
33268
33270
|
/**
|
|
33269
33271
|
* As the channel state is not normalized we re-fetch the channel data. Thus, we avoid having to search for user references in the channel state.
|
|
33270
33272
|
*/
|
|
33273
|
+
// FIXME: we should use channelQueryOptions if they are available
|
|
33271
33274
|
_m.sent();
|
|
33272
33275
|
_m.label = 2;
|
|
33273
33276
|
case 2:
|
|
@@ -33286,14 +33289,14 @@ var ChannelInner = function (props) {
|
|
|
33286
33289
|
};
|
|
33287
33290
|
(function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
33288
33291
|
var members, _i, _a, member, userId, _b, user, user_id, config, e_1;
|
|
33289
|
-
var _c;
|
|
33290
|
-
return __generator(this, function (
|
|
33291
|
-
switch (
|
|
33292
|
+
var _c, _d, _e;
|
|
33293
|
+
return __generator(this, function (_f) {
|
|
33294
|
+
switch (_f.label) {
|
|
33292
33295
|
case 0:
|
|
33293
33296
|
if (!(!channel.initialized && initializeOnMount)) return [3 /*break*/, 4];
|
|
33294
|
-
|
|
33297
|
+
_f.label = 1;
|
|
33295
33298
|
case 1:
|
|
33296
|
-
|
|
33299
|
+
_f.trys.push([1, 3, , 4]);
|
|
33297
33300
|
members = [];
|
|
33298
33301
|
if (!channel.id && ((_c = channel.data) === null || _c === void 0 ? void 0 : _c.members)) {
|
|
33299
33302
|
for (_i = 0, _a = channel.data.members; _i < _a.length; _i++) {
|
|
@@ -33313,12 +33316,12 @@ var ChannelInner = function (props) {
|
|
|
33313
33316
|
}
|
|
33314
33317
|
return [4 /*yield*/, getChannel({ channel: channel, client: client, members: members, options: channelQueryOptions })];
|
|
33315
33318
|
case 2:
|
|
33316
|
-
|
|
33319
|
+
_f.sent();
|
|
33317
33320
|
config = channel.getConfig();
|
|
33318
33321
|
setChannelConfig(config);
|
|
33319
33322
|
return [3 /*break*/, 4];
|
|
33320
33323
|
case 3:
|
|
33321
|
-
e_1 =
|
|
33324
|
+
e_1 = _f.sent();
|
|
33322
33325
|
dispatch({ error: e_1, type: 'setError' });
|
|
33323
33326
|
errored = true;
|
|
33324
33327
|
return [3 /*break*/, 4];
|
|
@@ -33326,7 +33329,11 @@ var ChannelInner = function (props) {
|
|
|
33326
33329
|
done = true;
|
|
33327
33330
|
originalTitle.current = document.title;
|
|
33328
33331
|
if (!errored) {
|
|
33329
|
-
dispatch({
|
|
33332
|
+
dispatch({
|
|
33333
|
+
channel: channel,
|
|
33334
|
+
hasMore: hasMoreMessagesProbably(channel.state.messages.length, (_e = (_d = channelQueryOptions === null || channelQueryOptions === void 0 ? void 0 : channelQueryOptions.messages) === null || _d === void 0 ? void 0 : _d.limit) !== null && _e !== void 0 ? _e : DEFAULT_INITIAL_CHANNEL_PAGE_SIZE),
|
|
33335
|
+
type: 'initStateFromChannel',
|
|
33336
|
+
});
|
|
33330
33337
|
if (channel.countUnread() > 0)
|
|
33331
33338
|
markRead();
|
|
33332
33339
|
// The more complex sync logic is done in Chat
|
|
@@ -33381,22 +33388,17 @@ var ChannelInner = function (props) {
|
|
|
33381
33388
|
var loadMore = function (limit) {
|
|
33382
33389
|
if (limit === void 0) { limit = DEFAULT_NEXT_CHANNEL_PAGE_SIZE; }
|
|
33383
33390
|
return __awaiter(void 0, void 0, void 0, function () {
|
|
33384
|
-
var oldestMessage,
|
|
33391
|
+
var oldestMessage, oldestID, perPage, queryResponse, e_2, hasMoreMessages;
|
|
33385
33392
|
var _a;
|
|
33386
33393
|
return __generator(this, function (_b) {
|
|
33387
33394
|
switch (_b.label) {
|
|
33388
33395
|
case 0:
|
|
33389
|
-
if (!online.current || !window.navigator.onLine)
|
|
33396
|
+
if (!online.current || !window.navigator.onLine || !state.hasMore)
|
|
33390
33397
|
return [2 /*return*/, 0];
|
|
33391
33398
|
oldestMessage = (_a = state === null || state === void 0 ? void 0 : state.messages) === null || _a === void 0 ? void 0 : _a[0];
|
|
33392
33399
|
if (state.loadingMore || state.loadingMoreNewer || (oldestMessage === null || oldestMessage === void 0 ? void 0 : oldestMessage.status) !== 'received') {
|
|
33393
33400
|
return [2 /*return*/, 0];
|
|
33394
33401
|
}
|
|
33395
|
-
notHasMore = hasNotMoreMessages(channel.state.messages.length, DEFAULT_INITIAL_CHANNEL_PAGE_SIZE);
|
|
33396
|
-
if (notHasMore) {
|
|
33397
|
-
loadMoreFinished(false, channel.state.messages);
|
|
33398
|
-
return [2 /*return*/, channel.state.messages.length];
|
|
33399
|
-
}
|
|
33400
33402
|
dispatch({ loadingMore: true, type: 'setLoadingMore' });
|
|
33401
33403
|
oldestID = oldestMessage === null || oldestMessage === void 0 ? void 0 : oldestMessage.id;
|
|
33402
33404
|
perPage = limit;
|
|
@@ -33676,6 +33678,7 @@ var ChannelInner = function (props) {
|
|
|
33676
33678
|
return __generator(this, function (_b) {
|
|
33677
33679
|
switch (_b.label) {
|
|
33678
33680
|
case 0:
|
|
33681
|
+
// FIXME: should prevent loading more, if state.thread.reply_count === channel.state.threads[parentID].length
|
|
33679
33682
|
if (state.threadLoadingMore || !state.thread)
|
|
33680
33683
|
return [2 /*return*/];
|
|
33681
33684
|
dispatch({ type: 'startLoadingThread' });
|
|
@@ -35116,7 +35119,7 @@ var UnMemoizedChannelList = function (props) {
|
|
|
35116
35119
|
*/
|
|
35117
35120
|
var ChannelList = React__default["default"].memo(UnMemoizedChannelList);
|
|
35118
35121
|
|
|
35119
|
-
var version = '10.20.
|
|
35122
|
+
var version = '10.20.1';
|
|
35120
35123
|
|
|
35121
35124
|
var useChat = function (_a) {
|
|
35122
35125
|
var _b, _c;
|
|
@@ -35423,6 +35426,7 @@ var InfiniteScroll = function (props) {
|
|
|
35423
35426
|
}
|
|
35424
35427
|
if (isLoading)
|
|
35425
35428
|
return;
|
|
35429
|
+
// FIXME: this triggers loadMore call when a user types messages in thread and the scroll container container expands
|
|
35426
35430
|
if (reverseOffset < Number(threshold) &&
|
|
35427
35431
|
typeof loadPreviousPageFn === 'function' &&
|
|
35428
35432
|
hasPreviousPageFlag) {
|
|
@@ -37171,6 +37175,7 @@ var ThreadInner = function (props) {
|
|
|
37171
37175
|
var ThreadMessageList = virtualized ? VirtualizedMessageList : MessageList;
|
|
37172
37176
|
React.useEffect(function () {
|
|
37173
37177
|
if ((thread === null || thread === void 0 ? void 0 : thread.id) && (thread === null || thread === void 0 ? void 0 : thread.reply_count)) {
|
|
37178
|
+
// FIXME: integrators can customize channel query options but cannot customize channel.getReplies() options
|
|
37174
37179
|
loadMoreThread();
|
|
37175
37180
|
}
|
|
37176
37181
|
}, []);
|