stream-chat-react 10.13.0 → 10.14.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 +85 -49
- package/dist/browser.full-bundle.js.map +1 -1
- package/dist/browser.full-bundle.min.js +5 -5
- package/dist/browser.full-bundle.min.js.map +1 -1
- package/dist/components/ChannelList/ChannelList.d.ts +7 -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 +1 -1
- package/dist/components/ChannelList/hooks/usePaginatedChannels.d.ts.map +1 -1
- package/dist/components/ChannelList/hooks/usePaginatedChannels.js +32 -3
- package/dist/index.cjs.js +38 -8
- package/dist/index.cjs.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +2 -2
|
@@ -60,6 +60,13 @@ export declare type ChannelListProps<StreamChatGenerics extends DefaultStreamCha
|
|
|
60
60
|
Paginator?: React.ComponentType<PaginatorProps | LoadMorePaginatorProps>;
|
|
61
61
|
/** Custom UI component to display the channel preview in the list, defaults to and accepts same props as: [ChannelPreviewMessenger](https://github.com/GetStream/stream-chat-react/blob/master/src/components/ChannelPreview/ChannelPreviewMessenger.tsx) */
|
|
62
62
|
Preview?: React.ComponentType<ChannelPreviewUIComponentProps<StreamChatGenerics>>;
|
|
63
|
+
/**
|
|
64
|
+
* Custom interval during which the recovery channel list queries will be prevented.
|
|
65
|
+
* This is to avoid firing unnecessary queries during internet connection fluctuation.
|
|
66
|
+
* Recovery channel query is triggered upon `connection.recovered` and leads to complete channel list reload with pagination offset 0.
|
|
67
|
+
* The minimum throttle interval is 2000ms. The default throttle interval is 5000ms.
|
|
68
|
+
*/
|
|
69
|
+
recoveryThrottleIntervalMs?: number;
|
|
63
70
|
/** Function to override the default behavior when rendering channels, so this function is called instead of rendering the Preview directly */
|
|
64
71
|
renderChannels?: (channels: Channel<StreamChatGenerics>[], channelPreview: (item: Channel<StreamChatGenerics>) => React.ReactNode) => React.ReactNode;
|
|
65
72
|
/** If true, sends the list's currently loaded channels to the `List` component as the `loadedChannels` prop */
|
|
@@ -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;AAgBzF,OAAO,EAAE,WAAW,EAA2B,MAAM,kBAAkB,CAAC;AACxE,OAAO,EAAkB,8BAA8B,EAAE,MAAM,kCAAkC,CAAC;AAClG,OAAO,EACL,kBAAkB,EAEnB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAY,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAC/D,OAAO,EAEL,wBAAwB,EACzB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EAAqB,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AAI1F,OAAO,KAAK,EAAE,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAE/F,OAAO,KAAK,EAAE,yBAAyB,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAMnF,oBAAY,gBAAgB,CAC1B,kBAAkB,SAAS,yBAAyB,GAAG,yBAAyB,IAC9E;IACF,kMAAkM;IAClM,4BAA4B,CAAC,EAAE,IAAI,CAAC,kBAAkB,CAAC,kBAAkB,CAAC,EAAE,aAAa,CAAC,CAAC;IAC3F;;;;;OAKG;IACH,sCAAsC,CAAC,EAAE,OAAO,CAAC;IACjD,+LAA+L;IAC/L,MAAM,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;IAC1C,8OAA8O;IAC9O,qBAAqB,CAAC,EAAE,CACtB,QAAQ,EAAE,KAAK,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC,KACzC,KAAK,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC,CAAC;IACxC,uNAAuN;IACvN,aAAa,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC,kBAAkB,CAAC,kBAAkB,CAAC,CAAC,CAAC;IAC5E,yFAAyF;IACzF,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,2OAA2O;IAC3O,mBAAmB,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC,wBAAwB,CAAC,CAAC;IACpE,iDAAiD;IACjD,OAAO,CAAC,EAAE,cAAc,CAAC,kBAAkB,CAAC,CAAC;IAC7C,2PAA2P;IAC3P,IAAI,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC,yBAAyB,CAAC,kBAAkB,CAAC,CAAC,CAAC;IAC1E,qNAAqN;IACrN,qBAAqB,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC;IAC3D,wNAAwN;IACxN,gBAAgB,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IACvC,wEAAwE;IACxE,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,uNAAuN;IACvN,gBAAgB,CAAC,EAAE,CACjB,WAAW,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,EACrF,KAAK,EAAE,KAAK,CAAC,kBAAkB,CAAC,KAC7B,IAAI,CAAC;IACV,+LAA+L;IAC/L,gBAAgB,CAAC,EAAE,CACjB,WAAW,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,EACrF,KAAK,EAAE,KAAK,CAAC,kBAAkB,CAAC,KAC7B,IAAI,CAAC;IACV,6LAA6L;IAC7L,eAAe,CAAC,EAAE,CAChB,WAAW,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,EACrF,KAAK,EAAE,KAAK,CAAC,kBAAkB,CAAC,KAC7B,IAAI,CAAC;IACV,mMAAmM;IACnM,kBAAkB,CAAC,EAAE,CACnB,WAAW,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,EACrF,KAAK,EAAE,KAAK,CAAC,kBAAkB,CAAC,KAC7B,IAAI,CAAC;IACV,+LAA+L;IAC/L,gBAAgB,CAAC,EAAE,CACjB,WAAW,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,EACrF,KAAK,EAAE,KAAK,CAAC,kBAAkB,CAAC,KAC7B,IAAI,CAAC;IACV,qLAAqL;IACrL,gBAAgB,CAAC,EAAE,CACjB,WAAW,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,EACrF,KAAK,EAAE,KAAK,CAAC,kBAAkB,CAAC,KAC7B,IAAI,CAAC;IACV,yOAAyO;IACzO,YAAY,CAAC,EAAE,CACb,WAAW,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,EACrF,KAAK,EAAE,KAAK,CAAC,kBAAkB,CAAC,KAC7B,IAAI,CAAC;IACV,iOAAiO;IACjO,oBAAoB,CAAC,EAAE,CACrB,WAAW,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,EACrF,KAAK,EAAE,KAAK,CAAC,kBAAkB,CAAC,KAC7B,IAAI,CAAC;IACV,iDAAiD;IACjD,OAAO,CAAC,EAAE,cAAc,CAAC;IACzB,mOAAmO;IACnO,SAAS,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC,cAAc,GAAG,sBAAsB,CAAC,CAAC;IACzE,6PAA6P;IAC7P,OAAO,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC,8BAA8B,CAAC,kBAAkB,CAAC,CAAC,CAAC;IAClF,8IAA8I;IAC9I,cAAc,CAAC,EAAE,CACf,QAAQ,EAAE,OAAO,CAAC,kBAAkB,CAAC,EAAE,EACvC,cAAc,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC,kBAAkB,CAAC,KAAK,KAAK,CAAC,SAAS,KACnE,KAAK,CAAC,SAAS,CAAC;IACrB,+GAA+G;IAC/G,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,2EAA2E;IAC3E,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC,iFAAiF;IACjF,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,yDAAyD;IACzD,IAAI,CAAC,EAAE,WAAW,CAAC,kBAAkB,CAAC,CAAC;IACvC,0EAA0E;IAC1E,QAAQ,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CAChD,CAAC;
|
|
1
|
+
{"version":3,"file":"ChannelList.d.ts","sourceRoot":"","sources":["../../../src/components/ChannelList/ChannelList.tsx"],"names":[],"mappings":"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"}
|
|
@@ -29,7 +29,7 @@ var DEFAULT_OPTIONS = {};
|
|
|
29
29
|
var DEFAULT_SORT = {};
|
|
30
30
|
var UnMemoizedChannelList = function (props) {
|
|
31
31
|
var _a, _b;
|
|
32
|
-
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, onRemovedFromChannel = props.onRemovedFromChannel, options = props.options, _j = props.Paginator, Paginator = _j === void 0 ? LoadMorePaginator : _j, Preview = props.Preview, 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;
|
|
32
|
+
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, 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
33
|
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;
|
|
34
34
|
var channelListRef = useRef(null);
|
|
35
35
|
var _s = useState(0), channelUpdateCount = _s[0], setChannelUpdateCount = _s[1];
|
|
@@ -93,7 +93,7 @@ var UnMemoizedChannelList = function (props) {
|
|
|
93
93
|
setSearchActive(false);
|
|
94
94
|
(_a = additionalChannelSearchProps === null || additionalChannelSearchProps === void 0 ? void 0 : additionalChannelSearchProps.onSearchExit) === null || _a === void 0 ? void 0 : _a.call(additionalChannelSearchProps);
|
|
95
95
|
}, []);
|
|
96
|
-
var _u = usePaginatedChannels(client, filters || DEFAULT_FILTERS, sort || DEFAULT_SORT, options || DEFAULT_OPTIONS, activeChannelHandler), channels = _u.channels, hasNextPage = _u.hasNextPage, loadNextPage = _u.loadNextPage, setChannels = _u.setChannels;
|
|
96
|
+
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;
|
|
97
97
|
var loadedChannels = channelRenderFilterFn ? channelRenderFilterFn(channels) : channels;
|
|
98
98
|
useMobileNavigation(channelListRef, navOpen, closeMobileNav);
|
|
99
99
|
useMessageNewListener(setChannels, lockChannelOrder, allowNewMessagesFromUnfilteredChannels);
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { Channel, ChannelFilters, ChannelOptions, ChannelSort, StreamChat } from 'stream-chat';
|
|
2
2
|
import type { DefaultStreamChatGenerics } from '../../../types/types';
|
|
3
|
-
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) => {
|
|
3
|
+
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) => {
|
|
4
4
|
channels: Channel<StreamChatGenerics>[];
|
|
5
5
|
hasNextPage: boolean;
|
|
6
6
|
loadNextPage: () => void;
|
|
@@ -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;AAKtE,eAAO,MAAM,oBAAoB,0NAMtB,cAAc,2KAIlB,IAAI,+BACmB,MAAM;;;;;CAkGnC,CAAC"}
|
|
@@ -1,12 +1,21 @@
|
|
|
1
1
|
import { __assign, __awaiter, __generator, __spreadArray } from "tslib";
|
|
2
|
-
import { useEffect, useMemo, useState } from 'react';
|
|
2
|
+
import { useCallback, useEffect, useMemo, useRef, useState } from 'react';
|
|
3
3
|
import uniqBy from 'lodash.uniqby';
|
|
4
4
|
import { MAX_QUERY_CHANNELS_LIMIT } from '../utils';
|
|
5
5
|
import { useChatContext } from '../../../context/ChatContext';
|
|
6
|
-
|
|
7
|
-
|
|
6
|
+
var RECOVER_LOADED_CHANNELS_THROTTLE_INTERVAL_IN_MS = 5000;
|
|
7
|
+
var MIN_RECOVER_LOADED_CHANNELS_THROTTLE_INTERVAL_IN_MS = 2000;
|
|
8
|
+
export var usePaginatedChannels = function (client, filters, sort, options, activeChannelHandler, recoveryThrottleIntervalMs) {
|
|
9
|
+
if (recoveryThrottleIntervalMs === void 0) { recoveryThrottleIntervalMs = RECOVER_LOADED_CHANNELS_THROTTLE_INTERVAL_IN_MS; }
|
|
10
|
+
var _a = useChatContext('usePaginatedChannels').channelsQueryState, error = _a.error, setError = _a.setError, setQueryInProgress = _a.setQueryInProgress;
|
|
8
11
|
var _b = useState([]), channels = _b[0], setChannels = _b[1];
|
|
9
12
|
var _c = useState(true), hasNextPage = _c[0], setHasNextPage = _c[1];
|
|
13
|
+
var lastRecoveryTimestamp = useRef();
|
|
14
|
+
var recoveryThrottleInterval = recoveryThrottleIntervalMs < MIN_RECOVER_LOADED_CHANNELS_THROTTLE_INTERVAL_IN_MS
|
|
15
|
+
? MIN_RECOVER_LOADED_CHANNELS_THROTTLE_INTERVAL_IN_MS
|
|
16
|
+
: recoveryThrottleIntervalMs
|
|
17
|
+
? recoveryThrottleIntervalMs
|
|
18
|
+
: RECOVER_LOADED_CHANNELS_THROTTLE_INTERVAL_IN_MS;
|
|
10
19
|
// memoize props
|
|
11
20
|
var filterString = useMemo(function () { return JSON.stringify(filters); }, [filters]);
|
|
12
21
|
var sortString = useMemo(function () { return JSON.stringify(sort); }, [sort]);
|
|
@@ -53,9 +62,29 @@ export var usePaginatedChannels = function (client, filters, sort, options, acti
|
|
|
53
62
|
}
|
|
54
63
|
});
|
|
55
64
|
}); };
|
|
65
|
+
var throttleRecover = useCallback(function () {
|
|
66
|
+
var now = Date.now();
|
|
67
|
+
var isFirstRecovery = !lastRecoveryTimestamp.current;
|
|
68
|
+
var timeElapsedSinceLastRecoveryMs = lastRecoveryTimestamp.current
|
|
69
|
+
? now - lastRecoveryTimestamp.current
|
|
70
|
+
: 0;
|
|
71
|
+
if (!isFirstRecovery && timeElapsedSinceLastRecoveryMs < recoveryThrottleInterval && !error) {
|
|
72
|
+
return;
|
|
73
|
+
}
|
|
74
|
+
lastRecoveryTimestamp.current = now;
|
|
75
|
+
queryChannels('reload');
|
|
76
|
+
}, [error, queryChannels, recoveryThrottleInterval]);
|
|
56
77
|
var loadNextPage = function () {
|
|
57
78
|
queryChannels();
|
|
58
79
|
};
|
|
80
|
+
useEffect(function () {
|
|
81
|
+
if (client.recoverStateOnReconnect)
|
|
82
|
+
return;
|
|
83
|
+
var unsubscribe = client.on('connection.recovered', throttleRecover).unsubscribe;
|
|
84
|
+
return function () {
|
|
85
|
+
unsubscribe();
|
|
86
|
+
};
|
|
87
|
+
}, [client, throttleRecover]);
|
|
59
88
|
useEffect(function () {
|
|
60
89
|
queryChannels('reload');
|
|
61
90
|
}, [filterString, sortString]);
|
package/dist/index.cjs.js
CHANGED
|
@@ -98,6 +98,7 @@ var linkify__namespace = /*#__PURE__*/_interopNamespace(linkify);
|
|
|
98
98
|
var _defineProperty__default = /*#__PURE__*/_interopDefaultLegacy(_defineProperty$2);
|
|
99
99
|
var _slicedToArray__default = /*#__PURE__*/_interopDefaultLegacy(_slicedToArray$2);
|
|
100
100
|
var emojiRegex__default = /*#__PURE__*/_interopDefaultLegacy(emojiRegex);
|
|
101
|
+
var crypto__default = /*#__PURE__*/_interopDefaultLegacy(crypto);
|
|
101
102
|
var uniqBy__default = /*#__PURE__*/_interopDefaultLegacy(uniqBy);
|
|
102
103
|
var ReactIs__default = /*#__PURE__*/_interopDefaultLegacy(ReactIs);
|
|
103
104
|
var path__default = /*#__PURE__*/_interopDefaultLegacy(path$1);
|
|
@@ -4377,7 +4378,7 @@ var Item = /*#__PURE__*/React__default["default"].forwardRef(function Item(props
|
|
|
4377
4378
|
}))));
|
|
4378
4379
|
});
|
|
4379
4380
|
|
|
4380
|
-
|
|
4381
|
+
let urlAlphabet =
|
|
4381
4382
|
'useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict';
|
|
4382
4383
|
|
|
4383
4384
|
const POOL_SIZE_MULTIPLIER = 128;
|
|
@@ -4385,10 +4386,10 @@ let pool, poolOffset;
|
|
|
4385
4386
|
let fillPool = bytes => {
|
|
4386
4387
|
if (!pool || pool.length < bytes) {
|
|
4387
4388
|
pool = Buffer.allocUnsafe(bytes * POOL_SIZE_MULTIPLIER);
|
|
4388
|
-
|
|
4389
|
+
crypto__default["default"].randomFillSync(pool);
|
|
4389
4390
|
poolOffset = 0;
|
|
4390
4391
|
} else if (poolOffset + bytes > pool.length) {
|
|
4391
|
-
|
|
4392
|
+
crypto__default["default"].randomFillSync(pool);
|
|
4392
4393
|
poolOffset = 0;
|
|
4393
4394
|
}
|
|
4394
4395
|
poolOffset += bytes;
|
|
@@ -34166,10 +34167,19 @@ var useNotificationRemovedFromChannelListener = function (setChannels, customHan
|
|
|
34166
34167
|
}, [customHandler]);
|
|
34167
34168
|
};
|
|
34168
34169
|
|
|
34169
|
-
var
|
|
34170
|
-
|
|
34170
|
+
var RECOVER_LOADED_CHANNELS_THROTTLE_INTERVAL_IN_MS = 5000;
|
|
34171
|
+
var MIN_RECOVER_LOADED_CHANNELS_THROTTLE_INTERVAL_IN_MS = 2000;
|
|
34172
|
+
var usePaginatedChannels = function (client, filters, sort, options, activeChannelHandler, recoveryThrottleIntervalMs) {
|
|
34173
|
+
if (recoveryThrottleIntervalMs === void 0) { recoveryThrottleIntervalMs = RECOVER_LOADED_CHANNELS_THROTTLE_INTERVAL_IN_MS; }
|
|
34174
|
+
var _a = useChatContext('usePaginatedChannels').channelsQueryState, error = _a.error, setError = _a.setError, setQueryInProgress = _a.setQueryInProgress;
|
|
34171
34175
|
var _b = React.useState([]), channels = _b[0], setChannels = _b[1];
|
|
34172
34176
|
var _c = React.useState(true), hasNextPage = _c[0], setHasNextPage = _c[1];
|
|
34177
|
+
var lastRecoveryTimestamp = React.useRef();
|
|
34178
|
+
var recoveryThrottleInterval = recoveryThrottleIntervalMs < MIN_RECOVER_LOADED_CHANNELS_THROTTLE_INTERVAL_IN_MS
|
|
34179
|
+
? MIN_RECOVER_LOADED_CHANNELS_THROTTLE_INTERVAL_IN_MS
|
|
34180
|
+
: recoveryThrottleIntervalMs
|
|
34181
|
+
? recoveryThrottleIntervalMs
|
|
34182
|
+
: RECOVER_LOADED_CHANNELS_THROTTLE_INTERVAL_IN_MS;
|
|
34173
34183
|
// memoize props
|
|
34174
34184
|
var filterString = React.useMemo(function () { return JSON.stringify(filters); }, [filters]);
|
|
34175
34185
|
var sortString = React.useMemo(function () { return JSON.stringify(sort); }, [sort]);
|
|
@@ -34216,9 +34226,29 @@ var usePaginatedChannels = function (client, filters, sort, options, activeChann
|
|
|
34216
34226
|
}
|
|
34217
34227
|
});
|
|
34218
34228
|
}); };
|
|
34229
|
+
var throttleRecover = React.useCallback(function () {
|
|
34230
|
+
var now = Date.now();
|
|
34231
|
+
var isFirstRecovery = !lastRecoveryTimestamp.current;
|
|
34232
|
+
var timeElapsedSinceLastRecoveryMs = lastRecoveryTimestamp.current
|
|
34233
|
+
? now - lastRecoveryTimestamp.current
|
|
34234
|
+
: 0;
|
|
34235
|
+
if (!isFirstRecovery && timeElapsedSinceLastRecoveryMs < recoveryThrottleInterval && !error) {
|
|
34236
|
+
return;
|
|
34237
|
+
}
|
|
34238
|
+
lastRecoveryTimestamp.current = now;
|
|
34239
|
+
queryChannels('reload');
|
|
34240
|
+
}, [error, queryChannels, recoveryThrottleInterval]);
|
|
34219
34241
|
var loadNextPage = function () {
|
|
34220
34242
|
queryChannels();
|
|
34221
34243
|
};
|
|
34244
|
+
React.useEffect(function () {
|
|
34245
|
+
if (client.recoverStateOnReconnect)
|
|
34246
|
+
return;
|
|
34247
|
+
var unsubscribe = client.on('connection.recovered', throttleRecover).unsubscribe;
|
|
34248
|
+
return function () {
|
|
34249
|
+
unsubscribe();
|
|
34250
|
+
};
|
|
34251
|
+
}, [client, throttleRecover]);
|
|
34222
34252
|
React.useEffect(function () {
|
|
34223
34253
|
queryChannels('reload');
|
|
34224
34254
|
}, [filterString, sortString]);
|
|
@@ -34851,7 +34881,7 @@ var DEFAULT_OPTIONS = {};
|
|
|
34851
34881
|
var DEFAULT_SORT = {};
|
|
34852
34882
|
var UnMemoizedChannelList = function (props) {
|
|
34853
34883
|
var _a, _b;
|
|
34854
|
-
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, onRemovedFromChannel = props.onRemovedFromChannel, options = props.options, _j = props.Paginator, Paginator = _j === void 0 ? LoadMorePaginator : _j, Preview = props.Preview, 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;
|
|
34884
|
+
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, 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;
|
|
34855
34885
|
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;
|
|
34856
34886
|
var channelListRef = React.useRef(null);
|
|
34857
34887
|
var _s = React.useState(0), channelUpdateCount = _s[0], setChannelUpdateCount = _s[1];
|
|
@@ -34915,7 +34945,7 @@ var UnMemoizedChannelList = function (props) {
|
|
|
34915
34945
|
setSearchActive(false);
|
|
34916
34946
|
(_a = additionalChannelSearchProps === null || additionalChannelSearchProps === void 0 ? void 0 : additionalChannelSearchProps.onSearchExit) === null || _a === void 0 ? void 0 : _a.call(additionalChannelSearchProps);
|
|
34917
34947
|
}, []);
|
|
34918
|
-
var _u = usePaginatedChannels(client, filters || DEFAULT_FILTERS, sort || DEFAULT_SORT, options || DEFAULT_OPTIONS, activeChannelHandler), channels = _u.channels, hasNextPage = _u.hasNextPage, loadNextPage = _u.loadNextPage, setChannels = _u.setChannels;
|
|
34948
|
+
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;
|
|
34919
34949
|
var loadedChannels = channelRenderFilterFn ? channelRenderFilterFn(channels) : channels;
|
|
34920
34950
|
useMobileNavigation(channelListRef, navOpen, closeMobileNav);
|
|
34921
34951
|
useMessageNewListener(setChannels, lockChannelOrder, allowNewMessagesFromUnfilteredChannels);
|
|
@@ -34973,7 +35003,7 @@ var UnMemoizedChannelList = function (props) {
|
|
|
34973
35003
|
*/
|
|
34974
35004
|
var ChannelList = React__default["default"].memo(UnMemoizedChannelList);
|
|
34975
35005
|
|
|
34976
|
-
var version = '10.
|
|
35006
|
+
var version = '10.14.0';
|
|
34977
35007
|
|
|
34978
35008
|
var useChat = function (_a) {
|
|
34979
35009
|
var _b, _c;
|