stream-chat-react 11.6.0 → 11.7.0
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 +80 -54
- package/dist/browser.full-bundle.js.map +1 -1
- package/dist/browser.full-bundle.min.js +1 -1
- package/dist/browser.full-bundle.min.js.map +1 -1
- package/dist/components/ChannelList/ChannelList.d.ts +3 -0
- package/dist/components/ChannelList/ChannelList.d.ts.map +1 -1
- package/dist/components/ChannelList/ChannelList.js +2 -2
- package/dist/components/ChannelList/hooks/usePaginatedChannels.d.ts +12 -1
- package/dist/components/ChannelList/hooks/usePaginatedChannels.d.ts.map +1 -1
- package/dist/components/ChannelList/hooks/usePaginatedChannels.js +55 -43
- package/dist/components/Chat/hooks/useChannelsQueryState.d.ts +2 -2
- package/dist/components/Chat/hooks/useChannelsQueryState.d.ts.map +1 -1
- package/dist/components/MessageList/MessageList.d.ts.map +1 -1
- package/dist/components/MessageList/MessageList.js +4 -3
- package/dist/components/MessageList/hooks/MessageList/useScrollLocationLogic.d.ts.map +1 -1
- package/dist/components/MessageList/hooks/MessageList/useScrollLocationLogic.js +0 -2
- package/dist/components/MessageList/hooks/MessageList/useUnreadMessagesNotification.d.ts +2 -1
- package/dist/components/MessageList/hooks/MessageList/useUnreadMessagesNotification.d.ts.map +1 -1
- package/dist/components/MessageList/hooks/MessageList/useUnreadMessagesNotification.js +19 -4
- package/dist/index.cjs.js +80 -54
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +1 -1
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { ChannelListMessengerProps } from './ChannelListMessenger';
|
|
3
|
+
import { CustomQueryChannelsFn } from './hooks/usePaginatedChannels';
|
|
3
4
|
import { AvatarProps } from '../Avatar/Avatar';
|
|
4
5
|
import { ChannelPreviewUIComponentProps } from '../ChannelPreview/ChannelPreview';
|
|
5
6
|
import { ChannelSearchProps } from '../ChannelSearch/ChannelSearch';
|
|
@@ -26,6 +27,8 @@ export type ChannelListProps<StreamChatGenerics extends DefaultStreamChatGeneric
|
|
|
26
27
|
ChannelSearch?: React.ComponentType<ChannelSearchProps<StreamChatGenerics>>;
|
|
27
28
|
/** Set a channel (with this ID) to active and manually move it to the top of the list */
|
|
28
29
|
customActiveChannel?: string;
|
|
30
|
+
/** Custom function that handles the channel pagination. Has to build query filters, sort and options and query and append channels to the current channels state and update the hasNext pagination flag after each query. */
|
|
31
|
+
customQueryChannels?: CustomQueryChannelsFn<StreamChatGenerics>;
|
|
29
32
|
/** Custom UI component for rendering an empty list, defaults to and accepts same props as: [EmptyStateIndicator](https://github.com/GetStream/stream-chat-react/blob/master/src/components/EmptyStateIndicator/EmptyStateIndicator.tsx) */
|
|
30
33
|
EmptyStateIndicator?: React.ComponentType<EmptyStateIndicatorProps>;
|
|
31
34
|
/** An object containing channel query filters */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChannelList.d.ts","sourceRoot":"","sources":["../../../src/components/ChannelList/ChannelList.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmD,MAAM,OAAO,CAAC;AAGxE,OAAO,EAAwB,yBAAyB,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"ChannelList.d.ts","sourceRoot":"","sources":["../../../src/components/ChannelList/ChannelList.tsx"],"names":[],"mappings":"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"}
|
|
@@ -30,7 +30,7 @@ var DEFAULT_OPTIONS = {};
|
|
|
30
30
|
var DEFAULT_SORT = {};
|
|
31
31
|
var UnMemoizedChannelList = function (props) {
|
|
32
32
|
var _a, _b;
|
|
33
|
-
var additionalChannelSearchProps = props.additionalChannelSearchProps, _c = props.Avatar, Avatar = _c === void 0 ? DefaultAvatar : _c, allowNewMessagesFromUnfilteredChannels = props.allowNewMessagesFromUnfilteredChannels, channelRenderFilterFn = props.channelRenderFilterFn, _d = props.ChannelSearch, ChannelSearch = _d === void 0 ? DefaultChannelSearch : _d, customActiveChannel = props.customActiveChannel, _e = props.EmptyStateIndicator, EmptyStateIndicator = _e === void 0 ? DefaultEmptyStateIndicator : _e, filters = props.filters, _f = props.LoadingErrorIndicator, LoadingErrorIndicator = _f === void 0 ? ChatDown : _f, _g = props.LoadingIndicator, LoadingIndicator = _g === void 0 ? LoadingChannels : _g, _h = props.List, List = _h === void 0 ? ChannelListMessenger : _h, lockChannelOrder = props.lockChannelOrder, onAddedToChannel = props.onAddedToChannel, onChannelDeleted = props.onChannelDeleted, onChannelHidden = props.onChannelHidden, onChannelTruncated = props.onChannelTruncated, onChannelUpdated = props.onChannelUpdated, onChannelVisible = props.onChannelVisible, onMessageNew = props.onMessageNew, onMessageNewHandler = props.onMessageNewHandler, onRemovedFromChannel = props.onRemovedFromChannel, options = props.options, _j = props.Paginator, Paginator = _j === void 0 ? LoadMorePaginator : _j, Preview = props.Preview, recoveryThrottleIntervalMs = props.recoveryThrottleIntervalMs, renderChannels = props.renderChannels, _k = props.sendChannelsToList, sendChannelsToList = _k === void 0 ? false : _k, _l = props.setActiveChannelOnMount, setActiveChannelOnMount = _l === void 0 ? true : _l, _m = props.showChannelSearch, showChannelSearch = _m === void 0 ? false : _m, _o = props.sort, sort = _o === void 0 ? DEFAULT_SORT : _o, _p = props.watchers, watchers = _p === void 0 ? {} : _p;
|
|
33
|
+
var additionalChannelSearchProps = props.additionalChannelSearchProps, _c = props.Avatar, Avatar = _c === void 0 ? DefaultAvatar : _c, allowNewMessagesFromUnfilteredChannels = props.allowNewMessagesFromUnfilteredChannels, channelRenderFilterFn = props.channelRenderFilterFn, _d = props.ChannelSearch, ChannelSearch = _d === void 0 ? DefaultChannelSearch : _d, customActiveChannel = props.customActiveChannel, customQueryChannels = props.customQueryChannels, _e = props.EmptyStateIndicator, EmptyStateIndicator = _e === void 0 ? DefaultEmptyStateIndicator : _e, filters = props.filters, _f = props.LoadingErrorIndicator, LoadingErrorIndicator = _f === void 0 ? ChatDown : _f, _g = props.LoadingIndicator, LoadingIndicator = _g === void 0 ? LoadingChannels : _g, _h = props.List, List = _h === void 0 ? ChannelListMessenger : _h, lockChannelOrder = props.lockChannelOrder, onAddedToChannel = props.onAddedToChannel, onChannelDeleted = props.onChannelDeleted, onChannelHidden = props.onChannelHidden, onChannelTruncated = props.onChannelTruncated, onChannelUpdated = props.onChannelUpdated, onChannelVisible = props.onChannelVisible, onMessageNew = props.onMessageNew, onMessageNewHandler = props.onMessageNewHandler, onRemovedFromChannel = props.onRemovedFromChannel, options = props.options, _j = props.Paginator, Paginator = _j === void 0 ? LoadMorePaginator : _j, Preview = props.Preview, recoveryThrottleIntervalMs = props.recoveryThrottleIntervalMs, renderChannels = props.renderChannels, _k = props.sendChannelsToList, sendChannelsToList = _k === void 0 ? false : _k, _l = props.setActiveChannelOnMount, setActiveChannelOnMount = _l === void 0 ? true : _l, _m = props.showChannelSearch, showChannelSearch = _m === void 0 ? false : _m, _o = props.sort, sort = _o === void 0 ? DEFAULT_SORT : _o, _p = props.watchers, watchers = _p === void 0 ? {} : _p;
|
|
34
34
|
var _q = useChatContext('ChannelList'), channel = _q.channel, channelsQueryState = _q.channelsQueryState, client = _q.client, closeMobileNav = _q.closeMobileNav, customClasses = _q.customClasses, _r = _q.navOpen, navOpen = _r === void 0 ? false : _r, setActiveChannel = _q.setActiveChannel, theme = _q.theme, useImageFlagEmojisOnWindows = _q.useImageFlagEmojisOnWindows;
|
|
35
35
|
var channelListRef = useRef(null);
|
|
36
36
|
var _s = useState(0), channelUpdateCount = _s[0], setChannelUpdateCount = _s[1];
|
|
@@ -96,7 +96,7 @@ var UnMemoizedChannelList = function (props) {
|
|
|
96
96
|
(_a = additionalChannelSearchProps === null || additionalChannelSearchProps === void 0 ? void 0 : additionalChannelSearchProps.onSearchExit) === null || _a === void 0 ? void 0 : _a.call(additionalChannelSearchProps);
|
|
97
97
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
98
98
|
}, []);
|
|
99
|
-
var _u = usePaginatedChannels(client, filters || DEFAULT_FILTERS, sort || DEFAULT_SORT, options || DEFAULT_OPTIONS, activeChannelHandler, recoveryThrottleIntervalMs), channels = _u.channels, hasNextPage = _u.hasNextPage, loadNextPage = _u.loadNextPage, setChannels = _u.setChannels;
|
|
99
|
+
var _u = usePaginatedChannels(client, filters || DEFAULT_FILTERS, sort || DEFAULT_SORT, options || DEFAULT_OPTIONS, activeChannelHandler, recoveryThrottleIntervalMs, customQueryChannels), channels = _u.channels, hasNextPage = _u.hasNextPage, loadNextPage = _u.loadNextPage, setChannels = _u.setChannels;
|
|
100
100
|
var loadedChannels = channelRenderFilterFn ? channelRenderFilterFn(channels) : channels;
|
|
101
101
|
useMobileNavigation(channelListRef, navOpen, closeMobileNav);
|
|
102
102
|
useMessageNewListener(setChannels, onMessageNewHandler, lockChannelOrder, allowNewMessagesFromUnfilteredChannels);
|
|
@@ -1,9 +1,20 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
1
2
|
import type { Channel, ChannelFilters, ChannelOptions, ChannelSort, StreamChat } from 'stream-chat';
|
|
2
3
|
import type { DefaultStreamChatGenerics } from '../../../types/types';
|
|
3
|
-
|
|
4
|
+
import type { ChannelsQueryState } from '../../Chat/hooks/useChannelsQueryState';
|
|
5
|
+
type AllowedQueryType = Extract<ChannelsQueryState['queryInProgress'], 'reload' | 'load-more'>;
|
|
6
|
+
export type CustomQueryChannelParams<StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics> = {
|
|
7
|
+
currentChannels: Array<Channel<StreamChatGenerics>>;
|
|
8
|
+
queryType: AllowedQueryType;
|
|
9
|
+
setChannels: React.Dispatch<React.SetStateAction<Array<Channel<StreamChatGenerics>>>>;
|
|
10
|
+
setHasNextPage: React.Dispatch<React.SetStateAction<boolean>>;
|
|
11
|
+
};
|
|
12
|
+
export type CustomQueryChannelsFn<StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics> = (params: CustomQueryChannelParams<StreamChatGenerics>) => Promise<void>;
|
|
13
|
+
export declare const usePaginatedChannels: <StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics>(client: StreamChat<StreamChatGenerics>, filters: ChannelFilters<StreamChatGenerics>, sort: ChannelSort<StreamChatGenerics>, options: ChannelOptions, activeChannelHandler: (channels: Channel<StreamChatGenerics>[], setChannels: import("react").Dispatch<import("react").SetStateAction<Channel<StreamChatGenerics>[]>>) => void, recoveryThrottleIntervalMs?: number, customQueryChannels?: CustomQueryChannelsFn<StreamChatGenerics> | undefined) => {
|
|
4
14
|
channels: Channel<StreamChatGenerics>[];
|
|
5
15
|
hasNextPage: boolean;
|
|
6
16
|
loadNextPage: () => void;
|
|
7
17
|
setChannels: import("react").Dispatch<import("react").SetStateAction<Channel<StreamChatGenerics>[]>>;
|
|
8
18
|
};
|
|
19
|
+
export {};
|
|
9
20
|
//# sourceMappingURL=usePaginatedChannels.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"usePaginatedChannels.d.ts","sourceRoot":"","sources":["../../../../src/components/ChannelList/hooks/usePaginatedChannels.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAIpG,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"usePaginatedChannels.d.ts","sourceRoot":"","sources":["../../../../src/components/ChannelList/hooks/usePaginatedChannels.ts"],"names":[],"mappings":";AAKA,OAAO,KAAK,EAAE,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAIpG,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAC;AACtE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,wCAAwC,CAAC;AAKjF,KAAK,gBAAgB,GAAG,OAAO,CAAC,kBAAkB,CAAC,iBAAiB,CAAC,EAAE,QAAQ,GAAG,WAAW,CAAC,CAAC;AAE/F,MAAM,MAAM,wBAAwB,CAClC,kBAAkB,SAAS,yBAAyB,GAAG,yBAAyB,IAC9E;IACF,eAAe,EAAE,KAAK,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC,CAAC;IACpD,SAAS,EAAE,gBAAgB,CAAC;IAC5B,WAAW,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC;IACtF,cAAc,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC;CAC/D,CAAC;AAEF,MAAM,MAAM,qBAAqB,CAC/B,kBAAkB,SAAS,yBAAyB,GAAG,yBAAyB,IAC9E,CAAC,MAAM,EAAE,wBAAwB,CAAC,kBAAkB,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;AAE5E,eAAO,MAAM,oBAAoB,0NAMtB,cAAc,2KAIlB,IAAI,+BACmB,MAAM;;;;;CA4GnC,CAAC"}
|
|
@@ -5,7 +5,7 @@ import { MAX_QUERY_CHANNELS_LIMIT } from '../utils';
|
|
|
5
5
|
import { useChatContext } from '../../../context/ChatContext';
|
|
6
6
|
var RECOVER_LOADED_CHANNELS_THROTTLE_INTERVAL_IN_MS = 5000;
|
|
7
7
|
var MIN_RECOVER_LOADED_CHANNELS_THROTTLE_INTERVAL_IN_MS = 2000;
|
|
8
|
-
export var usePaginatedChannels = function (client, filters, sort, options, activeChannelHandler, recoveryThrottleIntervalMs) {
|
|
8
|
+
export var usePaginatedChannels = function (client, filters, sort, options, activeChannelHandler, recoveryThrottleIntervalMs, customQueryChannels) {
|
|
9
9
|
if (recoveryThrottleIntervalMs === void 0) { recoveryThrottleIntervalMs = RECOVER_LOADED_CHANNELS_THROTTLE_INTERVAL_IN_MS; }
|
|
10
10
|
var _a = useChatContext('usePaginatedChannels').channelsQueryState, error = _a.error, setError = _a.setError, setQueryInProgress = _a.setQueryInProgress;
|
|
11
11
|
var _b = useState([]), channels = _b[0], setChannels = _b[1];
|
|
@@ -20,49 +20,61 @@ export var usePaginatedChannels = function (client, filters, sort, options, acti
|
|
|
20
20
|
var filterString = useMemo(function () { return JSON.stringify(filters); }, [filters]);
|
|
21
21
|
var sortString = useMemo(function () { return JSON.stringify(sort); }, [sort]);
|
|
22
22
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
23
|
-
var queryChannels = function (queryType) {
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
setQueryInProgress(
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
23
|
+
var queryChannels = function (queryType) {
|
|
24
|
+
if (queryType === void 0) { queryType = 'load-more'; }
|
|
25
|
+
return __awaiter(void 0, void 0, void 0, function () {
|
|
26
|
+
var offset, newOptions, channelQueryResponse, newChannels, err_1;
|
|
27
|
+
var _a;
|
|
28
|
+
return __generator(this, function (_b) {
|
|
29
|
+
switch (_b.label) {
|
|
30
|
+
case 0:
|
|
31
|
+
setError(null);
|
|
32
|
+
if (queryType === 'reload') {
|
|
33
|
+
setChannels([]);
|
|
34
|
+
}
|
|
35
|
+
setQueryInProgress(queryType);
|
|
36
|
+
_b.label = 1;
|
|
37
|
+
case 1:
|
|
38
|
+
_b.trys.push([1, 6, , 7]);
|
|
39
|
+
if (!customQueryChannels) return [3 /*break*/, 3];
|
|
40
|
+
return [4 /*yield*/, customQueryChannels({
|
|
41
|
+
currentChannels: channels,
|
|
42
|
+
queryType: queryType,
|
|
43
|
+
setChannels: setChannels,
|
|
44
|
+
setHasNextPage: setHasNextPage,
|
|
45
|
+
})];
|
|
46
|
+
case 2:
|
|
47
|
+
_b.sent();
|
|
48
|
+
return [3 /*break*/, 5];
|
|
49
|
+
case 3:
|
|
50
|
+
offset = queryType === 'reload' ? 0 : channels.length;
|
|
51
|
+
newOptions = __assign({ limit: (_a = options === null || options === void 0 ? void 0 : options.limit) !== null && _a !== void 0 ? _a : MAX_QUERY_CHANNELS_LIMIT, offset: offset }, options);
|
|
52
|
+
return [4 /*yield*/, client.queryChannels(filters, sort || {}, newOptions)];
|
|
53
|
+
case 4:
|
|
54
|
+
channelQueryResponse = _b.sent();
|
|
55
|
+
newChannels = queryType === 'reload'
|
|
56
|
+
? channelQueryResponse
|
|
57
|
+
: uniqBy(__spreadArray(__spreadArray([], channels, true), channelQueryResponse, true), 'cid');
|
|
58
|
+
setChannels(newChannels);
|
|
59
|
+
setHasNextPage(channelQueryResponse.length >= newOptions.limit);
|
|
60
|
+
// Set active channel only on load of first page
|
|
61
|
+
if (!offset && activeChannelHandler) {
|
|
62
|
+
activeChannelHandler(newChannels, setChannels);
|
|
63
|
+
}
|
|
64
|
+
_b.label = 5;
|
|
65
|
+
case 5: return [3 /*break*/, 7];
|
|
66
|
+
case 6:
|
|
67
|
+
err_1 = _b.sent();
|
|
68
|
+
console.warn(err_1);
|
|
69
|
+
setError(err_1);
|
|
70
|
+
return [3 /*break*/, 7];
|
|
71
|
+
case 7:
|
|
72
|
+
setQueryInProgress(null);
|
|
73
|
+
return [2 /*return*/];
|
|
74
|
+
}
|
|
75
|
+
});
|
|
64
76
|
});
|
|
65
|
-
}
|
|
77
|
+
};
|
|
66
78
|
var throttleRecover = useCallback(function () {
|
|
67
79
|
var now = Date.now();
|
|
68
80
|
var isFirstRecovery = !lastRecoveryTimestamp.current;
|
|
@@ -3,9 +3,9 @@ import type { APIErrorResponse, ErrorFromResponse } from 'stream-chat';
|
|
|
3
3
|
type ChannelQueryState = 'uninitialized' | 'reload' | 'load-more' | null;
|
|
4
4
|
export interface ChannelsQueryState {
|
|
5
5
|
error: ErrorFromResponse<APIErrorResponse> | null;
|
|
6
|
-
queryInProgress: ChannelQueryState
|
|
6
|
+
queryInProgress: ChannelQueryState;
|
|
7
7
|
setError: Dispatch<SetStateAction<ErrorFromResponse<APIErrorResponse> | null>>;
|
|
8
|
-
setQueryInProgress: Dispatch<SetStateAction<ChannelQueryState
|
|
8
|
+
setQueryInProgress: Dispatch<SetStateAction<ChannelQueryState>>;
|
|
9
9
|
}
|
|
10
10
|
export declare const useChannelsQueryState: () => ChannelsQueryState;
|
|
11
11
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useChannelsQueryState.d.ts","sourceRoot":"","sources":["../../../../src/components/Chat/hooks/useChannelsQueryState.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAY,MAAM,OAAO,CAAC;AAC3D,OAAO,KAAK,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAEvE,KAAK,iBAAiB,GAClB,eAAe,GACf,QAAQ,GACR,WAAW,GACX,IAAI,CAAC;AAET,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,iBAAiB,CAAC,gBAAgB,CAAC,GAAG,IAAI,CAAC;IAClD,eAAe,EAAE,iBAAiB,
|
|
1
|
+
{"version":3,"file":"useChannelsQueryState.d.ts","sourceRoot":"","sources":["../../../../src/components/Chat/hooks/useChannelsQueryState.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAY,MAAM,OAAO,CAAC;AAC3D,OAAO,KAAK,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAEvE,KAAK,iBAAiB,GAClB,eAAe,GACf,QAAQ,GACR,WAAW,GACX,IAAI,CAAC;AAET,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,iBAAiB,CAAC,gBAAgB,CAAC,GAAG,IAAI,CAAC;IAClD,eAAe,EAAE,iBAAiB,CAAC;IACnC,QAAQ,EAAE,QAAQ,CAAC,cAAc,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;IAC/E,kBAAkB,EAAE,QAAQ,CAAC,cAAc,CAAC,iBAAiB,CAAC,CAAC,CAAC;CACjE;AAED,eAAO,MAAM,qBAAqB,QAAO,kBAUxC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MessageList.d.ts","sourceRoot":"","sources":["../../../src/components/MessageList/MessageList.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAc1B,OAAO,EACL,yBAAyB,EAE1B,MAAM,oCAAoC,CAAC;AAS5C,OAAO,EAAkB,mBAAmB,EAAE,MAAM,2CAA2C,CAAC;AAMhG,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAC1C,OAAO,EAAyB,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAE1E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAErD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC;AAEvE,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"MessageList.d.ts","sourceRoot":"","sources":["../../../src/components/MessageList/MessageList.tsx"],"names":[],"mappings":"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"}
|
|
@@ -28,9 +28,6 @@ var MessageListWithContext = function (props) {
|
|
|
28
28
|
var _u = useComponentContext('MessageList'), _v = _u.EmptyStateIndicator, EmptyStateIndicator = _v === void 0 ? DefaultEmptyStateIndicator : _v, _w = _u.LoadingIndicator, LoadingIndicator = _w === void 0 ? DefaultLoadingIndicator : _w, _x = _u.MessageListNotifications, MessageListNotifications = _x === void 0 ? DefaultMessageListNotifications : _x, _y = _u.MessageNotification, MessageNotification = _y === void 0 ? DefaultMessageNotification : _y, _z = _u.TypingIndicator, TypingIndicator = _z === void 0 ? DefaultTypingIndicator : _z, _0 = _u.UnreadMessagesNotification, UnreadMessagesNotification = _0 === void 0 ? DefaultUnreadMessagesNotification : _0;
|
|
29
29
|
var loadMoreScrollThreshold = (internalInfiniteScrollProps === null || internalInfiniteScrollProps === void 0 ? void 0 : internalInfiniteScrollProps.threshold) || 250;
|
|
30
30
|
var currentUserChannelReadState = client.user && (read === null || read === void 0 ? void 0 : read[client.user.id]);
|
|
31
|
-
var showUnreadMessagesNotification = useUnreadMessagesNotification({
|
|
32
|
-
unreadCount: currentUserChannelReadState === null || currentUserChannelReadState === void 0 ? void 0 : currentUserChannelReadState.unread_messages,
|
|
33
|
-
}).show;
|
|
34
31
|
var _1 = useScrollLocationLogic({
|
|
35
32
|
hasMoreNewer: hasMoreNewer,
|
|
36
33
|
listElement: listElement,
|
|
@@ -39,6 +36,10 @@ var MessageListWithContext = function (props) {
|
|
|
39
36
|
scrolledUpThreshold: props.scrolledUpThreshold,
|
|
40
37
|
suppressAutoscroll: suppressAutoscroll,
|
|
41
38
|
}), hasNewMessages = _1.hasNewMessages, isMessageListScrolledToBottom = _1.isMessageListScrolledToBottom, onScroll = _1.onScroll, scrollToBottom = _1.scrollToBottom, wrapperRect = _1.wrapperRect;
|
|
39
|
+
var showUnreadMessagesNotification = useUnreadMessagesNotification({
|
|
40
|
+
isMessageListScrolledToBottom: isMessageListScrolledToBottom,
|
|
41
|
+
unreadCount: currentUserChannelReadState === null || currentUserChannelReadState === void 0 ? void 0 : currentUserChannelReadState.unread_messages,
|
|
42
|
+
}).show;
|
|
42
43
|
useMarkRead({
|
|
43
44
|
isMessageListScrolledToBottom: isMessageListScrolledToBottom,
|
|
44
45
|
markReadOnScrolledToBottom: markReadOnScrolledToBottom,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useScrollLocationLogic.d.ts","sourceRoot":"","sources":["../../../../../src/components/MessageList/hooks/MessageList/useScrollLocationLogic.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAyD,MAAM,OAAO,CAAC;AAI9E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yCAAyC,CAAC;AAE7E,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAC;AAEzE,MAAM,MAAM,4BAA4B,CACtC,kBAAkB,SAAS,yBAAyB,GAAG,yBAAyB,IAC9E;IACF,YAAY,EAAE,OAAO,CAAC;IACtB,WAAW,EAAE,cAAc,GAAG,IAAI,CAAC;IACnC,uBAAuB,EAAE,MAAM,CAAC;IAChC,kBAAkB,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,EAAE,aAAa,CAAC,kBAAkB,CAAC,EAAE,CAAC;IAC/C,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B,CAAC;AAEF,eAAO,MAAM,sBAAsB;;;
|
|
1
|
+
{"version":3,"file":"useScrollLocationLogic.d.ts","sourceRoot":"","sources":["../../../../../src/components/MessageList/hooks/MessageList/useScrollLocationLogic.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAyD,MAAM,OAAO,CAAC;AAI9E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yCAAyC,CAAC;AAE7E,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAC;AAEzE,MAAM,MAAM,4BAA4B,CACtC,kBAAkB,SAAS,yBAAyB,GAAG,yBAAyB,IAC9E;IACF,YAAY,EAAE,OAAO,CAAC;IACtB,WAAW,EAAE,cAAc,GAAG,IAAI,CAAC;IACnC,uBAAuB,EAAE,MAAM,CAAC;IAChC,kBAAkB,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,EAAE,aAAa,CAAC,kBAAkB,CAAC,EAAE,CAAC;IAC/C,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B,CAAC;AAEF,eAAO,MAAM,sBAAsB;;;sBAyDvB,aAAa,CAAC,cAAc,CAAC;;;CAgCxC,CAAC"}
|
|
@@ -7,12 +7,10 @@ export var useScrollLocationLogic = function (params) {
|
|
|
7
7
|
var _e = useState(true), isMessageListScrolledToBottom = _e[0], setIsMessageListScrolledToBottom = _e[1];
|
|
8
8
|
var closeToBottom = useRef(false);
|
|
9
9
|
var closeToTop = useRef(false);
|
|
10
|
-
var scrollCounter = useRef({ autoScroll: 0, scroll: 0 });
|
|
11
10
|
var scrollToBottom = useCallback(function () {
|
|
12
11
|
if (!(listElement === null || listElement === void 0 ? void 0 : listElement.scrollTo) || hasMoreNewer || suppressAutoscroll) {
|
|
13
12
|
return;
|
|
14
13
|
}
|
|
15
|
-
scrollCounter.current.autoScroll += 1;
|
|
16
14
|
listElement.scrollTo({
|
|
17
15
|
top: listElement.scrollHeight,
|
|
18
16
|
});
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
export type UseUnreadMessagesNotificationParams = {
|
|
2
|
+
isMessageListScrolledToBottom: boolean;
|
|
2
3
|
unreadCount?: number;
|
|
3
4
|
};
|
|
4
|
-
export declare const useUnreadMessagesNotification: ({ unreadCount, }: UseUnreadMessagesNotificationParams) => {
|
|
5
|
+
export declare const useUnreadMessagesNotification: ({ isMessageListScrolledToBottom, unreadCount, }: UseUnreadMessagesNotificationParams) => {
|
|
5
6
|
show: boolean;
|
|
6
7
|
};
|
|
7
8
|
//# sourceMappingURL=useUnreadMessagesNotification.d.ts.map
|
package/dist/components/MessageList/hooks/MessageList/useUnreadMessagesNotification.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useUnreadMessagesNotification.d.ts","sourceRoot":"","sources":["../../../../../src/components/MessageList/hooks/MessageList/useUnreadMessagesNotification.ts"],"names":[],"mappings":"AAWA,MAAM,MAAM,mCAAmC,GAAG;IAChD,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,eAAO,MAAM,6BAA6B,
|
|
1
|
+
{"version":3,"file":"useUnreadMessagesNotification.d.ts","sourceRoot":"","sources":["../../../../../src/components/MessageList/hooks/MessageList/useUnreadMessagesNotification.ts"],"names":[],"mappings":"AAWA,MAAM,MAAM,mCAAmC,GAAG;IAChD,6BAA6B,EAAE,OAAO,CAAC;IACvC,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,eAAO,MAAM,6BAA6B,oDAGvC,mCAAmC;;CA0DrC,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { useChannelStateContext } from '../../../../context';
|
|
2
|
-
import { useEffect, useState } from 'react';
|
|
2
|
+
import { useEffect, useRef, useState } from 'react';
|
|
3
3
|
import { MESSAGE_LIST_MAIN_PANEL_CLASS } from '../../MessageListMainPanel';
|
|
4
4
|
import { UNREAD_MESSAGE_SEPARATOR_CLASS } from '../../UnreadMessagesSeparator';
|
|
5
5
|
var targetIsVisibleInContainer = function (element, container) {
|
|
@@ -8,9 +8,10 @@ var targetIsVisibleInContainer = function (element, container) {
|
|
|
8
8
|
return 0 <= targetMessageY && targetMessageY <= msgListHeight;
|
|
9
9
|
};
|
|
10
10
|
export var useUnreadMessagesNotification = function (_a) {
|
|
11
|
-
var unreadCount = _a.unreadCount;
|
|
11
|
+
var isMessageListScrolledToBottom = _a.isMessageListScrolledToBottom, unreadCount = _a.unreadCount;
|
|
12
12
|
var messages = useChannelStateContext('UnreadMessagesNotification').messages;
|
|
13
13
|
var _b = useState(false), show = _b[0], setShow = _b[1];
|
|
14
|
+
var isScrolledAboveTargetTop = useRef(false);
|
|
14
15
|
var intersectionObserverIsSupported = typeof IntersectionObserver !== 'undefined';
|
|
15
16
|
useEffect(function () {
|
|
16
17
|
if (!(unreadCount && intersectionObserverIsSupported)) {
|
|
@@ -30,13 +31,27 @@ export var useUnreadMessagesNotification = function (_a) {
|
|
|
30
31
|
if (!elements.length)
|
|
31
32
|
return;
|
|
32
33
|
var _a = elements[0], boundingClientRect = _a.boundingClientRect, isIntersecting = _a.isIntersecting, rootBounds = _a.rootBounds;
|
|
33
|
-
var
|
|
34
|
-
|
|
34
|
+
var isScrolledAboveTargetTopCurrent = !!(rootBounds &&
|
|
35
|
+
boundingClientRect &&
|
|
36
|
+
rootBounds.bottom < boundingClientRect.top);
|
|
37
|
+
setShow(!isIntersecting && !isScrolledAboveTargetTopCurrent);
|
|
38
|
+
isScrolledAboveTargetTop.current = isScrolledAboveTargetTopCurrent;
|
|
35
39
|
}, { root: msgListPanel });
|
|
36
40
|
observer.observe(observedTarget);
|
|
37
41
|
return function () {
|
|
38
42
|
observer.disconnect();
|
|
39
43
|
};
|
|
40
44
|
}, [intersectionObserverIsSupported, messages, unreadCount]);
|
|
45
|
+
useEffect(function () {
|
|
46
|
+
/**
|
|
47
|
+
* Handle situation when scrollToBottom is called from another component when the msg list is scrolled above the observed target (unread separator).
|
|
48
|
+
* The intersection observer is not triggered when Element.scrollTo() is called. So we end up in a situation when we are scrolled to the bottom
|
|
49
|
+
* and at the same time scrolled above the observed target.
|
|
50
|
+
*/
|
|
51
|
+
if (unreadCount && isMessageListScrolledToBottom && isScrolledAboveTargetTop.current) {
|
|
52
|
+
setShow(true);
|
|
53
|
+
isScrolledAboveTargetTop.current = false;
|
|
54
|
+
}
|
|
55
|
+
}, [isMessageListScrolledToBottom, unreadCount]);
|
|
41
56
|
return { show: show && intersectionObserverIsSupported };
|
|
42
57
|
};
|
package/dist/index.cjs.js
CHANGED
|
@@ -36069,12 +36069,10 @@ var useScrollLocationLogic = function (params) {
|
|
|
36069
36069
|
var _e = React.useState(true), isMessageListScrolledToBottom = _e[0], setIsMessageListScrolledToBottom = _e[1];
|
|
36070
36070
|
var closeToBottom = React.useRef(false);
|
|
36071
36071
|
var closeToTop = React.useRef(false);
|
|
36072
|
-
var scrollCounter = React.useRef({ autoScroll: 0, scroll: 0 });
|
|
36073
36072
|
var scrollToBottom = React.useCallback(function () {
|
|
36074
36073
|
if (!(listElement === null || listElement === void 0 ? void 0 : listElement.scrollTo) || hasMoreNewer || suppressAutoscroll) {
|
|
36075
36074
|
return;
|
|
36076
36075
|
}
|
|
36077
|
-
scrollCounter.current.autoScroll += 1;
|
|
36078
36076
|
listElement.scrollTo({
|
|
36079
36077
|
top: listElement.scrollHeight,
|
|
36080
36078
|
});
|
|
@@ -36153,9 +36151,10 @@ var targetIsVisibleInContainer = function (element, container) {
|
|
|
36153
36151
|
return 0 <= targetMessageY && targetMessageY <= msgListHeight;
|
|
36154
36152
|
};
|
|
36155
36153
|
var useUnreadMessagesNotification = function (_a) {
|
|
36156
|
-
var unreadCount = _a.unreadCount;
|
|
36154
|
+
var isMessageListScrolledToBottom = _a.isMessageListScrolledToBottom, unreadCount = _a.unreadCount;
|
|
36157
36155
|
var messages = icons.useChannelStateContext('UnreadMessagesNotification').messages;
|
|
36158
36156
|
var _b = React.useState(false), show = _b[0], setShow = _b[1];
|
|
36157
|
+
var isScrolledAboveTargetTop = React.useRef(false);
|
|
36159
36158
|
var intersectionObserverIsSupported = typeof IntersectionObserver !== 'undefined';
|
|
36160
36159
|
React.useEffect(function () {
|
|
36161
36160
|
if (!(unreadCount && intersectionObserverIsSupported)) {
|
|
@@ -36175,14 +36174,28 @@ var useUnreadMessagesNotification = function (_a) {
|
|
|
36175
36174
|
if (!elements.length)
|
|
36176
36175
|
return;
|
|
36177
36176
|
var _a = elements[0], boundingClientRect = _a.boundingClientRect, isIntersecting = _a.isIntersecting, rootBounds = _a.rootBounds;
|
|
36178
|
-
var
|
|
36179
|
-
|
|
36177
|
+
var isScrolledAboveTargetTopCurrent = !!(rootBounds &&
|
|
36178
|
+
boundingClientRect &&
|
|
36179
|
+
rootBounds.bottom < boundingClientRect.top);
|
|
36180
|
+
setShow(!isIntersecting && !isScrolledAboveTargetTopCurrent);
|
|
36181
|
+
isScrolledAboveTargetTop.current = isScrolledAboveTargetTopCurrent;
|
|
36180
36182
|
}, { root: msgListPanel });
|
|
36181
36183
|
observer.observe(observedTarget);
|
|
36182
36184
|
return function () {
|
|
36183
36185
|
observer.disconnect();
|
|
36184
36186
|
};
|
|
36185
36187
|
}, [intersectionObserverIsSupported, messages, unreadCount]);
|
|
36188
|
+
React.useEffect(function () {
|
|
36189
|
+
/**
|
|
36190
|
+
* Handle situation when scrollToBottom is called from another component when the msg list is scrolled above the observed target (unread separator).
|
|
36191
|
+
* The intersection observer is not triggered when Element.scrollTo() is called. So we end up in a situation when we are scrolled to the bottom
|
|
36192
|
+
* and at the same time scrolled above the observed target.
|
|
36193
|
+
*/
|
|
36194
|
+
if (unreadCount && isMessageListScrolledToBottom && isScrolledAboveTargetTop.current) {
|
|
36195
|
+
setShow(true);
|
|
36196
|
+
isScrolledAboveTargetTop.current = false;
|
|
36197
|
+
}
|
|
36198
|
+
}, [isMessageListScrolledToBottom, unreadCount]);
|
|
36186
36199
|
return { show: show && intersectionObserverIsSupported };
|
|
36187
36200
|
};
|
|
36188
36201
|
|
|
@@ -36512,9 +36525,6 @@ var MessageListWithContext = function (props) {
|
|
|
36512
36525
|
var _u = icons.useComponentContext('MessageList'), _v = _u.EmptyStateIndicator, EmptyStateIndicator$1 = _v === void 0 ? EmptyStateIndicator : _v, _w = _u.LoadingIndicator, LoadingIndicator$1 = _w === void 0 ? LoadingIndicator : _w, _x = _u.MessageListNotifications, MessageListNotifications$1 = _x === void 0 ? MessageListNotifications : _x, _y = _u.MessageNotification, MessageNotification$1 = _y === void 0 ? MessageNotification : _y, _z = _u.TypingIndicator, TypingIndicator$1 = _z === void 0 ? TypingIndicator : _z, _0 = _u.UnreadMessagesNotification, UnreadMessagesNotification$1 = _0 === void 0 ? UnreadMessagesNotification : _0;
|
|
36513
36526
|
var loadMoreScrollThreshold = (internalInfiniteScrollProps === null || internalInfiniteScrollProps === void 0 ? void 0 : internalInfiniteScrollProps.threshold) || 250;
|
|
36514
36527
|
var currentUserChannelReadState = client.user && (read === null || read === void 0 ? void 0 : read[client.user.id]);
|
|
36515
|
-
var showUnreadMessagesNotification = useUnreadMessagesNotification({
|
|
36516
|
-
unreadCount: currentUserChannelReadState === null || currentUserChannelReadState === void 0 ? void 0 : currentUserChannelReadState.unread_messages,
|
|
36517
|
-
}).show;
|
|
36518
36528
|
var _1 = useScrollLocationLogic({
|
|
36519
36529
|
hasMoreNewer: hasMoreNewer,
|
|
36520
36530
|
listElement: listElement,
|
|
@@ -36523,6 +36533,10 @@ var MessageListWithContext = function (props) {
|
|
|
36523
36533
|
scrolledUpThreshold: props.scrolledUpThreshold,
|
|
36524
36534
|
suppressAutoscroll: suppressAutoscroll,
|
|
36525
36535
|
}), hasNewMessages = _1.hasNewMessages, isMessageListScrolledToBottom = _1.isMessageListScrolledToBottom, onScroll = _1.onScroll, scrollToBottom = _1.scrollToBottom, wrapperRect = _1.wrapperRect;
|
|
36536
|
+
var showUnreadMessagesNotification = useUnreadMessagesNotification({
|
|
36537
|
+
isMessageListScrolledToBottom: isMessageListScrolledToBottom,
|
|
36538
|
+
unreadCount: currentUserChannelReadState === null || currentUserChannelReadState === void 0 ? void 0 : currentUserChannelReadState.unread_messages,
|
|
36539
|
+
}).show;
|
|
36526
36540
|
useMarkRead({
|
|
36527
36541
|
isMessageListScrolledToBottom: isMessageListScrolledToBottom,
|
|
36528
36542
|
markReadOnScrolledToBottom: markReadOnScrolledToBottom,
|
|
@@ -38697,7 +38711,7 @@ var useNotificationRemovedFromChannelListener = function (setChannels, customHan
|
|
|
38697
38711
|
|
|
38698
38712
|
var RECOVER_LOADED_CHANNELS_THROTTLE_INTERVAL_IN_MS = 5000;
|
|
38699
38713
|
var MIN_RECOVER_LOADED_CHANNELS_THROTTLE_INTERVAL_IN_MS = 2000;
|
|
38700
|
-
var usePaginatedChannels = function (client, filters, sort, options, activeChannelHandler, recoveryThrottleIntervalMs) {
|
|
38714
|
+
var usePaginatedChannels = function (client, filters, sort, options, activeChannelHandler, recoveryThrottleIntervalMs, customQueryChannels) {
|
|
38701
38715
|
if (recoveryThrottleIntervalMs === void 0) { recoveryThrottleIntervalMs = RECOVER_LOADED_CHANNELS_THROTTLE_INTERVAL_IN_MS; }
|
|
38702
38716
|
var _a = icons.useChatContext('usePaginatedChannels').channelsQueryState, error = _a.error, setError = _a.setError, setQueryInProgress = _a.setQueryInProgress;
|
|
38703
38717
|
var _b = React.useState([]), channels = _b[0], setChannels = _b[1];
|
|
@@ -38712,49 +38726,61 @@ var usePaginatedChannels = function (client, filters, sort, options, activeChann
|
|
|
38712
38726
|
var filterString = React.useMemo(function () { return JSON.stringify(filters); }, [filters]);
|
|
38713
38727
|
var sortString = React.useMemo(function () { return JSON.stringify(sort); }, [sort]);
|
|
38714
38728
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
38715
|
-
var queryChannels = function (queryType) {
|
|
38716
|
-
|
|
38717
|
-
|
|
38718
|
-
|
|
38719
|
-
|
|
38720
|
-
|
|
38721
|
-
|
|
38722
|
-
|
|
38723
|
-
|
|
38724
|
-
|
|
38725
|
-
|
|
38726
|
-
|
|
38727
|
-
setQueryInProgress(
|
|
38728
|
-
|
|
38729
|
-
|
|
38730
|
-
|
|
38731
|
-
|
|
38732
|
-
|
|
38733
|
-
|
|
38734
|
-
|
|
38735
|
-
|
|
38736
|
-
|
|
38737
|
-
|
|
38738
|
-
|
|
38739
|
-
|
|
38740
|
-
|
|
38741
|
-
|
|
38742
|
-
|
|
38743
|
-
|
|
38744
|
-
|
|
38745
|
-
|
|
38746
|
-
|
|
38747
|
-
|
|
38748
|
-
|
|
38749
|
-
|
|
38750
|
-
|
|
38751
|
-
|
|
38752
|
-
|
|
38753
|
-
|
|
38754
|
-
|
|
38755
|
-
|
|
38729
|
+
var queryChannels = function (queryType) {
|
|
38730
|
+
if (queryType === void 0) { queryType = 'load-more'; }
|
|
38731
|
+
return icons.__awaiter(void 0, void 0, void 0, function () {
|
|
38732
|
+
var offset, newOptions, channelQueryResponse, newChannels, err_1;
|
|
38733
|
+
var _a;
|
|
38734
|
+
return icons.__generator(this, function (_b) {
|
|
38735
|
+
switch (_b.label) {
|
|
38736
|
+
case 0:
|
|
38737
|
+
setError(null);
|
|
38738
|
+
if (queryType === 'reload') {
|
|
38739
|
+
setChannels([]);
|
|
38740
|
+
}
|
|
38741
|
+
setQueryInProgress(queryType);
|
|
38742
|
+
_b.label = 1;
|
|
38743
|
+
case 1:
|
|
38744
|
+
_b.trys.push([1, 6, , 7]);
|
|
38745
|
+
if (!customQueryChannels) return [3 /*break*/, 3];
|
|
38746
|
+
return [4 /*yield*/, customQueryChannels({
|
|
38747
|
+
currentChannels: channels,
|
|
38748
|
+
queryType: queryType,
|
|
38749
|
+
setChannels: setChannels,
|
|
38750
|
+
setHasNextPage: setHasNextPage,
|
|
38751
|
+
})];
|
|
38752
|
+
case 2:
|
|
38753
|
+
_b.sent();
|
|
38754
|
+
return [3 /*break*/, 5];
|
|
38755
|
+
case 3:
|
|
38756
|
+
offset = queryType === 'reload' ? 0 : channels.length;
|
|
38757
|
+
newOptions = icons.__assign({ limit: (_a = options === null || options === void 0 ? void 0 : options.limit) !== null && _a !== void 0 ? _a : MAX_QUERY_CHANNELS_LIMIT, offset: offset }, options);
|
|
38758
|
+
return [4 /*yield*/, client.queryChannels(filters, sort || {}, newOptions)];
|
|
38759
|
+
case 4:
|
|
38760
|
+
channelQueryResponse = _b.sent();
|
|
38761
|
+
newChannels = queryType === 'reload'
|
|
38762
|
+
? channelQueryResponse
|
|
38763
|
+
: uniqBy__default["default"](icons.__spreadArray(icons.__spreadArray([], channels, true), channelQueryResponse, true), 'cid');
|
|
38764
|
+
setChannels(newChannels);
|
|
38765
|
+
setHasNextPage(channelQueryResponse.length >= newOptions.limit);
|
|
38766
|
+
// Set active channel only on load of first page
|
|
38767
|
+
if (!offset && activeChannelHandler) {
|
|
38768
|
+
activeChannelHandler(newChannels, setChannels);
|
|
38769
|
+
}
|
|
38770
|
+
_b.label = 5;
|
|
38771
|
+
case 5: return [3 /*break*/, 7];
|
|
38772
|
+
case 6:
|
|
38773
|
+
err_1 = _b.sent();
|
|
38774
|
+
console.warn(err_1);
|
|
38775
|
+
setError(err_1);
|
|
38776
|
+
return [3 /*break*/, 7];
|
|
38777
|
+
case 7:
|
|
38778
|
+
setQueryInProgress(null);
|
|
38779
|
+
return [2 /*return*/];
|
|
38780
|
+
}
|
|
38781
|
+
});
|
|
38756
38782
|
});
|
|
38757
|
-
}
|
|
38783
|
+
};
|
|
38758
38784
|
var throttleRecover = React.useCallback(function () {
|
|
38759
38785
|
var now = Date.now();
|
|
38760
38786
|
var isFirstRecovery = !lastRecoveryTimestamp.current;
|
|
@@ -39463,7 +39489,7 @@ var DEFAULT_OPTIONS = {};
|
|
|
39463
39489
|
var DEFAULT_SORT = {};
|
|
39464
39490
|
var UnMemoizedChannelList = function (props) {
|
|
39465
39491
|
var _a, _b;
|
|
39466
|
-
var additionalChannelSearchProps = props.additionalChannelSearchProps, _c = props.Avatar, Avatar$1 = _c === void 0 ? Avatar : _c, allowNewMessagesFromUnfilteredChannels = props.allowNewMessagesFromUnfilteredChannels, channelRenderFilterFn = props.channelRenderFilterFn, _d = props.ChannelSearch, ChannelSearch$1 = _d === void 0 ? ChannelSearch : _d, customActiveChannel = props.customActiveChannel, _e = props.EmptyStateIndicator, EmptyStateIndicator$1 = _e === void 0 ? EmptyStateIndicator : _e, filters = props.filters, _f = props.LoadingErrorIndicator, LoadingErrorIndicator = _f === void 0 ? ChatDown : _f, _g = props.LoadingIndicator, LoadingIndicator = _g === void 0 ? LoadingChannels : _g, _h = props.List, List = _h === void 0 ? ChannelListMessenger : _h, lockChannelOrder = props.lockChannelOrder, onAddedToChannel = props.onAddedToChannel, onChannelDeleted = props.onChannelDeleted, onChannelHidden = props.onChannelHidden, onChannelTruncated = props.onChannelTruncated, onChannelUpdated = props.onChannelUpdated, onChannelVisible = props.onChannelVisible, onMessageNew = props.onMessageNew, onMessageNewHandler = props.onMessageNewHandler, onRemovedFromChannel = props.onRemovedFromChannel, options = props.options, _j = props.Paginator, Paginator = _j === void 0 ? LoadMorePaginator : _j, Preview = props.Preview, recoveryThrottleIntervalMs = props.recoveryThrottleIntervalMs, renderChannels = props.renderChannels, _k = props.sendChannelsToList, sendChannelsToList = _k === void 0 ? false : _k, _l = props.setActiveChannelOnMount, setActiveChannelOnMount = _l === void 0 ? true : _l, _m = props.showChannelSearch, showChannelSearch = _m === void 0 ? false : _m, _o = props.sort, sort = _o === void 0 ? DEFAULT_SORT : _o, _p = props.watchers, watchers = _p === void 0 ? {} : _p;
|
|
39492
|
+
var additionalChannelSearchProps = props.additionalChannelSearchProps, _c = props.Avatar, Avatar$1 = _c === void 0 ? Avatar : _c, allowNewMessagesFromUnfilteredChannels = props.allowNewMessagesFromUnfilteredChannels, channelRenderFilterFn = props.channelRenderFilterFn, _d = props.ChannelSearch, ChannelSearch$1 = _d === void 0 ? ChannelSearch : _d, customActiveChannel = props.customActiveChannel, customQueryChannels = props.customQueryChannels, _e = props.EmptyStateIndicator, EmptyStateIndicator$1 = _e === void 0 ? EmptyStateIndicator : _e, filters = props.filters, _f = props.LoadingErrorIndicator, LoadingErrorIndicator = _f === void 0 ? ChatDown : _f, _g = props.LoadingIndicator, LoadingIndicator = _g === void 0 ? LoadingChannels : _g, _h = props.List, List = _h === void 0 ? ChannelListMessenger : _h, lockChannelOrder = props.lockChannelOrder, onAddedToChannel = props.onAddedToChannel, onChannelDeleted = props.onChannelDeleted, onChannelHidden = props.onChannelHidden, onChannelTruncated = props.onChannelTruncated, onChannelUpdated = props.onChannelUpdated, onChannelVisible = props.onChannelVisible, onMessageNew = props.onMessageNew, onMessageNewHandler = props.onMessageNewHandler, onRemovedFromChannel = props.onRemovedFromChannel, options = props.options, _j = props.Paginator, Paginator = _j === void 0 ? LoadMorePaginator : _j, Preview = props.Preview, recoveryThrottleIntervalMs = props.recoveryThrottleIntervalMs, renderChannels = props.renderChannels, _k = props.sendChannelsToList, sendChannelsToList = _k === void 0 ? false : _k, _l = props.setActiveChannelOnMount, setActiveChannelOnMount = _l === void 0 ? true : _l, _m = props.showChannelSearch, showChannelSearch = _m === void 0 ? false : _m, _o = props.sort, sort = _o === void 0 ? DEFAULT_SORT : _o, _p = props.watchers, watchers = _p === void 0 ? {} : _p;
|
|
39467
39493
|
var _q = icons.useChatContext('ChannelList'), channel = _q.channel, channelsQueryState = _q.channelsQueryState, client = _q.client, closeMobileNav = _q.closeMobileNav, customClasses = _q.customClasses, _r = _q.navOpen, navOpen = _r === void 0 ? false : _r, setActiveChannel = _q.setActiveChannel, theme = _q.theme, useImageFlagEmojisOnWindows = _q.useImageFlagEmojisOnWindows;
|
|
39468
39494
|
var channelListRef = React.useRef(null);
|
|
39469
39495
|
var _s = React.useState(0), channelUpdateCount = _s[0], setChannelUpdateCount = _s[1];
|
|
@@ -39529,7 +39555,7 @@ var UnMemoizedChannelList = function (props) {
|
|
|
39529
39555
|
(_a = additionalChannelSearchProps === null || additionalChannelSearchProps === void 0 ? void 0 : additionalChannelSearchProps.onSearchExit) === null || _a === void 0 ? void 0 : _a.call(additionalChannelSearchProps);
|
|
39530
39556
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
39531
39557
|
}, []);
|
|
39532
|
-
var _u = usePaginatedChannels(client, filters || DEFAULT_FILTERS, sort || DEFAULT_SORT, options || DEFAULT_OPTIONS, activeChannelHandler, recoveryThrottleIntervalMs), channels = _u.channels, hasNextPage = _u.hasNextPage, loadNextPage = _u.loadNextPage, setChannels = _u.setChannels;
|
|
39558
|
+
var _u = usePaginatedChannels(client, filters || DEFAULT_FILTERS, sort || DEFAULT_SORT, options || DEFAULT_OPTIONS, activeChannelHandler, recoveryThrottleIntervalMs, customQueryChannels), channels = _u.channels, hasNextPage = _u.hasNextPage, loadNextPage = _u.loadNextPage, setChannels = _u.setChannels;
|
|
39533
39559
|
var loadedChannels = channelRenderFilterFn ? channelRenderFilterFn(channels) : channels;
|
|
39534
39560
|
useMobileNavigation(channelListRef, navOpen, closeMobileNav);
|
|
39535
39561
|
useMessageNewListener(setChannels, onMessageNewHandler, lockChannelOrder, allowNewMessagesFromUnfilteredChannels);
|
|
@@ -39589,7 +39615,7 @@ var UnMemoizedChannelList = function (props) {
|
|
|
39589
39615
|
*/
|
|
39590
39616
|
var ChannelList = React__default["default"].memo(UnMemoizedChannelList);
|
|
39591
39617
|
|
|
39592
|
-
var version = '11.
|
|
39618
|
+
var version = '11.7.0';
|
|
39593
39619
|
|
|
39594
39620
|
var useChat = function (_a) {
|
|
39595
39621
|
var _b, _c;
|
package/dist/version.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare const version = "11.
|
|
1
|
+
export declare const version = "11.7.0";
|
|
2
2
|
//# sourceMappingURL=version.d.ts.map
|
package/dist/version.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export var version = '11.
|
|
1
|
+
export var version = '11.7.0';
|