stream-chat-react 11.10.0 → 11.11.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/{Window-7d524c3b.js → Window-194c5448.js} +2 -0
- package/dist/browser.full-bundle.js +45 -14
- 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/hooks/useCreateChatClient.d.ts +10 -0
- package/dist/components/Chat/hooks/useCreateChatClient.d.ts.map +1 -0
- package/dist/components/Chat/hooks/useCreateChatClient.js +31 -0
- package/dist/components/Chat/index.d.ts +1 -0
- package/dist/components/Chat/index.d.ts.map +1 -1
- package/dist/components/Chat/index.js +1 -0
- package/dist/components/Emojis/index.cjs.js +1 -1
- package/dist/components/InfiniteScrollPaginator/InfiniteScroll.d.ts.map +1 -1
- package/dist/components/InfiniteScrollPaginator/InfiniteScroll.js +2 -1
- package/dist/components/MessageList/MessageList.d.ts +1 -1
- package/dist/components/MessageList/MessageList.d.ts.map +1 -1
- package/dist/components/MessageList/MessageList.js +12 -13
- package/dist/constants/limits.d.ts +1 -0
- package/dist/constants/limits.d.ts.map +1 -1
- package/dist/constants/limits.js +1 -0
- package/dist/index.cjs.js +46 -16
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +3 -3
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { DefaultGenerics, ExtendableGenerics, OwnUserResponse, StreamChat, TokenOrProvider, UserResponse } from 'stream-chat';
|
|
2
|
+
/**
|
|
3
|
+
* React hook to create, connect and return `StreamChat` client.
|
|
4
|
+
*/
|
|
5
|
+
export declare const useCreateChatClient: <SCG extends ExtendableGenerics = DefaultGenerics>({ apiKey, tokenOrProvider, userData, }: {
|
|
6
|
+
apiKey: string;
|
|
7
|
+
tokenOrProvider: TokenOrProvider;
|
|
8
|
+
userData: OwnUserResponse<SCG> | UserResponse<SCG>;
|
|
9
|
+
}) => StreamChat<SCG> | null;
|
|
10
|
+
//# sourceMappingURL=useCreateChatClient.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useCreateChatClient.d.ts","sourceRoot":"","sources":["../../../../src/components/Chat/hooks/useCreateChatClient.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,eAAe,EACf,kBAAkB,EAClB,eAAe,EACf,UAAU,EACV,eAAe,EACf,YAAY,EACb,MAAM,aAAa,CAAC;AAErB;;GAEG;AACH,eAAO,MAAM,mBAAmB;YAKtB,MAAM;qBACG,eAAe;;4BA8BjC,CAAC"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { useEffect, useState } from 'react';
|
|
2
|
+
import { StreamChat, } from 'stream-chat';
|
|
3
|
+
/**
|
|
4
|
+
* React hook to create, connect and return `StreamChat` client.
|
|
5
|
+
*/
|
|
6
|
+
export var useCreateChatClient = function (_a) {
|
|
7
|
+
var apiKey = _a.apiKey, tokenOrProvider = _a.tokenOrProvider, userData = _a.userData;
|
|
8
|
+
var _b = useState(null), chatClient = _b[0], setChatClient = _b[1];
|
|
9
|
+
var _c = useState(userData), cachedUserData = _c[0], setCachedUserData = _c[1];
|
|
10
|
+
if (userData.id !== cachedUserData.id) {
|
|
11
|
+
setCachedUserData(userData);
|
|
12
|
+
}
|
|
13
|
+
useEffect(function () {
|
|
14
|
+
var client = new StreamChat(apiKey);
|
|
15
|
+
var didUserConnectInterrupt = false;
|
|
16
|
+
var connectionPromise = client.connectUser(cachedUserData, tokenOrProvider).then(function () {
|
|
17
|
+
if (!didUserConnectInterrupt)
|
|
18
|
+
setChatClient(client);
|
|
19
|
+
});
|
|
20
|
+
return function () {
|
|
21
|
+
didUserConnectInterrupt = true;
|
|
22
|
+
setChatClient(null);
|
|
23
|
+
connectionPromise
|
|
24
|
+
.then(function () { return client.disconnectUser(); })
|
|
25
|
+
.then(function () {
|
|
26
|
+
console.log("Connection for user \"".concat(cachedUserData.id, "\" has been closed"));
|
|
27
|
+
});
|
|
28
|
+
};
|
|
29
|
+
}, [apiKey, cachedUserData, tokenOrProvider]);
|
|
30
|
+
return chatClient;
|
|
31
|
+
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/Chat/index.ts"],"names":[],"mappings":"AAAA,cAAc,QAAQ,CAAC;AACvB,cAAc,iBAAiB,CAAC;AAChC,cAAc,yBAAyB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/Chat/index.ts"],"names":[],"mappings":"AAAA,cAAc,QAAQ,CAAC;AACvB,cAAc,iBAAiB,CAAC;AAChC,cAAc,yBAAyB,CAAC;AACxC,cAAc,6BAA6B,CAAC"}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
-
var Window = require('../../Window-
|
|
5
|
+
var Window = require('../../Window-194c5448.js');
|
|
6
6
|
var React = require('react');
|
|
7
7
|
var Picker = require('@emoji-mart/react');
|
|
8
8
|
require('dayjs');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InfiniteScroll.d.ts","sourceRoot":"","sources":["../../../src/components/InfiniteScrollPaginator/InfiniteScroll.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,iBAAiB,EAAsC,MAAM,OAAO,CAAC;AACrF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"InfiniteScroll.d.ts","sourceRoot":"","sources":["../../../src/components/InfiniteScrollPaginator/InfiniteScroll.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,iBAAiB,EAAsC,MAAM,OAAO,CAAC;AACrF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAcxD,MAAM,MAAM,mBAAmB,GAAG,cAAc,GAAG;IACjD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,KAAK,CAAC,WAAW,CAAC;IAC5B;;;OAGG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;;OAGG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,mHAAmH;IACnH,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IACpF,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACzB;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB;;;OAGG;IACH,aAAa,CAAC,EAAE,MAAM,IAAI,CAAC;IAC3B,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB,CAAC;AAEF,eAAO,MAAM,cAAc,UAAW,kBAAkB,mBAAmB,CAAC,uEAqH3E,CAAC"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { __assign, __rest } from "tslib";
|
|
2
2
|
import React, { useEffect, useLayoutEffect, useRef } from 'react';
|
|
3
3
|
import { deprecationAndReplacementWarning } from '../../utils/deprecationWarning';
|
|
4
|
+
import { DEFAULT_LOAD_PAGE_SCROLL_THRESHOLD } from '../../constants/limits';
|
|
4
5
|
/**
|
|
5
6
|
* Prevents Chrome hangups
|
|
6
7
|
* See: https://stackoverflow.com/questions/47524205/random-high-content-download-time-in-chrome/47684257#47684257
|
|
@@ -11,7 +12,7 @@ var mousewheelListener = function (event) {
|
|
|
11
12
|
}
|
|
12
13
|
};
|
|
13
14
|
export var InfiniteScroll = function (props) {
|
|
14
|
-
var children = props.children, _a = props.element, element = _a === void 0 ? 'div' : _a, hasMore = props.hasMore, hasMoreNewer = props.hasMoreNewer, hasNextPage = props.hasNextPage, hasPreviousPage = props.hasPreviousPage, head = props.head, _b = props.initialLoad, initialLoad = _b === void 0 ? true : _b, isLoading = props.isLoading, listenToScroll = props.listenToScroll, loader = props.loader, loadMore = props.loadMore, loadMoreNewer = props.loadMoreNewer, loadNextPage = props.loadNextPage, loadPreviousPage = props.loadPreviousPage, _c = props.threshold, threshold = _c === void 0 ?
|
|
15
|
+
var children = props.children, _a = props.element, element = _a === void 0 ? 'div' : _a, hasMore = props.hasMore, hasMoreNewer = props.hasMoreNewer, hasNextPage = props.hasNextPage, hasPreviousPage = props.hasPreviousPage, head = props.head, _b = props.initialLoad, initialLoad = _b === void 0 ? true : _b, isLoading = props.isLoading, listenToScroll = props.listenToScroll, loader = props.loader, loadMore = props.loadMore, loadMoreNewer = props.loadMoreNewer, loadNextPage = props.loadNextPage, loadPreviousPage = props.loadPreviousPage, _c = props.threshold, threshold = _c === void 0 ? DEFAULT_LOAD_PAGE_SCROLL_THRESHOLD : _c, _d = props.useCapture, useCapture = _d === void 0 ? false : _d, elementProps = __rest(props, ["children", "element", "hasMore", "hasMoreNewer", "hasNextPage", "hasPreviousPage", "head", "initialLoad", "isLoading", "listenToScroll", "loader", "loadMore", "loadMoreNewer", "loadNextPage", "loadPreviousPage", "threshold", "useCapture"]);
|
|
15
16
|
var loadNextPageFn = loadNextPage || loadMoreNewer;
|
|
16
17
|
var loadPreviousPageFn = loadPreviousPage || loadMore;
|
|
17
18
|
var hasNextPageFlag = hasNextPage || hasMoreNewer;
|
|
@@ -23,7 +23,7 @@ export type MessageListProps<StreamChatGenerics extends DefaultStreamChatGeneric
|
|
|
23
23
|
/** Hides the DateSeparator component when new messages are received in a channel that's watched but not active, defaults to false */
|
|
24
24
|
hideNewMessageSeparator?: boolean;
|
|
25
25
|
/** Overrides the default props passed to [InfiniteScroll](https://github.com/GetStream/stream-chat-react/blob/master/src/components/InfiniteScrollPaginator/InfiniteScroll.tsx) */
|
|
26
|
-
internalInfiniteScrollProps?: InfiniteScrollProps
|
|
26
|
+
internalInfiniteScrollProps?: Partial<InfiniteScrollProps>;
|
|
27
27
|
/** Function called when latest messages should be loaded, after the list has jumped at an earlier message set */
|
|
28
28
|
jumpToLatestMessage?: () => Promise<void>;
|
|
29
29
|
/** Whether or not the list is currently loading more items */
|
|
@@ -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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"}
|
|
@@ -17,25 +17,24 @@ import { defaultPinPermissions, MESSAGE_ACTIONS } from '../Message/utils';
|
|
|
17
17
|
import { TypingIndicator as DefaultTypingIndicator } from '../TypingIndicator';
|
|
18
18
|
import { MessageListMainPanel } from './MessageListMainPanel';
|
|
19
19
|
import { defaultRenderMessages } from './renderMessages';
|
|
20
|
-
import { DEFAULT_NEXT_CHANNEL_PAGE_SIZE } from '../../constants/limits';
|
|
20
|
+
import { DEFAULT_LOAD_PAGE_SCROLL_THRESHOLD, DEFAULT_NEXT_CHANNEL_PAGE_SIZE, } from '../../constants/limits';
|
|
21
21
|
var MessageListWithContext = function (props) {
|
|
22
22
|
var _a;
|
|
23
|
-
var channel = props.channel, channelUnreadUiState = props.channelUnreadUiState, _b = props.disableDateSeparator, disableDateSeparator = _b === void 0 ? false : _b, groupStyles = props.groupStyles, _c = props.hideDeletedMessages, hideDeletedMessages = _c === void 0 ? false : _c, _d = props.hideNewMessageSeparator, hideNewMessageSeparator = _d === void 0 ? false : _d,
|
|
24
|
-
|
|
25
|
-
returnAllReadData =
|
|
26
|
-
var
|
|
27
|
-
var
|
|
23
|
+
var channel = props.channel, channelUnreadUiState = props.channelUnreadUiState, _b = props.disableDateSeparator, disableDateSeparator = _b === void 0 ? false : _b, groupStyles = props.groupStyles, _c = props.hideDeletedMessages, hideDeletedMessages = _c === void 0 ? false : _c, _d = props.hideNewMessageSeparator, hideNewMessageSeparator = _d === void 0 ? false : _d, _e = props.internalInfiniteScrollProps, _f = _e === void 0 ? {} : _e, _g = _f.threshold, loadMoreScrollThreshold = _g === void 0 ? DEFAULT_LOAD_PAGE_SCROLL_THRESHOLD : _g, restInternalInfiniteScrollProps = __rest(_f, ["threshold"]), _h = props.messageActions, messageActions = _h === void 0 ? Object.keys(MESSAGE_ACTIONS) : _h, _j = props.messages, messages = _j === void 0 ? [] : _j, notifications = props.notifications, _k = props.noGroupByUser, noGroupByUser = _k === void 0 ? false : _k, _l = props.pinPermissions, pinPermissions = _l === void 0 ? defaultPinPermissions : _l, // @deprecated in favor of `channelCapabilities` - TODO: remove in next major release
|
|
24
|
+
_m = props.returnAllReadData, // @deprecated in favor of `channelCapabilities` - TODO: remove in next major release
|
|
25
|
+
returnAllReadData = _m === void 0 ? false : _m, _o = props.threadList, threadList = _o === void 0 ? false : _o, _p = props.unsafeHTML, unsafeHTML = _p === void 0 ? false : _p, headerPosition = props.headerPosition, read = props.read, _q = props.renderMessages, renderMessages = _q === void 0 ? defaultRenderMessages : _q, _r = props.messageLimit, messageLimit = _r === void 0 ? DEFAULT_NEXT_CHANNEL_PAGE_SIZE : _r, loadMoreCallback = props.loadMore, loadMoreNewerCallback = props.loadMoreNewer, _s = props.hasMoreNewer, hasMoreNewer = _s === void 0 ? false : _s, showUnreadNotificationAlways = props.showUnreadNotificationAlways, suppressAutoscroll = props.suppressAutoscroll, highlightedMessageId = props.highlightedMessageId, _t = props.jumpToLatestMessage, jumpToLatestMessage = _t === void 0 ? function () { return Promise.resolve(); } : _t;
|
|
26
|
+
var _u = React.useState(null), listElement = _u[0], setListElement = _u[1];
|
|
27
|
+
var _v = React.useState(null), ulElement = _v[0], setUlElement = _v[1];
|
|
28
28
|
var customClasses = useChatContext('MessageList').customClasses;
|
|
29
|
-
var
|
|
30
|
-
var
|
|
31
|
-
var _0 = useScrollLocationLogic({
|
|
29
|
+
var _w = useComponentContext('MessageList'), _x = _w.EmptyStateIndicator, EmptyStateIndicator = _x === void 0 ? DefaultEmptyStateIndicator : _x, _y = _w.LoadingIndicator, LoadingIndicator = _y === void 0 ? DefaultLoadingIndicator : _y, _z = _w.MessageListNotifications, MessageListNotifications = _z === void 0 ? DefaultMessageListNotifications : _z, _0 = _w.MessageNotification, MessageNotification = _0 === void 0 ? DefaultMessageNotification : _0, _1 = _w.TypingIndicator, TypingIndicator = _1 === void 0 ? DefaultTypingIndicator : _1, _2 = _w.UnreadMessagesNotification, UnreadMessagesNotification = _2 === void 0 ? DefaultUnreadMessagesNotification : _2;
|
|
30
|
+
var _3 = useScrollLocationLogic({
|
|
32
31
|
hasMoreNewer: hasMoreNewer,
|
|
33
32
|
listElement: listElement,
|
|
34
33
|
loadMoreScrollThreshold: loadMoreScrollThreshold,
|
|
35
34
|
messages: messages,
|
|
36
35
|
scrolledUpThreshold: props.scrolledUpThreshold,
|
|
37
36
|
suppressAutoscroll: suppressAutoscroll,
|
|
38
|
-
}), hasNewMessages =
|
|
37
|
+
}), hasNewMessages = _3.hasNewMessages, isMessageListScrolledToBottom = _3.isMessageListScrolledToBottom, onScroll = _3.onScroll, scrollToBottom = _3.scrollToBottom, wrapperRect = _3.wrapperRect;
|
|
39
38
|
var showUnreadMessagesNotification = useUnreadMessagesNotification({
|
|
40
39
|
isMessageListScrolledToBottom: isMessageListScrolledToBottom,
|
|
41
40
|
showAlways: !!showUnreadNotificationAlways,
|
|
@@ -47,7 +46,7 @@ var MessageListWithContext = function (props) {
|
|
|
47
46
|
unreadCount: (_a = channelUnreadUiState === null || channelUnreadUiState === void 0 ? void 0 : channelUnreadUiState.unread_messages) !== null && _a !== void 0 ? _a : 0,
|
|
48
47
|
wasMarkedUnread: !!(channelUnreadUiState === null || channelUnreadUiState === void 0 ? void 0 : channelUnreadUiState.first_unread_message_id),
|
|
49
48
|
});
|
|
50
|
-
var
|
|
49
|
+
var _4 = useEnrichedMessages({
|
|
51
50
|
channel: channel,
|
|
52
51
|
disableDateSeparator: disableDateSeparator,
|
|
53
52
|
groupStyles: groupStyles,
|
|
@@ -56,7 +55,7 @@ var MessageListWithContext = function (props) {
|
|
|
56
55
|
hideNewMessageSeparator: hideNewMessageSeparator,
|
|
57
56
|
messages: messages,
|
|
58
57
|
noGroupByUser: noGroupByUser,
|
|
59
|
-
}), messageGroupStyles =
|
|
58
|
+
}), messageGroupStyles = _4.messageGroupStyles, enrichedMessages = _4.messages;
|
|
60
59
|
var elements = useMessageListElements({
|
|
61
60
|
channelUnreadUiState: channelUnreadUiState,
|
|
62
61
|
enrichedMessages: enrichedMessages,
|
|
@@ -135,7 +134,7 @@ var MessageListWithContext = function (props) {
|
|
|
135
134
|
return (React.createElement(MessageListContextProvider, { value: { listElement: listElement, scrollToBottom: scrollToBottom } },
|
|
136
135
|
React.createElement(MessageListMainPanel, null,
|
|
137
136
|
!threadList && showUnreadMessagesNotification && (React.createElement(UnreadMessagesNotification, { unreadCount: channelUnreadUiState === null || channelUnreadUiState === void 0 ? void 0 : channelUnreadUiState.unread_messages })),
|
|
138
|
-
React.createElement("div", { className: "".concat(messageListClass, " ").concat(threadListClass), onScroll: onScroll, ref: setListElement, tabIndex: 0 }, showEmptyStateIndicator ? (React.createElement(EmptyStateIndicator, { key: 'empty-state-indicator', listType: threadList ? 'thread' : 'message' })) : (React.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.createElement("div", { className: 'str-chat__list__loading', key: 'loading-indicator' }, props.loadingMore && React.createElement(LoadingIndicator, { size: 20 })), loadNextPage: loadMoreNewer, loadPreviousPage: loadMore
|
|
137
|
+
React.createElement("div", { className: "".concat(messageListClass, " ").concat(threadListClass), onScroll: onScroll, ref: setListElement, tabIndex: 0 }, showEmptyStateIndicator ? (React.createElement(EmptyStateIndicator, { key: 'empty-state-indicator', listType: threadList ? 'thread' : 'message' })) : (React.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.createElement("div", { className: 'str-chat__list__loading', key: 'loading-indicator' }, props.loadingMore && React.createElement(LoadingIndicator, { size: 20 })), loadNextPage: loadMoreNewer, loadPreviousPage: loadMore, threshold: loadMoreScrollThreshold }, restInternalInfiniteScrollProps),
|
|
139
138
|
React.createElement("ul", { className: 'str-chat__ul', ref: setUlElement }, elements),
|
|
140
139
|
React.createElement(TypingIndicator, { threadList: threadList }),
|
|
141
140
|
React.createElement("div", { key: 'bottom' }))))),
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
export declare const DEFAULT_INITIAL_CHANNEL_PAGE_SIZE = 25;
|
|
2
2
|
export declare const DEFAULT_NEXT_CHANNEL_PAGE_SIZE = 100;
|
|
3
3
|
export declare const DEFAULT_THREAD_PAGE_SIZE = 50;
|
|
4
|
+
export declare const DEFAULT_LOAD_PAGE_SCROLL_THRESHOLD = 250;
|
|
4
5
|
//# sourceMappingURL=limits.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"limits.d.ts","sourceRoot":"","sources":["../../src/constants/limits.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,iCAAiC,KAAK,CAAC;AACpD,eAAO,MAAM,8BAA8B,MAAM,CAAC;AAClD,eAAO,MAAM,wBAAwB,KAAK,CAAC"}
|
|
1
|
+
{"version":3,"file":"limits.d.ts","sourceRoot":"","sources":["../../src/constants/limits.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,iCAAiC,KAAK,CAAC;AACpD,eAAO,MAAM,8BAA8B,MAAM,CAAC;AAClD,eAAO,MAAM,wBAAwB,KAAK,CAAC;AAC3C,eAAO,MAAM,kCAAkC,MAAM,CAAC"}
|
package/dist/constants/limits.js
CHANGED
package/dist/index.cjs.js
CHANGED
|
@@ -2,8 +2,9 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
-
var Window = require('./Window-
|
|
5
|
+
var Window = require('./Window-194c5448.js');
|
|
6
6
|
var React = require('react');
|
|
7
|
+
var streamChat = require('stream-chat');
|
|
7
8
|
var reactVirtuoso = require('react-virtuoso');
|
|
8
9
|
var throttle = require('lodash.throttle');
|
|
9
10
|
require('emoji-regex');
|
|
@@ -13,7 +14,6 @@ require('@braintree/sanitize-url');
|
|
|
13
14
|
require('react-image-gallery');
|
|
14
15
|
require('react-dom');
|
|
15
16
|
require('react-fast-compare');
|
|
16
|
-
require('stream-chat');
|
|
17
17
|
require('lodash.debounce');
|
|
18
18
|
require('dayjs');
|
|
19
19
|
require('dayjs/plugin/calendar');
|
|
@@ -521,7 +521,7 @@ var mousewheelListener = function (event) {
|
|
|
521
521
|
}
|
|
522
522
|
};
|
|
523
523
|
var InfiniteScroll = function (props) {
|
|
524
|
-
var children = props.children, _a = props.element, element = _a === void 0 ? 'div' : _a, hasMore = props.hasMore, hasMoreNewer = props.hasMoreNewer, hasNextPage = props.hasNextPage, hasPreviousPage = props.hasPreviousPage, head = props.head, _b = props.initialLoad, initialLoad = _b === void 0 ? true : _b, isLoading = props.isLoading, listenToScroll = props.listenToScroll, loader = props.loader, loadMore = props.loadMore, loadMoreNewer = props.loadMoreNewer, loadNextPage = props.loadNextPage, loadPreviousPage = props.loadPreviousPage, _c = props.threshold, threshold = _c === void 0 ?
|
|
524
|
+
var children = props.children, _a = props.element, element = _a === void 0 ? 'div' : _a, hasMore = props.hasMore, hasMoreNewer = props.hasMoreNewer, hasNextPage = props.hasNextPage, hasPreviousPage = props.hasPreviousPage, head = props.head, _b = props.initialLoad, initialLoad = _b === void 0 ? true : _b, isLoading = props.isLoading, listenToScroll = props.listenToScroll, loader = props.loader, loadMore = props.loadMore, loadMoreNewer = props.loadMoreNewer, loadNextPage = props.loadNextPage, loadPreviousPage = props.loadPreviousPage, _c = props.threshold, threshold = _c === void 0 ? Window.DEFAULT_LOAD_PAGE_SCROLL_THRESHOLD : _c, _d = props.useCapture, useCapture = _d === void 0 ? false : _d, elementProps = Window.__rest(props, ["children", "element", "hasMore", "hasMoreNewer", "hasNextPage", "hasPreviousPage", "head", "initialLoad", "isLoading", "listenToScroll", "loader", "loadMore", "loadMoreNewer", "loadNextPage", "loadPreviousPage", "threshold", "useCapture"]);
|
|
525
525
|
var loadNextPageFn = loadNextPage || loadMoreNewer;
|
|
526
526
|
var loadPreviousPageFn = loadPreviousPage || loadMore;
|
|
527
527
|
var hasNextPageFlag = hasNextPage || hasMoreNewer;
|
|
@@ -630,22 +630,21 @@ function defaultRenderMessages(_a) {
|
|
|
630
630
|
|
|
631
631
|
var MessageListWithContext = function (props) {
|
|
632
632
|
var _a;
|
|
633
|
-
var channel = props.channel, channelUnreadUiState = props.channelUnreadUiState, _b = props.disableDateSeparator, disableDateSeparator = _b === void 0 ? false : _b, groupStyles = props.groupStyles, _c = props.hideDeletedMessages, hideDeletedMessages = _c === void 0 ? false : _c, _d = props.hideNewMessageSeparator, hideNewMessageSeparator = _d === void 0 ? false : _d,
|
|
634
|
-
|
|
635
|
-
returnAllReadData =
|
|
636
|
-
var
|
|
637
|
-
var
|
|
633
|
+
var channel = props.channel, channelUnreadUiState = props.channelUnreadUiState, _b = props.disableDateSeparator, disableDateSeparator = _b === void 0 ? false : _b, groupStyles = props.groupStyles, _c = props.hideDeletedMessages, hideDeletedMessages = _c === void 0 ? false : _c, _d = props.hideNewMessageSeparator, hideNewMessageSeparator = _d === void 0 ? false : _d, _e = props.internalInfiniteScrollProps, _f = _e === void 0 ? {} : _e, _g = _f.threshold, loadMoreScrollThreshold = _g === void 0 ? Window.DEFAULT_LOAD_PAGE_SCROLL_THRESHOLD : _g, restInternalInfiniteScrollProps = Window.__rest(_f, ["threshold"]), _h = props.messageActions, messageActions = _h === void 0 ? Object.keys(Window.MESSAGE_ACTIONS) : _h, _j = props.messages, messages = _j === void 0 ? [] : _j, notifications = props.notifications, _k = props.noGroupByUser, noGroupByUser = _k === void 0 ? false : _k, _l = props.pinPermissions, pinPermissions = _l === void 0 ? Window.defaultPinPermissions : _l, // @deprecated in favor of `channelCapabilities` - TODO: remove in next major release
|
|
634
|
+
_m = props.returnAllReadData, // @deprecated in favor of `channelCapabilities` - TODO: remove in next major release
|
|
635
|
+
returnAllReadData = _m === void 0 ? false : _m, _o = props.threadList, threadList = _o === void 0 ? false : _o, _p = props.unsafeHTML, unsafeHTML = _p === void 0 ? false : _p, headerPosition = props.headerPosition, read = props.read, _q = props.renderMessages, renderMessages = _q === void 0 ? defaultRenderMessages : _q, _r = props.messageLimit, messageLimit = _r === void 0 ? Window.DEFAULT_NEXT_CHANNEL_PAGE_SIZE : _r, loadMoreCallback = props.loadMore, loadMoreNewerCallback = props.loadMoreNewer, _s = props.hasMoreNewer, hasMoreNewer = _s === void 0 ? false : _s, showUnreadNotificationAlways = props.showUnreadNotificationAlways, suppressAutoscroll = props.suppressAutoscroll, highlightedMessageId = props.highlightedMessageId, _t = props.jumpToLatestMessage, jumpToLatestMessage = _t === void 0 ? function () { return Promise.resolve(); } : _t;
|
|
636
|
+
var _u = React__default["default"].useState(null), listElement = _u[0], setListElement = _u[1];
|
|
637
|
+
var _v = React__default["default"].useState(null), ulElement = _v[0], setUlElement = _v[1];
|
|
638
638
|
var customClasses = Window.useChatContext('MessageList').customClasses;
|
|
639
|
-
var
|
|
640
|
-
var
|
|
641
|
-
var _0 = useScrollLocationLogic({
|
|
639
|
+
var _w = Window.useComponentContext('MessageList'), _x = _w.EmptyStateIndicator, EmptyStateIndicator = _x === void 0 ? Window.EmptyStateIndicator : _x, _y = _w.LoadingIndicator, LoadingIndicator = _y === void 0 ? Window.LoadingIndicator : _y, _z = _w.MessageListNotifications, MessageListNotifications$1 = _z === void 0 ? MessageListNotifications : _z, _0 = _w.MessageNotification, MessageNotification = _0 === void 0 ? Window.MessageNotification : _0, _1 = _w.TypingIndicator, TypingIndicator = _1 === void 0 ? Window.TypingIndicator : _1, _2 = _w.UnreadMessagesNotification, UnreadMessagesNotification$1 = _2 === void 0 ? UnreadMessagesNotification : _2;
|
|
640
|
+
var _3 = useScrollLocationLogic({
|
|
642
641
|
hasMoreNewer: hasMoreNewer,
|
|
643
642
|
listElement: listElement,
|
|
644
643
|
loadMoreScrollThreshold: loadMoreScrollThreshold,
|
|
645
644
|
messages: messages,
|
|
646
645
|
scrolledUpThreshold: props.scrolledUpThreshold,
|
|
647
646
|
suppressAutoscroll: suppressAutoscroll,
|
|
648
|
-
}), hasNewMessages =
|
|
647
|
+
}), hasNewMessages = _3.hasNewMessages, isMessageListScrolledToBottom = _3.isMessageListScrolledToBottom, onScroll = _3.onScroll, scrollToBottom = _3.scrollToBottom, wrapperRect = _3.wrapperRect;
|
|
649
648
|
var showUnreadMessagesNotification = useUnreadMessagesNotification({
|
|
650
649
|
isMessageListScrolledToBottom: isMessageListScrolledToBottom,
|
|
651
650
|
showAlways: !!showUnreadNotificationAlways,
|
|
@@ -657,7 +656,7 @@ var MessageListWithContext = function (props) {
|
|
|
657
656
|
unreadCount: (_a = channelUnreadUiState === null || channelUnreadUiState === void 0 ? void 0 : channelUnreadUiState.unread_messages) !== null && _a !== void 0 ? _a : 0,
|
|
658
657
|
wasMarkedUnread: !!(channelUnreadUiState === null || channelUnreadUiState === void 0 ? void 0 : channelUnreadUiState.first_unread_message_id),
|
|
659
658
|
});
|
|
660
|
-
var
|
|
659
|
+
var _4 = useEnrichedMessages({
|
|
661
660
|
channel: channel,
|
|
662
661
|
disableDateSeparator: disableDateSeparator,
|
|
663
662
|
groupStyles: groupStyles,
|
|
@@ -666,7 +665,7 @@ var MessageListWithContext = function (props) {
|
|
|
666
665
|
hideNewMessageSeparator: hideNewMessageSeparator,
|
|
667
666
|
messages: messages,
|
|
668
667
|
noGroupByUser: noGroupByUser,
|
|
669
|
-
}), messageGroupStyles =
|
|
668
|
+
}), messageGroupStyles = _4.messageGroupStyles, enrichedMessages = _4.messages;
|
|
670
669
|
var elements = useMessageListElements({
|
|
671
670
|
channelUnreadUiState: channelUnreadUiState,
|
|
672
671
|
enrichedMessages: enrichedMessages,
|
|
@@ -745,7 +744,7 @@ var MessageListWithContext = function (props) {
|
|
|
745
744
|
return (React__default["default"].createElement(Window.MessageListContextProvider, { value: { listElement: listElement, scrollToBottom: scrollToBottom } },
|
|
746
745
|
React__default["default"].createElement(MessageListMainPanel, null,
|
|
747
746
|
!threadList && showUnreadMessagesNotification && (React__default["default"].createElement(UnreadMessagesNotification$1, { unreadCount: channelUnreadUiState === null || channelUnreadUiState === void 0 ? void 0 : channelUnreadUiState.unread_messages })),
|
|
748
|
-
React__default["default"].createElement("div", { className: "".concat(messageListClass, " ").concat(threadListClass), onScroll: onScroll, ref: setListElement, tabIndex: 0 }, showEmptyStateIndicator ? (React__default["default"].createElement(EmptyStateIndicator, { key: 'empty-state-indicator', listType: threadList ? 'thread' : 'message' })) : (React__default["default"].createElement(InfiniteScroll, Window.__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, { size: 20 })), loadNextPage: loadMoreNewer, loadPreviousPage: loadMore
|
|
747
|
+
React__default["default"].createElement("div", { className: "".concat(messageListClass, " ").concat(threadListClass), onScroll: onScroll, ref: setListElement, tabIndex: 0 }, showEmptyStateIndicator ? (React__default["default"].createElement(EmptyStateIndicator, { key: 'empty-state-indicator', listType: threadList ? 'thread' : 'message' })) : (React__default["default"].createElement(InfiniteScroll, Window.__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, { size: 20 })), loadNextPage: loadMoreNewer, loadPreviousPage: loadMore, threshold: loadMoreScrollThreshold }, restInternalInfiniteScrollProps),
|
|
749
748
|
React__default["default"].createElement("ul", { className: 'str-chat__ul', ref: setUlElement }, elements),
|
|
750
749
|
React__default["default"].createElement(TypingIndicator, { threadList: threadList }),
|
|
751
750
|
React__default["default"].createElement("div", { key: 'bottom' }))))),
|
|
@@ -1306,7 +1305,7 @@ function VirtualizedMessageList(props) {
|
|
|
1306
1305
|
return (React__default["default"].createElement(VirtualizedMessageListWithContext, Window.__assign({ channel: channel, channelUnreadUiState: channelUnreadUiState, hasMore: !!hasMore, hasMoreNewer: !!hasMoreNewer, highlightedMessageId: highlightedMessageId, jumpToLatestMessage: jumpToLatestMessage, loadingMore: !!loadingMore, loadingMoreNewer: !!loadingMoreNewer, loadMore: loadMore, loadMoreNewer: loadMoreNewer, messages: messages, notifications: notifications, read: read, suppressAutoscroll: suppressAutoscroll }, props)));
|
|
1307
1306
|
}
|
|
1308
1307
|
|
|
1309
|
-
var version = '11.
|
|
1308
|
+
var version = '11.11.0';
|
|
1310
1309
|
|
|
1311
1310
|
var useChat = function (_a) {
|
|
1312
1311
|
var _b, _c;
|
|
@@ -1525,6 +1524,36 @@ var Chat = function (props) {
|
|
|
1525
1524
|
React__default["default"].createElement(Window.TranslationProvider, { value: translators }, children)));
|
|
1526
1525
|
};
|
|
1527
1526
|
|
|
1527
|
+
/**
|
|
1528
|
+
* React hook to create, connect and return `StreamChat` client.
|
|
1529
|
+
*/
|
|
1530
|
+
var useCreateChatClient = function (_a) {
|
|
1531
|
+
var apiKey = _a.apiKey, tokenOrProvider = _a.tokenOrProvider, userData = _a.userData;
|
|
1532
|
+
var _b = React.useState(null), chatClient = _b[0], setChatClient = _b[1];
|
|
1533
|
+
var _c = React.useState(userData), cachedUserData = _c[0], setCachedUserData = _c[1];
|
|
1534
|
+
if (userData.id !== cachedUserData.id) {
|
|
1535
|
+
setCachedUserData(userData);
|
|
1536
|
+
}
|
|
1537
|
+
React.useEffect(function () {
|
|
1538
|
+
var client = new streamChat.StreamChat(apiKey);
|
|
1539
|
+
var didUserConnectInterrupt = false;
|
|
1540
|
+
var connectionPromise = client.connectUser(cachedUserData, tokenOrProvider).then(function () {
|
|
1541
|
+
if (!didUserConnectInterrupt)
|
|
1542
|
+
setChatClient(client);
|
|
1543
|
+
});
|
|
1544
|
+
return function () {
|
|
1545
|
+
didUserConnectInterrupt = true;
|
|
1546
|
+
setChatClient(null);
|
|
1547
|
+
connectionPromise
|
|
1548
|
+
.then(function () { return client.disconnectUser(); })
|
|
1549
|
+
.then(function () {
|
|
1550
|
+
console.log("Connection for user \"".concat(cachedUserData.id, "\" has been closed"));
|
|
1551
|
+
});
|
|
1552
|
+
};
|
|
1553
|
+
}, [apiKey, cachedUserData, tokenOrProvider]);
|
|
1554
|
+
return chatClient;
|
|
1555
|
+
};
|
|
1556
|
+
|
|
1528
1557
|
var CloseIcon = function (_a) {
|
|
1529
1558
|
var title = _a.title;
|
|
1530
1559
|
var t = Window.useTranslationContext('CloseIcon').t;
|
|
@@ -1912,6 +1941,7 @@ exports.VirtualizedMessageList = VirtualizedMessageList;
|
|
|
1912
1941
|
exports.darkModeTheme = darkModeTheme;
|
|
1913
1942
|
exports.defaultRenderMessages = defaultRenderMessages;
|
|
1914
1943
|
exports.useChat = useChat;
|
|
1944
|
+
exports.useCreateChatClient = useCreateChatClient;
|
|
1915
1945
|
exports.useCustomStyles = useCustomStyles;
|
|
1916
1946
|
exports.useEnrichedMessages = useEnrichedMessages;
|
|
1917
1947
|
exports.useLastReadData = useLastReadData;
|
package/dist/version.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare const version = "11.
|
|
1
|
+
export declare const version = "11.11.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.11.0';
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "stream-chat-react",
|
|
3
|
-
"version": "11.
|
|
3
|
+
"version": "11.11.0",
|
|
4
4
|
"description": "React components to create chat conversations or livestream style chat",
|
|
5
5
|
"author": "GetStream",
|
|
6
6
|
"homepage": "https://getstream.io/chat/",
|
|
@@ -258,8 +258,8 @@
|
|
|
258
258
|
"e2e": "playwright test",
|
|
259
259
|
"e2e-fixtures": "node e2e/fixtures/fixtures.mjs",
|
|
260
260
|
"e2e-container": "./e2e/scripts/run_in_container.sh",
|
|
261
|
-
"docs
|
|
262
|
-
"docs
|
|
261
|
+
"docs:copy-css-docs": "scripts/merge-stream-chat-css-docs.sh node_modules/@stream-io/stream-chat-css/docs",
|
|
262
|
+
"docs:run": "yarn docs:copy-css-docs && stream-chat-docusaurus -s"
|
|
263
263
|
},
|
|
264
264
|
"resolutions": {
|
|
265
265
|
"ast-types": "^0.14.0",
|