stream-chat-react 10.4.2 → 10.4.3
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 +27 -18
- package/dist/browser.full-bundle.js.map +1 -1
- package/dist/browser.full-bundle.min.js +2 -2
- package/dist/browser.full-bundle.min.js.map +1 -1
- package/dist/components/Chat/Chat.d.ts.map +1 -1
- package/dist/components/Chat/Chat.js +6 -3
- package/dist/components/InfiniteScrollPaginator/InfiniteScroll.d.ts +0 -1
- package/dist/components/InfiniteScrollPaginator/InfiniteScroll.d.ts.map +1 -1
- package/dist/components/InfiniteScrollPaginator/InfiniteScroll.js +9 -7
- package/dist/components/MessageList/MessageList.d.ts +5 -1
- package/dist/components/MessageList/MessageList.d.ts.map +1 -1
- package/dist/components/MessageList/MessageList.js +4 -2
- package/dist/components/MessageList/hooks/useMessageListScrollManager.d.ts +1 -0
- package/dist/components/MessageList/hooks/useMessageListScrollManager.d.ts.map +1 -1
- package/dist/components/MessageList/hooks/useMessageListScrollManager.js +6 -5
- package/dist/components/MessageList/hooks/useScrollLocationLogic.d.ts +1 -1
- package/dist/components/MessageList/hooks/useScrollLocationLogic.d.ts.map +1 -1
- package/dist/components/MessageList/hooks/useScrollLocationLogic.js +2 -1
- package/dist/css/index.css +1 -1
- package/dist/index.cjs.js +26 -17
- package/dist/index.cjs.js.map +1 -1
- package/dist/scss/Card.scss +1 -1
- package/dist/scss/ChannelHeader.scss +1 -1
- package/dist/scss/MessageInput.scss +1 -1
- package/dist/scss/TypingIndicator.scss +1 -1
- package/dist/scss/_variables.scss +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +5 -5
package/dist/index.cjs.js
CHANGED
|
@@ -33776,7 +33776,7 @@ var UnMemoizedChannelList = function (props) {
|
|
|
33776
33776
|
*/
|
|
33777
33777
|
var ChannelList = React__default["default"].memo(UnMemoizedChannelList);
|
|
33778
33778
|
|
|
33779
|
-
var version = '10.4.
|
|
33779
|
+
var version = '10.4.3';
|
|
33780
33780
|
|
|
33781
33781
|
var useChat = function (_a) {
|
|
33782
33782
|
var _b, _c;
|
|
@@ -33962,9 +33962,12 @@ var Chat = function (props) {
|
|
|
33962
33962
|
var children = props.children, client = props.client, customClasses = props.customClasses, customStyles = props.customStyles, _a = props.darkMode, darkMode = _a === void 0 ? false : _a, defaultLanguage = props.defaultLanguage, i18nInstance = props.i18nInstance, _b = props.initialNavOpen, initialNavOpen = _b === void 0 ? true : _b, _c = props.theme, theme = _c === void 0 ? 'messaging light' : _c, _d = props.useImageFlagEmojisOnWindows, useImageFlagEmojisOnWindows = _d === void 0 ? false : _d;
|
|
33963
33963
|
var _e = useChat({ client: client, defaultLanguage: defaultLanguage, i18nInstance: i18nInstance, initialNavOpen: initialNavOpen }), channel = _e.channel, closeMobileNav = _e.closeMobileNav, getAppSettings = _e.getAppSettings, latestMessageDatesByChannels = _e.latestMessageDatesByChannels, mutes = _e.mutes, navOpen = _e.navOpen, openMobileNav = _e.openMobileNav, setActiveChannel = _e.setActiveChannel, translators = _e.translators;
|
|
33964
33964
|
var channelsQueryState = useChannelsQueryState();
|
|
33965
|
-
var themeVersion =
|
|
33966
|
-
|
|
33967
|
-
|
|
33965
|
+
var themeVersion = typeof window !== 'undefined'
|
|
33966
|
+
? (window
|
|
33967
|
+
.getComputedStyle(document.documentElement)
|
|
33968
|
+
.getPropertyValue('--str-chat__theme-version')
|
|
33969
|
+
.replace(' ', '') || '1')
|
|
33970
|
+
: '1';
|
|
33968
33971
|
useCustomStyles(darkMode ? darkModeTheme : customStyles);
|
|
33969
33972
|
var chatContextValue = useCreateChatContext({
|
|
33970
33973
|
channel: channel,
|
|
@@ -34069,6 +34072,8 @@ var InfiniteScroll = function (props) {
|
|
|
34069
34072
|
if (listenToScroll) {
|
|
34070
34073
|
listenToScroll(offset, reverseOffset, threshold);
|
|
34071
34074
|
}
|
|
34075
|
+
if (isLoading)
|
|
34076
|
+
return;
|
|
34072
34077
|
if (reverseOffset < Number(threshold) &&
|
|
34073
34078
|
typeof loadPreviousPageFn === 'function' &&
|
|
34074
34079
|
hasPreviousPageFlag) {
|
|
@@ -34080,10 +34085,11 @@ var InfiniteScroll = function (props) {
|
|
|
34080
34085
|
}, [
|
|
34081
34086
|
hasPreviousPageFlag,
|
|
34082
34087
|
hasNextPageFlag,
|
|
34083
|
-
|
|
34088
|
+
isLoading,
|
|
34084
34089
|
listenToScroll,
|
|
34085
34090
|
loadPreviousPageFn,
|
|
34086
34091
|
loadNextPageFn,
|
|
34092
|
+
threshold,
|
|
34087
34093
|
]);
|
|
34088
34094
|
React.useEffect(function () {
|
|
34089
34095
|
deprecationAndReplacementWarning([
|
|
@@ -34093,19 +34099,18 @@ var InfiniteScroll = function (props) {
|
|
|
34093
34099
|
[{ loadMore: loadMore }, { loadPreviousPage: loadPreviousPage }],
|
|
34094
34100
|
], 'InfiniteScroll');
|
|
34095
34101
|
}, []);
|
|
34096
|
-
React.
|
|
34102
|
+
React.useLayoutEffect(function () {
|
|
34097
34103
|
var _a;
|
|
34098
34104
|
var scrollElement = (_a = scrollComponent.current) === null || _a === void 0 ? void 0 : _a.parentNode;
|
|
34099
|
-
if (
|
|
34100
|
-
return
|
|
34101
|
-
}
|
|
34105
|
+
if (!scrollElement)
|
|
34106
|
+
return;
|
|
34102
34107
|
scrollElement.addEventListener('scroll', scrollListener, useCapture);
|
|
34103
34108
|
scrollElement.addEventListener('resize', scrollListener, useCapture);
|
|
34104
34109
|
return function () {
|
|
34105
34110
|
scrollElement.removeEventListener('scroll', scrollListener, useCapture);
|
|
34106
34111
|
scrollElement.removeEventListener('resize', scrollListener, useCapture);
|
|
34107
34112
|
};
|
|
34108
|
-
}, [initialLoad,
|
|
34113
|
+
}, [initialLoad, scrollListener, useCapture]);
|
|
34109
34114
|
React.useEffect(function () {
|
|
34110
34115
|
var _a;
|
|
34111
34116
|
var scrollElement = (_a = scrollComponent.current) === null || _a === void 0 ? void 0 : _a.parentNode;
|
|
@@ -34896,8 +34901,9 @@ var useMessageListElements = function (props) {
|
|
|
34896
34901
|
return elements;
|
|
34897
34902
|
};
|
|
34898
34903
|
|
|
34904
|
+
// FIXME: change this generic name to something like useAdjustScrollPositionToListSize
|
|
34899
34905
|
function useMessageListScrollManager(params) {
|
|
34900
|
-
var onScrollBy = params.onScrollBy, scrollContainerMeasures = params.scrollContainerMeasures, scrolledUpThreshold = params.scrolledUpThreshold, scrollToBottom = params.scrollToBottom, showNewMessages = params.showNewMessages;
|
|
34906
|
+
var loadMoreScrollThreshold = params.loadMoreScrollThreshold, onScrollBy = params.onScrollBy, scrollContainerMeasures = params.scrollContainerMeasures, scrolledUpThreshold = params.scrolledUpThreshold, scrollToBottom = params.scrollToBottom, showNewMessages = params.showNewMessages;
|
|
34901
34907
|
var client = useChatContext('useMessageListScrollManager').client;
|
|
34902
34908
|
var measures = React.useRef({
|
|
34903
34909
|
offsetHeight: 0,
|
|
@@ -34905,7 +34911,7 @@ function useMessageListScrollManager(params) {
|
|
|
34905
34911
|
});
|
|
34906
34912
|
var messages = React.useRef();
|
|
34907
34913
|
var scrollTop = React.useRef(0);
|
|
34908
|
-
React.
|
|
34914
|
+
React.useLayoutEffect(function () {
|
|
34909
34915
|
var _a, _b, _c;
|
|
34910
34916
|
var prevMeasures = measures.current;
|
|
34911
34917
|
var prevMessages = messages.current;
|
|
@@ -34919,8 +34925,8 @@ function useMessageListScrollManager(params) {
|
|
|
34919
34925
|
if (prevMessages.length < newMessages.length) {
|
|
34920
34926
|
// messages added to the top
|
|
34921
34927
|
if ((lastPrevMessage === null || lastPrevMessage === void 0 ? void 0 : lastPrevMessage.id) === lastNewMessage.id) {
|
|
34922
|
-
|
|
34923
|
-
|
|
34928
|
+
if (scrollTop.current < loadMoreScrollThreshold) {
|
|
34929
|
+
var listHeightDelta = newMeasures.scrollHeight - prevMeasures.scrollHeight;
|
|
34924
34930
|
onScrollBy(listHeightDelta);
|
|
34925
34931
|
}
|
|
34926
34932
|
}
|
|
@@ -34953,7 +34959,7 @@ function useMessageListScrollManager(params) {
|
|
|
34953
34959
|
}
|
|
34954
34960
|
|
|
34955
34961
|
var useScrollLocationLogic = function (params) {
|
|
34956
|
-
var _a = params.messages, messages = _a === void 0 ? [] : _a, _b = params.scrolledUpThreshold, scrolledUpThreshold = _b === void 0 ? 200 : _b, hasMoreNewer = params.hasMoreNewer, suppressAutoscroll = params.suppressAutoscroll, listElement = params.listElement;
|
|
34962
|
+
var loadMoreScrollThreshold = params.loadMoreScrollThreshold, _a = params.messages, messages = _a === void 0 ? [] : _a, _b = params.scrolledUpThreshold, scrolledUpThreshold = _b === void 0 ? 200 : _b, hasMoreNewer = params.hasMoreNewer, suppressAutoscroll = params.suppressAutoscroll, listElement = params.listElement;
|
|
34957
34963
|
var _c = React.useState(false), hasNewMessages = _c[0], setHasNewMessages = _c[1];
|
|
34958
34964
|
var _d = React.useState(), wrapperRect = _d[0], setWrapperRect = _d[1];
|
|
34959
34965
|
var _e = React.useState(true), isMessageListScrolledToBottom = _e[0], setIsMessageListScrolledToBottom = _e[1];
|
|
@@ -34977,6 +34983,7 @@ var useScrollLocationLogic = function (params) {
|
|
|
34977
34983
|
}
|
|
34978
34984
|
}, [listElement, hasMoreNewer]);
|
|
34979
34985
|
var updateScrollTop = useMessageListScrollManager({
|
|
34986
|
+
loadMoreScrollThreshold: loadMoreScrollThreshold,
|
|
34980
34987
|
messages: messages,
|
|
34981
34988
|
onScrollBy: function (scrollBy) {
|
|
34982
34989
|
listElement === null || listElement === void 0 ? void 0 : listElement.scrollBy({ top: scrollBy });
|
|
@@ -35125,16 +35132,18 @@ var MessageListMainPanel = function (_a) {
|
|
|
35125
35132
|
};
|
|
35126
35133
|
|
|
35127
35134
|
var MessageListWithContext = function (props) {
|
|
35128
|
-
var channel = props.channel, _a = props.disableDateSeparator, disableDateSeparator = _a === void 0 ? false : _a, groupStyles = props.groupStyles, _b = props.hideDeletedMessages, hideDeletedMessages = _b === void 0 ? false : _b, _c = props.hideNewMessageSeparator, hideNewMessageSeparator = _c === void 0 ? false : _c, _d = props.messageActions, messageActions = _d === void 0 ? Object.keys(MESSAGE_ACTIONS) : _d, _e = props.messages, messages = _e === void 0 ? [] : _e, notifications = props.notifications, _f = props.noGroupByUser, noGroupByUser = _f === void 0 ? false : _f, _g = props.pinPermissions, pinPermissions = _g === void 0 ? defaultPinPermissions : _g, // @deprecated in favor of `channelCapabilities` - TODO: remove in next major release
|
|
35135
|
+
var channel = props.channel, _a = props.disableDateSeparator, disableDateSeparator = _a === void 0 ? false : _a, groupStyles = props.groupStyles, _b = props.hideDeletedMessages, hideDeletedMessages = _b === void 0 ? false : _b, _c = props.hideNewMessageSeparator, hideNewMessageSeparator = _c === void 0 ? false : _c, internalInfiniteScrollProps = props.internalInfiniteScrollProps, _d = props.messageActions, messageActions = _d === void 0 ? Object.keys(MESSAGE_ACTIONS) : _d, _e = props.messages, messages = _e === void 0 ? [] : _e, notifications = props.notifications, _f = props.noGroupByUser, noGroupByUser = _f === void 0 ? false : _f, _g = props.pinPermissions, pinPermissions = _g === void 0 ? defaultPinPermissions : _g, // @deprecated in favor of `channelCapabilities` - TODO: remove in next major release
|
|
35129
35136
|
_h = props.returnAllReadData, // @deprecated in favor of `channelCapabilities` - TODO: remove in next major release
|
|
35130
35137
|
returnAllReadData = _h === void 0 ? false : _h, _j = props.threadList, threadList = _j === void 0 ? false : _j, _k = props.unsafeHTML, unsafeHTML = _k === void 0 ? false : _k, headerPosition = props.headerPosition, read = props.read, _l = props.messageLimit, messageLimit = _l === void 0 ? 100 : _l, loadMoreCallback = props.loadMore, loadMoreNewerCallback = props.loadMoreNewer, _m = props.hasMoreNewer, hasMoreNewer = _m === void 0 ? false : _m, suppressAutoscroll = props.suppressAutoscroll, highlightedMessageId = props.highlightedMessageId, _o = props.jumpToLatestMessage, jumpToLatestMessage = _o === void 0 ? function () { return Promise.resolve(); } : _o;
|
|
35131
35138
|
var _p = React__default["default"].useState(null), listElement = _p[0], setListElement = _p[1];
|
|
35132
35139
|
var _q = React__default["default"].useState(null), ulElement = _q[0], setUlElement = _q[1];
|
|
35133
35140
|
var customClasses = useChatContext('MessageList').customClasses;
|
|
35134
35141
|
var _r = useComponentContext('MessageList'), _s = _r.EmptyStateIndicator, EmptyStateIndicator$1 = _s === void 0 ? EmptyStateIndicator : _s, _t = _r.LoadingIndicator, LoadingIndicator$1 = _t === void 0 ? LoadingIndicator : _t, _u = _r.MessageListNotifications, MessageListNotifications$1 = _u === void 0 ? MessageListNotifications : _u, _v = _r.MessageNotification, MessageNotification$1 = _v === void 0 ? MessageNotification : _v, _w = _r.TypingIndicator, TypingIndicator$1 = _w === void 0 ? TypingIndicator : _w;
|
|
35142
|
+
var loadMoreScrollThreshold = (internalInfiniteScrollProps === null || internalInfiniteScrollProps === void 0 ? void 0 : internalInfiniteScrollProps.threshold) || 250;
|
|
35135
35143
|
var _x = useScrollLocationLogic({
|
|
35136
35144
|
hasMoreNewer: hasMoreNewer,
|
|
35137
35145
|
listElement: listElement,
|
|
35146
|
+
loadMoreScrollThreshold: loadMoreScrollThreshold,
|
|
35138
35147
|
messages: messages,
|
|
35139
35148
|
scrolledUpThreshold: props.scrolledUpThreshold,
|
|
35140
35149
|
suppressAutoscroll: suppressAutoscroll,
|
|
@@ -35221,7 +35230,7 @@ var MessageListWithContext = function (props) {
|
|
|
35221
35230
|
var showEmptyStateIndicator = elements.length === 0 && !threadList;
|
|
35222
35231
|
return (React__default["default"].createElement(React__default["default"].Fragment, null,
|
|
35223
35232
|
React__default["default"].createElement(MessageListMainPanel, null,
|
|
35224
|
-
React__default["default"].createElement("div", { className: "".concat(messageListClass, " ").concat(threadListClass), onScroll: onScroll, ref: setListElement, tabIndex: 0 }, showEmptyStateIndicator ? (React__default["default"].createElement(EmptyStateIndicator$1, { key: 'empty-state-indicator', listType: threadList ? 'thread' : 'message' })) : (React__default["default"].createElement(InfiniteScroll, __assign({ className: 'str-chat__reverse-infinite-scroll str-chat__message-list-scroll', "data-testid": 'reverse-infinite-scroll', hasNextPage: props.hasMoreNewer, hasPreviousPage: props.hasMore, head: props.head, isLoading: props.loadingMore, loader: React__default["default"].createElement("div", { className: 'str-chat__list__loading', key: 'loading-indicator' }, props.loadingMore && React__default["default"].createElement(LoadingIndicator$1, { size: 20 })), loadNextPage: loadMoreNewer, loadPreviousPage: loadMore }, props.internalInfiniteScrollProps),
|
|
35233
|
+
React__default["default"].createElement("div", { className: "".concat(messageListClass, " ").concat(threadListClass), onScroll: onScroll, ref: setListElement, tabIndex: 0 }, showEmptyStateIndicator ? (React__default["default"].createElement(EmptyStateIndicator$1, { key: 'empty-state-indicator', listType: threadList ? 'thread' : 'message' })) : (React__default["default"].createElement(InfiniteScroll, __assign({ className: 'str-chat__reverse-infinite-scroll str-chat__message-list-scroll', "data-testid": 'reverse-infinite-scroll', hasNextPage: props.hasMoreNewer, hasPreviousPage: props.hasMore, head: props.head, isLoading: props.loadingMore, loader: React__default["default"].createElement("div", { className: 'str-chat__list__loading', key: 'loading-indicator' }, props.loadingMore && React__default["default"].createElement(LoadingIndicator$1, { size: 20 })), loadNextPage: loadMoreNewer, loadPreviousPage: loadMore }, props.internalInfiniteScrollProps, { threshold: loadMoreScrollThreshold }),
|
|
35225
35234
|
React__default["default"].createElement("ul", { className: 'str-chat__ul', ref: setUlElement }, elements),
|
|
35226
35235
|
React__default["default"].createElement(TypingIndicator$1, { threadList: threadList }),
|
|
35227
35236
|
React__default["default"].createElement("div", { key: 'bottom' }))))),
|