stream-chat-react 8.1.2 → 8.2.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.
Files changed (172) hide show
  1. package/dist/browser.full-bundle.js +50251 -51346
  2. package/dist/browser.full-bundle.js.map +1 -1
  3. package/dist/browser.full-bundle.min.js +6 -5
  4. package/dist/browser.full-bundle.min.js.map +1 -1
  5. package/dist/components/Attachment/Card.d.ts +2 -2
  6. package/dist/components/Attachment/Card.d.ts.map +1 -1
  7. package/dist/components/Attachment/utils.d.ts.map +1 -1
  8. package/dist/components/Attachment/utils.js +2 -1
  9. package/dist/components/AutoCompleteTextarea/Header.d.ts +1 -2
  10. package/dist/components/AutoCompleteTextarea/Header.d.ts.map +1 -1
  11. package/dist/components/AutoCompleteTextarea/List.d.ts.map +1 -1
  12. package/dist/components/AutoCompleteTextarea/List.js +3 -5
  13. package/dist/components/AutoCompleteTextarea/Textarea.d.ts +3 -4
  14. package/dist/components/AutoCompleteTextarea/Textarea.d.ts.map +1 -1
  15. package/dist/components/AutoCompleteTextarea/Textarea.js +17 -52
  16. package/dist/components/AutoCompleteTextarea/index.d.ts +0 -1
  17. package/dist/components/AutoCompleteTextarea/index.d.ts.map +1 -1
  18. package/dist/components/AutoCompleteTextarea/index.js +0 -1
  19. package/dist/components/Channel/Channel.d.ts.map +1 -1
  20. package/dist/components/Channel/Channel.js +3 -7
  21. package/dist/components/Channel/hooks/useCreateChannelStateContext.js +2 -2
  22. package/dist/components/Channel/hooks/useIsMounted.js +7 -4
  23. package/dist/components/Channel/utils.js +2 -2
  24. package/dist/components/ChannelHeader/ChannelHeader.d.ts.map +1 -1
  25. package/dist/components/ChannelHeader/ChannelHeader.js +1 -1
  26. package/dist/components/ChannelPreview/ChannelPreview.d.ts.map +1 -1
  27. package/dist/components/ChannelPreview/ChannelPreview.js +20 -4
  28. package/dist/components/ChannelSearch/SearchResults.d.ts.map +1 -1
  29. package/dist/components/Chat/hooks/useChat.d.ts.map +1 -1
  30. package/dist/components/Chat/hooks/useChat.js +2 -3
  31. package/dist/components/ChatAutoComplete/ChatAutoComplete.js +1 -1
  32. package/dist/components/CommandItem/CommandItem.d.ts +2 -2
  33. package/dist/components/CommandItem/CommandItem.d.ts.map +1 -1
  34. package/dist/components/DateSeparator/DateSeparator.d.ts +1 -1
  35. package/dist/components/DateSeparator/DateSeparator.d.ts.map +1 -1
  36. package/dist/components/DateSeparator/DateSeparator.js +9 -10
  37. package/dist/components/EmoticonItem/EmoticonItem.d.ts +1 -2
  38. package/dist/components/EmoticonItem/EmoticonItem.d.ts.map +1 -1
  39. package/dist/components/EmptyStateIndicator/EmptyStateIndicator.d.ts +1 -2
  40. package/dist/components/EmptyStateIndicator/EmptyStateIndicator.d.ts.map +1 -1
  41. package/dist/components/EventComponent/EventComponent.d.ts.map +1 -1
  42. package/dist/components/EventComponent/EventComponent.js +17 -9
  43. package/dist/components/Gallery/Image.d.ts +1 -2
  44. package/dist/components/Gallery/Image.d.ts.map +1 -1
  45. package/dist/components/Gallery/ModalWrapper.d.ts +1 -1
  46. package/dist/components/Gallery/ModalWrapper.d.ts.map +1 -1
  47. package/dist/components/InfiniteScrollPaginator/InfiniteScroll.d.ts +2 -2
  48. package/dist/components/InfiniteScrollPaginator/InfiniteScroll.d.ts.map +1 -1
  49. package/dist/components/LoadMore/LoadMoreButton.d.ts +2 -2
  50. package/dist/components/LoadMore/LoadMoreButton.d.ts.map +1 -1
  51. package/dist/components/LoadMore/LoadMorePaginator.d.ts +3 -3
  52. package/dist/components/LoadMore/LoadMorePaginator.d.ts.map +1 -1
  53. package/dist/components/Loading/LoadingChannels.d.ts +1 -1
  54. package/dist/components/Loading/LoadingChannels.d.ts.map +1 -1
  55. package/dist/components/Loading/LoadingErrorIndicator.d.ts +1 -2
  56. package/dist/components/Loading/LoadingErrorIndicator.d.ts.map +1 -1
  57. package/dist/components/Loading/LoadingErrorIndicator.js +1 -1
  58. package/dist/components/Loading/LoadingIndicator.d.ts +1 -2
  59. package/dist/components/Loading/LoadingIndicator.d.ts.map +1 -1
  60. package/dist/components/MML/MML.d.ts +1 -2
  61. package/dist/components/MML/MML.d.ts.map +1 -1
  62. package/dist/components/Message/MessageDeleted.d.ts.map +1 -1
  63. package/dist/components/Message/MessageRepliesCountButton.d.ts +3 -4
  64. package/dist/components/Message/MessageRepliesCountButton.d.ts.map +1 -1
  65. package/dist/components/Message/MessageText.d.ts.map +1 -1
  66. package/dist/components/Message/MessageTimestamp.d.ts +0 -2
  67. package/dist/components/Message/MessageTimestamp.d.ts.map +1 -1
  68. package/dist/components/Message/MessageTimestamp.js +7 -34
  69. package/dist/components/Message/hooks/usePinHandler.d.ts +1 -1
  70. package/dist/components/Message/hooks/usePinHandler.d.ts.map +1 -1
  71. package/dist/components/Message/hooks/usePinHandler.js +3 -3
  72. package/dist/components/Message/utils.d.ts.map +1 -1
  73. package/dist/components/Message/utils.js +5 -10
  74. package/dist/components/MessageActions/MessageActions.d.ts.map +1 -1
  75. package/dist/components/MessageInput/EditMessageForm.d.ts.map +1 -1
  76. package/dist/components/MessageInput/EditMessageForm.js +1 -2
  77. package/dist/components/MessageInput/MessageInput.d.ts +12 -8
  78. package/dist/components/MessageInput/MessageInput.d.ts.map +1 -1
  79. package/dist/components/MessageInput/MessageInput.js +1 -5
  80. package/dist/components/MessageInput/MessageInputFlat.d.ts.map +1 -1
  81. package/dist/components/MessageInput/MessageInputFlat.js +3 -1
  82. package/dist/components/MessageInput/MessageInputSmall.d.ts.map +1 -1
  83. package/dist/components/MessageInput/MessageInputSmall.js +3 -1
  84. package/dist/components/MessageInput/QuotedMessagePreview.d.ts.map +1 -1
  85. package/dist/components/MessageInput/QuotedMessagePreview.js +4 -6
  86. package/dist/components/MessageInput/hooks/useAttachments.d.ts +4 -4
  87. package/dist/components/MessageInput/hooks/useAttachments.js +2 -2
  88. package/dist/components/MessageInput/hooks/useCooldownTimer.d.ts +1 -1
  89. package/dist/components/MessageInput/hooks/useCooldownTimer.d.ts.map +1 -1
  90. package/dist/components/MessageInput/hooks/useCreateMessageInputContext.js +2 -2
  91. package/dist/components/MessageInput/hooks/useFileUploads.d.ts +2 -2
  92. package/dist/components/MessageInput/hooks/useFileUploads.d.ts.map +1 -1
  93. package/dist/components/MessageInput/hooks/useImageUploads.d.ts +2 -2
  94. package/dist/components/MessageInput/hooks/useImageUploads.d.ts.map +1 -1
  95. package/dist/components/MessageInput/hooks/useMessageInputState.d.ts +1 -1
  96. package/dist/components/MessageInput/hooks/useMessageInputState.d.ts.map +1 -1
  97. package/dist/components/MessageInput/hooks/useMessageInputState.js +24 -27
  98. package/dist/components/MessageInput/hooks/usePasteHandler.d.ts +1 -1
  99. package/dist/components/MessageInput/hooks/usePasteHandler.d.ts.map +1 -1
  100. package/dist/components/MessageInput/hooks/usePasteHandler.js +3 -1
  101. package/dist/components/MessageInput/hooks/useSubmitHandler.d.ts.map +1 -1
  102. package/dist/components/MessageInput/hooks/useSubmitHandler.js +17 -15
  103. package/dist/components/MessageInput/icons.d.ts +4 -4
  104. package/dist/components/MessageInput/icons.d.ts.map +1 -1
  105. package/dist/components/MessageList/Center.d.ts +2 -4
  106. package/dist/components/MessageList/Center.d.ts.map +1 -1
  107. package/dist/components/MessageList/ConnectionStatus.d.ts +2 -1
  108. package/dist/components/MessageList/ConnectionStatus.d.ts.map +1 -1
  109. package/dist/components/MessageList/CustomNotification.d.ts +2 -2
  110. package/dist/components/MessageList/CustomNotification.d.ts.map +1 -1
  111. package/dist/components/MessageList/MessageNotification.d.ts +2 -1
  112. package/dist/components/MessageList/MessageNotification.d.ts.map +1 -1
  113. package/dist/components/MessageList/utils.js +3 -3
  114. package/dist/components/Modal/Modal.d.ts +2 -2
  115. package/dist/components/Modal/Modal.d.ts.map +1 -1
  116. package/dist/components/Reactions/ReactionSelector.d.ts.map +1 -1
  117. package/dist/components/Reactions/ReactionSelector.js +1 -1
  118. package/dist/components/SafeAnchor/SafeAnchor.d.ts +2 -2
  119. package/dist/components/SafeAnchor/SafeAnchor.d.ts.map +1 -1
  120. package/dist/components/Thread/Thread.js +50 -10
  121. package/dist/components/Tooltip/Tooltip.d.ts +2 -2
  122. package/dist/components/Tooltip/Tooltip.d.ts.map +1 -1
  123. package/dist/components/UserItem/UserItem.d.ts +1 -1
  124. package/dist/components/UserItem/UserItem.d.ts.map +1 -1
  125. package/dist/context/ChannelActionContext.d.ts +4 -1
  126. package/dist/context/ChannelActionContext.d.ts.map +1 -1
  127. package/dist/context/ChannelStateContext.d.ts +4 -1
  128. package/dist/context/ChannelStateContext.d.ts.map +1 -1
  129. package/dist/context/ChatContext.d.ts +4 -1
  130. package/dist/context/ChatContext.d.ts.map +1 -1
  131. package/dist/context/ComponentContext.d.ts +4 -1
  132. package/dist/context/ComponentContext.d.ts.map +1 -1
  133. package/dist/context/EmojiContext.d.ts +4 -1
  134. package/dist/context/EmojiContext.d.ts.map +1 -1
  135. package/dist/context/MessageContext.d.ts +4 -1
  136. package/dist/context/MessageContext.d.ts.map +1 -1
  137. package/dist/context/TranslationContext.d.ts +9 -5
  138. package/dist/context/TranslationContext.d.ts.map +1 -1
  139. package/dist/context/TranslationContext.js +6 -8
  140. package/dist/context/TypingContext.d.ts +4 -1
  141. package/dist/context/TypingContext.d.ts.map +1 -1
  142. package/dist/i18n/Streami18n.d.ts +1 -0
  143. package/dist/i18n/Streami18n.d.ts.map +1 -1
  144. package/dist/i18n/Streami18n.js +3 -2
  145. package/dist/i18n/utils.d.ts +13 -0
  146. package/dist/i18n/utils.d.ts.map +1 -0
  147. package/dist/i18n/utils.js +33 -0
  148. package/dist/index.cjs.js +6961 -7094
  149. package/dist/index.cjs.js.map +1 -1
  150. package/dist/stories/{connected-user.stories.d.ts → add-message.stories.d.ts} +1 -1
  151. package/dist/stories/add-message.stories.d.ts.map +1 -0
  152. package/dist/stories/{connected-user.stories.js → add-message.stories.js} +4 -3
  153. package/dist/stories/jump-to-message.stories.d.ts.map +1 -1
  154. package/dist/stories/jump-to-message.stories.js +0 -3
  155. package/dist/stories/mark-read.stories.d.ts.map +1 -1
  156. package/dist/stories/mark-read.stories.js +4 -25
  157. package/dist/stories/navigate-long-message-lists.stories.d.ts +4 -0
  158. package/dist/stories/navigate-long-message-lists.stories.d.ts.map +1 -0
  159. package/dist/stories/navigate-long-message-lists.stories.js +167 -0
  160. package/dist/stories/utils.js +1 -1
  161. package/dist/types/types.d.ts +2 -0
  162. package/dist/types/types.d.ts.map +1 -1
  163. package/dist/utils.d.ts +5 -1
  164. package/dist/utils.d.ts.map +1 -1
  165. package/dist/utils.js +5 -8
  166. package/dist/version.d.ts +1 -1
  167. package/dist/version.js +1 -1
  168. package/package.json +23 -22
  169. package/dist/components/AutoCompleteTextarea/listener.d.ts +0 -22
  170. package/dist/components/AutoCompleteTextarea/listener.d.ts.map +0 -1
  171. package/dist/components/AutoCompleteTextarea/listener.js +0 -77
  172. package/dist/stories/connected-user.stories.d.ts.map +0 -1
@@ -1,4 +1,4 @@
1
1
  import '@stream-io/stream-chat-css/dist/css/index.css';
2
2
  export declare const User1: () => JSX.Element;
3
3
  export declare const User2: () => JSX.Element;
4
- //# sourceMappingURL=connected-user.stories.d.ts.map
4
+ //# sourceMappingURL=add-message.stories.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"add-message.stories.d.ts","sourceRoot":"","sources":["../../src/stories/add-message.stories.tsx"],"names":[],"mappings":"AACA,OAAO,+CAA+C,CAAC;AA8DvD,eAAO,MAAM,KAAK,mBAUjB,CAAC;AAEF,eAAO,MAAM,KAAK,mBAUjB,CAAC"}
@@ -1,7 +1,7 @@
1
1
  /* eslint-disable @typescript-eslint/no-explicit-any */
2
2
  import '@stream-io/stream-chat-css/dist/css/index.css';
3
3
  import React from 'react';
4
- import { Channel, ChannelHeader, ChannelList, MessageList, useChannelStateContext, Window, } from '../index';
4
+ import { Channel, ChannelHeader, ChannelList, MessageList, Thread, useChannelStateContext, Window, } from '../index';
5
5
  import { ConnectedUser } from './utils';
6
6
  var channelId = import.meta.env.E2E_ADD_MESSAGE_CHANNEL;
7
7
  if (!channelId || typeof channelId !== 'string') {
@@ -22,12 +22,13 @@ var sort = { last_updated: 1 };
22
22
  var WrappedConnectedUser = function (_a) {
23
23
  var token = _a.token, userId = _a.userId;
24
24
  return (React.createElement(ConnectedUser, { token: token, userId: userId },
25
- React.createElement(ChannelList, { filters: { members: { $in: [userId] } }, sort: sort }),
25
+ React.createElement(ChannelList, { filters: { id: { $eq: 'add-message' }, members: { $in: [userId] } }, setActiveChannelOnMount: false, sort: sort }),
26
26
  React.createElement(Channel, null,
27
27
  React.createElement(Window, null,
28
28
  React.createElement(ChannelHeader, null),
29
29
  React.createElement(MessageList, null),
30
- React.createElement(Controls, null)))));
30
+ React.createElement(Controls, null)),
31
+ React.createElement(Thread, null))));
31
32
  };
32
33
  export var User1 = function () {
33
34
  var userId = import.meta.env.E2E_TEST_USER_1;
@@ -1 +1 @@
1
- {"version":3,"file":"jump-to-message.stories.d.ts","sourceRoot":"","sources":["../../src/stories/jump-to-message.stories.tsx"],"names":[],"mappings":"AAWA,OAAO,+CAA+C,CAAC;AA0CvD,eAAO,MAAM,wBAAwB,mBAapC,CAAC;AAEF,eAAO,MAAM,4BAA4B,mBAaxC,CAAC"}
1
+ {"version":3,"file":"jump-to-message.stories.d.ts","sourceRoot":"","sources":["../../src/stories/jump-to-message.stories.tsx"],"names":[],"mappings":"AAWA,OAAO,+CAA+C,CAAC;AAkCvD,eAAO,MAAM,wBAAwB,mBAYpC,CAAC;AAEF,eAAO,MAAM,4BAA4B,mBAYxC,CAAC"}
@@ -62,9 +62,7 @@ var JumpToMessage = function () {
62
62
  });
63
63
  }); } }, "Jump to message '29'"));
64
64
  };
65
- var StyleFix = function () { return (React.createElement("style", null, "\n .str-chat {\n height: 700px\n }\n ")); };
66
65
  export var JumpInRegularMessageList = function () { return (React.createElement("div", null,
67
- React.createElement(StyleFix, null),
68
66
  React.createElement(ConnectedUser, { token: userToken, userId: userId },
69
67
  React.createElement(ChannelList, { filters: { id: { $eq: channelId } } }),
70
68
  React.createElement(Channel, null,
@@ -72,7 +70,6 @@ export var JumpInRegularMessageList = function () { return (React.createElement(
72
70
  React.createElement(Window, null,
73
71
  React.createElement(MessageList, null)))))); };
74
72
  export var JumpInVirtualizedMessageList = function () { return (React.createElement("div", null,
75
- React.createElement(StyleFix, null),
76
73
  React.createElement(ConnectedUser, { token: userToken, userId: userId },
77
74
  React.createElement(ChannelList, { filters: { id: { $eq: channelId } } }),
78
75
  React.createElement(Channel, null,
@@ -1 +1 @@
1
- {"version":3,"file":"mark-read.stories.d.ts","sourceRoot":"","sources":["../../src/stories/mark-read.stories.tsx"],"names":[],"mappings":"AACA,OAAO,+CAA+C,CAAC;AA2FvD,eAAO,MAAM,KAAK,mBAUjB,CAAC;AAEF,eAAO,MAAM,KAAK,mBAUjB,CAAC"}
1
+ {"version":3,"file":"mark-read.stories.d.ts","sourceRoot":"","sources":["../../src/stories/mark-read.stories.tsx"],"names":[],"mappings":"AACA,OAAO,+CAA+C,CAAC;AA6DvD,eAAO,MAAM,KAAK,mBAUjB,CAAC;AAEF,eAAO,MAAM,KAAK,mBAUjB,CAAC"}
@@ -1,19 +1,8 @@
1
- var __assign = (this && this.__assign) || function () {
2
- __assign = Object.assign || function(t) {
3
- for (var s, i = 1, n = arguments.length; i < n; i++) {
4
- s = arguments[i];
5
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
6
- t[p] = s[p];
7
- }
8
- return t;
9
- };
10
- return __assign.apply(this, arguments);
11
- };
12
1
  /* eslint-disable @typescript-eslint/no-explicit-any */
13
2
  import '@stream-io/stream-chat-css/dist/css/index.css';
14
3
  import React from 'react';
15
- import { v4 as uuid } from 'uuid';
16
- import { Channel, ChannelHeader, ChannelList, ChannelPreview, MessageList, useChannelStateContext, Window, } from '../index';
4
+ import { nanoid } from 'nanoid';
5
+ import { Channel, ChannelHeader, ChannelList, MessageList, useChannelStateContext, Window, } from '../index';
17
6
  import { ConnectedUser } from './utils';
18
7
  var channelId = import.meta.env.E2E_ADD_MESSAGE_CHANNEL;
19
8
  if (!channelId || typeof channelId !== 'string') {
@@ -25,26 +14,16 @@ var Controls = function () {
25
14
  React.createElement("button", { "data-testid": 'truncate', onClick: function () { return channel.truncate(); } }, "Truncate"),
26
15
  React.createElement("button", { "data-testid": 'add-message', onClick: function () {
27
16
  return channel.sendMessage({
28
- text: uuid(),
17
+ text: nanoid(),
29
18
  });
30
19
  } }, "Add message")));
31
20
  };
32
21
  // Sort in reverse order to avoid auto-selecting unread channel
33
22
  var sort = { last_updated: 1 };
34
- var CustomPreviewUI = function (_a) {
35
- var _b, _c;
36
- var activeChannel = _a.activeChannel, channel = _a.channel, displayTitle = _a.displayTitle, setActiveChannel = _a.setActiveChannel, unread = _a.unread, watchers = _a.watchers;
37
- var avatarName = displayTitle || ((_c = (_b = channel.state.messages[channel.state.messages.length - 1]) === null || _b === void 0 ? void 0 : _b.user) === null || _c === void 0 ? void 0 : _c.id);
38
- return (React.createElement("div", { "data-testid": "channel-" + channel.id, onClick: function () { return setActiveChannel === null || setActiveChannel === void 0 ? void 0 : setActiveChannel(channel, watchers); }, style: { background: channel.cid === (activeChannel === null || activeChannel === void 0 ? void 0 : activeChannel.cid) ? '#fff' : 'initial' } },
39
- React.createElement("span", null, avatarName),
40
- " || ",
41
- React.createElement("span", { "data-testid": 'unread-count' }, unread)));
42
- };
43
- var CustomPreview = function (props) { return (React.createElement(ChannelPreview, __assign({}, props, { Preview: CustomPreviewUI }))); };
44
23
  var WrappedConnectedUser = function (_a) {
45
24
  var token = _a.token, userId = _a.userId;
46
25
  return (React.createElement(ConnectedUser, { token: token, userId: userId },
47
- React.createElement(ChannelList, { filters: { members: { $in: [userId] }, name: { $autocomplete: 'mr-channel' } }, Preview: CustomPreview, setActiveChannelOnMount: false, sort: sort }),
26
+ React.createElement(ChannelList, { filters: { members: { $in: [userId] }, name: { $autocomplete: 'mr-channel' } }, setActiveChannelOnMount: false, sort: sort }),
48
27
  React.createElement(Channel, null,
49
28
  React.createElement(Window, null,
50
29
  React.createElement(ChannelHeader, null),
@@ -0,0 +1,4 @@
1
+ import '@stream-io/stream-chat-css/dist/css/index.css';
2
+ export declare const User1: () => JSX.Element;
3
+ export declare const User2: () => JSX.Element;
4
+ //# sourceMappingURL=navigate-long-message-lists.stories.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"navigate-long-message-lists.stories.d.ts","sourceRoot":"","sources":["../../src/stories/navigate-long-message-lists.stories.tsx"],"names":[],"mappings":"AACA,OAAO,+CAA+C,CAAC;AAgKvD,eAAO,MAAM,KAAK,mBAQjB,CAAC;AAEF,eAAO,MAAM,KAAK,mBAQjB,CAAC"}
@@ -0,0 +1,167 @@
1
+ var __assign = (this && this.__assign) || function () {
2
+ __assign = Object.assign || function(t) {
3
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
4
+ s = arguments[i];
5
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
6
+ t[p] = s[p];
7
+ }
8
+ return t;
9
+ };
10
+ return __assign.apply(this, arguments);
11
+ };
12
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
13
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
14
+ return new (P || (P = Promise))(function (resolve, reject) {
15
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
16
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
17
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
18
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
19
+ });
20
+ };
21
+ var __generator = (this && this.__generator) || function (thisArg, body) {
22
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
23
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
24
+ function verb(n) { return function (v) { return step([n, v]); }; }
25
+ function step(op) {
26
+ if (f) throw new TypeError("Generator is already executing.");
27
+ while (_) try {
28
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
29
+ if (y = 0, t) op = [op[0] & 2, t.value];
30
+ switch (op[0]) {
31
+ case 0: case 1: t = op; break;
32
+ case 4: _.label++; return { value: op[1], done: false };
33
+ case 5: _.label++; y = op[1]; op = [0]; continue;
34
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
35
+ default:
36
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
37
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
38
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
39
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
40
+ if (t[2]) _.ops.pop();
41
+ _.trys.pop(); continue;
42
+ }
43
+ op = body.call(thisArg, _);
44
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
45
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
46
+ }
47
+ };
48
+ /* eslint-disable @typescript-eslint/no-explicit-any */
49
+ import '@stream-io/stream-chat-css/dist/css/index.css';
50
+ import React, { useEffect } from 'react';
51
+ import { Channel, ChannelHeader, ChannelList, MessageList, Thread, useChannelActionContext, useChannelStateContext, useChatContext, Window, } from '../index';
52
+ import { ConnectedUser } from './utils';
53
+ var user1Id = import.meta.env.E2E_TEST_USER_1;
54
+ var user1Token = import.meta.env.E2E_TEST_USER_1_TOKEN;
55
+ var user2Id = import.meta.env.E2E_TEST_USER_2;
56
+ var user2Token = import.meta.env.E2E_TEST_USER_2_TOKEN;
57
+ var channelId = import.meta.env.E2E_LONG_MESSAGE_LISTS_CHANNEL;
58
+ if (!channelId || typeof channelId !== 'string') {
59
+ throw new Error('expected ADD_MESSAGE_CHANNEL');
60
+ }
61
+ var OtherUserControlButtons = function () {
62
+ var client = useChatContext().client;
63
+ var _a = useChannelStateContext(), channel = _a.channel, threadMessages = _a.threadMessages;
64
+ var lastMessage = channel.state.messages.slice(-1)[0];
65
+ return (React.createElement(React.Fragment, null,
66
+ React.createElement("button", { "data-testid": 'receive-reply', onClick: function () {
67
+ return channel.sendMessage({
68
+ parent_id: lastMessage.id,
69
+ text: 'Reply back',
70
+ });
71
+ } }, "Receive reply"),
72
+ React.createElement("button", { "data-testid": 'delete-other-last-reply', onClick: function () { return __awaiter(void 0, void 0, void 0, function () {
73
+ var lastReply;
74
+ return __generator(this, function (_a) {
75
+ switch (_a.label) {
76
+ case 0:
77
+ lastReply = threadMessages === null || threadMessages === void 0 ? void 0 : threadMessages.slice(-1)[0];
78
+ if (!lastReply) return [3 /*break*/, 2];
79
+ return [4 /*yield*/, client.deleteMessage(lastReply.id, true)];
80
+ case 1:
81
+ _a.sent();
82
+ _a.label = 2;
83
+ case 2: return [2 /*return*/];
84
+ }
85
+ });
86
+ }); } }, "Delete other user's last reply")));
87
+ };
88
+ // Sort in reverse order to avoid auto-selecting unread channel
89
+ var sort = { last_updated: 1 };
90
+ var Controls = function () {
91
+ var client = useChatContext().client;
92
+ var threadMessages = useChannelStateContext().threadMessages;
93
+ return (React.createElement("div", null,
94
+ React.createElement("button", { "data-testid": 'delete-last-reply', onClick: function () { return __awaiter(void 0, void 0, void 0, function () {
95
+ var lastReply;
96
+ return __generator(this, function (_a) {
97
+ switch (_a.label) {
98
+ case 0:
99
+ lastReply = threadMessages === null || threadMessages === void 0 ? void 0 : threadMessages.slice(-1)[0];
100
+ if (!lastReply) return [3 /*break*/, 2];
101
+ return [4 /*yield*/, client.deleteMessage(lastReply.id, true)];
102
+ case 1:
103
+ _a.sent();
104
+ _a.label = 2;
105
+ case 2: return [2 /*return*/];
106
+ }
107
+ });
108
+ }); } }, "Delete last reply")));
109
+ };
110
+ var SetThreadOpen = function () {
111
+ var openThread = useChannelActionContext().openThread;
112
+ var messages = useChannelStateContext().messages;
113
+ useEffect(function () {
114
+ if (messages) {
115
+ var lastMsg = messages.slice(-1)[0];
116
+ openThread(lastMsg, { preventDefault: function () { return null; } });
117
+ }
118
+ }, [messages]);
119
+ return null;
120
+ };
121
+ var OtherUserControls = function () {
122
+ var theOtherUserCredentials = document.location.search.match('user1')
123
+ ? { token: user2Token, userId: user2Id }
124
+ : { token: user1Token, userId: user1Id };
125
+ return (React.createElement("div", { className: theOtherUserCredentials.userId },
126
+ React.createElement("style", null, "\n ." + theOtherUserCredentials.userId + " .str-chat-channel {\n max-height: 30px;\n display: inline-block;\n }\n ." + theOtherUserCredentials.userId + " .str-chat__container {\n height: 30px;\n }\n\n ." + theOtherUserCredentials.userId + " .messaging.str-chat .str-chat__thread {\n display: none;\n }\n "),
127
+ React.createElement(ConnectedUser, __assign({}, theOtherUserCredentials),
128
+ React.createElement("div", { style: { display: 'none' } },
129
+ React.createElement(ChannelList, { customActiveChannel: channelId, filters: { id: { $eq: channelId }, members: { $in: [theOtherUserCredentials.userId] } }, setActiveChannelOnMount: true, sort: sort })),
130
+ React.createElement("div", { style: { height: '30px' } },
131
+ React.createElement(Channel, null,
132
+ React.createElement(SetThreadOpen, null),
133
+ React.createElement(OtherUserControlButtons, null),
134
+ React.createElement(Thread, null))))));
135
+ };
136
+ var WrappedConnectedUser = function (_a) {
137
+ var token = _a.token, userId = _a.userId;
138
+ return (React.createElement("div", { style: { display: 'flex', flexDirection: 'column' } },
139
+ React.createElement("div", { className: userId },
140
+ React.createElement(ConnectedUser, { token: token, userId: userId },
141
+ React.createElement(ChannelList, { filters: { id: { $eq: channelId }, members: { $in: [userId] } }, setActiveChannelOnMount: false, sort: sort }),
142
+ React.createElement(Channel, null,
143
+ React.createElement(Window, null,
144
+ React.createElement(ChannelHeader, null),
145
+ React.createElement(MessageList, null),
146
+ React.createElement(Controls, null)),
147
+ React.createElement(Thread, null)))),
148
+ React.createElement(OtherUserControls, null)));
149
+ };
150
+ export var User1 = function () {
151
+ if (!user1Id || typeof user1Id !== 'string') {
152
+ throw new Error('expected TEST_USER_1');
153
+ }
154
+ if (!user1Token || typeof user1Token !== 'string') {
155
+ throw new Error('expected TEST_USER_1_TOKEN');
156
+ }
157
+ return React.createElement(WrappedConnectedUser, { token: user1Token, userId: user1Id });
158
+ };
159
+ export var User2 = function () {
160
+ if (!user2Id || typeof user2Id !== 'string') {
161
+ throw new Error('expected TEST_USER_2');
162
+ }
163
+ if (!user2Token || typeof user2Token !== 'string') {
164
+ throw new Error('expected TEST_USER_2_TOKEN');
165
+ }
166
+ return React.createElement(WrappedConnectedUser, { token: user2Token, userId: user2Id });
167
+ };
@@ -11,7 +11,6 @@ export var ConnectedUser = function (_a) {
11
11
  var _b = useState(null), client = _b[0], setClient = _b[1];
12
12
  useEffect(function () {
13
13
  var c = new StreamChat(apiKey);
14
- c.connectUser({ id: userId }, token).then(function () { return setClient(c); });
15
14
  var handleConnectionChange = function (_a) {
16
15
  var _b = _a.online, online = _b === void 0 ? false : _b;
17
16
  if (!online)
@@ -19,6 +18,7 @@ export var ConnectedUser = function (_a) {
19
18
  setClient(c);
20
19
  };
21
20
  c.on('connection.changed', handleConnectionChange);
21
+ c.connectUser({ id: userId }, token);
22
22
  return function () {
23
23
  c.off('connection.changed', handleConnectionChange);
24
24
  c.disconnectUser().then(function () { return console.log('connection closed'); });
@@ -1,6 +1,8 @@
1
+ import type { PropsWithChildren } from 'react';
1
2
  import type { LoadingIndicatorProps } from '../components/Loading/LoadingIndicator';
2
3
  import type { Event, ExtendableGenerics, LiteralStringForUnion, Mute } from 'stream-chat';
3
4
  export declare type UnknownType = Record<string, unknown>;
5
+ export declare type PropsWithChildrenOnly = PropsWithChildren<Record<never, never>>;
4
6
  export declare type CustomTrigger = {
5
7
  [key: string]: {
6
8
  componentProps: UnknownType;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,wCAAwC,CAAC;AACpF,OAAO,KAAK,EAAE,KAAK,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AAE1F,oBAAY,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAElD,oBAAY,aAAa,GAAG;IAC1B,CAAC,GAAG,EAAE,MAAM,GAAG;QACb,cAAc,EAAE,WAAW,CAAC;QAC5B,IAAI,EAAE,WAAW,CAAC;KACnB,CAAC;CACH,CAAC;AAEF,oBAAY,iBAAiB,GAAG,eAAe,GAAG,cAAc,CAAC;AAEjE,oBAAY,qBAAqB,GAAG,WAAW,GAAG;IAChD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,MAAM,CAAC,EAAE,KAAK,CAAC;QACb,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC,CAAC;CACJ,CAAC;AAEF,oBAAY,kBAAkB,GAAG,WAAW,GAAG;IAC7C,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,oBAAY,yBAAyB,GAAG,kBAAkB,GAAG;IAC3D,cAAc,EAAE,qBAAqB,CAAC;IACtC,WAAW,EAAE,kBAAkB,CAAC;IAChC,WAAW,EAAE,qBAAqB,CAAC;IACnC,SAAS,EAAE,WAAW,CAAC;IACvB,WAAW,EAAE,kBAAkB,CAAC;IAChC,YAAY,EAAE,WAAW,CAAC;IAC1B,QAAQ,EAAE,eAAe,CAAC;CAC3B,CAAC;AAEF,oBAAY,kBAAkB,CAC5B,kBAAkB,SAAS,yBAAyB,GAAG,yBAAyB,IAC9E,WAAW,GAAG;IAChB,UAAU,CAAC,EAAE,iBAAiB,CAAC;IAC/B,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,KAAK,CAAC,EAAE,KAAK,CAAC,kBAAkB,CAAC,CAAC;IAClC,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB,CAAC;AAEF,oBAAY,uBAAuB,GAAG;IACpC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,oBAAY,eAAe,CACzB,kBAAkB,SAAS,yBAAyB,GAAG,yBAAyB,IAC9E,WAAW,GACb,uBAAuB,GAAG;IACxB,KAAK,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC;CACzC,CAAC;AAEJ,oBAAY,aAAa,GACrB,UAAU,GACV,cAAc,GACd,oBAAoB,GACpB,0BAA0B,GAC1B,aAAa,GACb,mBAAmB,GACnB,yBAAyB,CAAC;AAE9B,oBAAY,cAAc,GAAG;IAC3B,qCAAqC;IACrC,YAAY,EAAE,MAAM,IAAI,CAAC;IACzB,gDAAgD;IAChD,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,mCAAmC;IACnC,gBAAgB,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC,qBAAqB,CAAC,CAAC;IAC9D,uEAAuE;IACvE,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,0CAA0C;IAC1C,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,sDAAsD;IACtD,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types/types.ts"],"names":[],"mappings":"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"}
package/dist/utils.d.ts CHANGED
@@ -1,4 +1,5 @@
1
1
  import React from 'react';
2
+ import { nanoid } from 'nanoid';
2
3
  import type { UserResponse } from 'stream-chat';
3
4
  import type { DefaultStreamChatGenerics } from './types/types';
4
5
  export declare const isOnlyEmojis: (text?: string | undefined) => boolean;
@@ -19,6 +20,9 @@ export declare type RenderTextOptions = {
19
20
  };
20
21
  export declare const renderText: <StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics>(text?: string | undefined, mentioned_users?: UserResponse<StreamChatGenerics>[] | undefined, options?: RenderTextOptions) => JSX.Element | null;
21
22
  export declare function escapeRegExp(text: string): string;
22
- export declare function generateRandomId(): string;
23
+ /**
24
+ * @deprecated will be removed in the next major release
25
+ */
26
+ export declare const generateRandomId: typeof nanoid;
23
27
  export declare const getWholeChar: (str: string, i: number) => string;
24
28
  //# sourceMappingURL=utils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA4B,MAAM,OAAO,CAAC;AASjD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,eAAe,CAAC;AAE/D,eAAO,MAAM,YAAY,wCAOxB,CAAC;AAoBF,eAAO,MAAM,kBAAkB,YAAa,MAAM,sBAajD,CAAC;AAEF,eAAO,MAAM,iBAAiB,YAAa,MAAM,qBAIhD,CAAC;AAyBF,eAAO,MAAM,iBAAiB,EAAE;IAAE,CAAC,QAAQ,EAAE,MAAM,GAAG,KAAK,CAAC,WAAW,CAAA;CAwBtE,CAAC;AAEF,eAAO,MAAM,mBAAmB,gDAe/B,CAAC;AAEF,eAAO,MAAM,sBAAsB,2LAmClC,CAAC;AAEF,oBAAY,YAAY,CACtB,kBAAkB,SAAS,yBAAyB,GAAG,yBAAyB,IAC9E;IACF,cAAc,EAAE,YAAY,CAAC,kBAAkB,CAAC,CAAC;CAClD,CAAC;AAMF,oBAAY,iBAAiB,GAAG;IAC9B,uBAAuB,CAAC,EAAE;QACxB,CAAC,QAAQ,EAAE,MAAM,GAAG,KAAK,CAAC,WAAW,CAAC;KACvC,CAAC;CACH,CAAC;AAEF,eAAO,MAAM,UAAU,4LAKZ,iBAAiB,uBAiE3B,CAAC;AAEF,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,UAExC;AAOD,wBAAgB,gBAAgB,WAG/B;AAGD,eAAO,MAAM,YAAY,QAAS,MAAM,KAAK,MAAM,WAgClD,CAAC"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA4B,MAAM,OAAO,CAAC;AAGjD,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAOhC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,eAAe,CAAC;AAE/D,eAAO,MAAM,YAAY,wCAOxB,CAAC;AAoBF,eAAO,MAAM,kBAAkB,YAAa,MAAM,sBAajD,CAAC;AAEF,eAAO,MAAM,iBAAiB,YAAa,MAAM,qBAIhD,CAAC;AAyBF,eAAO,MAAM,iBAAiB,EAAE;IAAE,CAAC,QAAQ,EAAE,MAAM,GAAG,KAAK,CAAC,WAAW,CAAA;CAwBtE,CAAC;AAEF,eAAO,MAAM,mBAAmB,gDAe/B,CAAC;AAEF,eAAO,MAAM,sBAAsB,2LAmClC,CAAC;AAEF,oBAAY,YAAY,CACtB,kBAAkB,SAAS,yBAAyB,GAAG,yBAAyB,IAC9E;IACF,cAAc,EAAE,YAAY,CAAC,kBAAkB,CAAC,CAAC;CAClD,CAAC;AAMF,oBAAY,iBAAiB,GAAG;IAC9B,uBAAuB,CAAC,EAAE;QACxB,CAAC,QAAQ,EAAE,MAAM,GAAG,KAAK,CAAC,WAAW,CAAC;KACvC,CAAC;CACH,CAAC;AAEF,eAAO,MAAM,UAAU,4LAKZ,iBAAiB,uBAiE3B,CAAC;AAEF,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,UAExC;AAED;;GAEG;AACH,eAAO,MAAM,gBAAgB,eAAS,CAAC;AAGvC,eAAO,MAAM,YAAY,QAAS,MAAM,KAAK,MAAM,WAgClD,CAAC"}
package/dist/utils.js CHANGED
@@ -12,6 +12,7 @@ var __assign = (this && this.__assign) || function () {
12
12
  import React from 'react';
13
13
  import emojiRegex from 'emoji-regex';
14
14
  import * as linkify from 'linkifyjs';
15
+ import { nanoid } from 'nanoid';
15
16
  //@ts-expect-error
16
17
  import findAndReplace from 'mdast-util-find-and-replace';
17
18
  import RootReactMarkdown from 'react-markdown';
@@ -174,14 +175,10 @@ export var renderText = function (text, mentioned_users, options) {
174
175
  export function escapeRegExp(text) {
175
176
  return text.replace(/[-[\]{}()*+?.,\\^$|#]/g, '\\$&');
176
177
  }
177
- function S4() {
178
- return (((1 + Math.random()) * 0x10000) | 0).toString(16).substring(1);
179
- }
180
- // https://stackoverflow.com/a/6860916/2570866
181
- export function generateRandomId() {
182
- // prettier-ignore
183
- return (S4() + S4() + "-" + S4() + "-" + S4() + "-" + S4() + "-" + S4() + S4() + S4());
184
- }
178
+ /**
179
+ * @deprecated will be removed in the next major release
180
+ */
181
+ export var generateRandomId = nanoid;
185
182
  // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/charAt#getting_whole_characters
186
183
  export var getWholeChar = function (str, i) {
187
184
  var code = str.charCodeAt(i);
package/dist/version.d.ts CHANGED
@@ -1,2 +1,2 @@
1
- export declare const version = "8.1.2";
1
+ export declare const version = "8.2.0";
2
2
  //# sourceMappingURL=version.d.ts.map
package/dist/version.js CHANGED
@@ -1 +1 @@
1
- export var version = '8.1.2';
1
+ export var version = '8.2.0';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "stream-chat-react",
3
- "version": "8.1.2",
3
+ "version": "8.2.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/",
@@ -41,26 +41,26 @@
41
41
  "lodash.throttle": "^4.1.1",
42
42
  "lodash.uniqby": "^4.7.0",
43
43
  "mdast-util-find-and-replace": "1.1.1",
44
+ "nanoid": "^3.3.4",
44
45
  "pretty-bytes": "^5.4.1",
45
46
  "prop-types": "^15.7.2",
46
47
  "react-fast-compare": "^3.2.0",
47
- "react-file-utils": "1.1.9",
48
+ "react-file-utils": "^1.1.11",
48
49
  "react-image-gallery": "^1.2.7",
49
- "react-is": "^17.0.1",
50
+ "react-is": "^18.1.0",
50
51
  "react-markdown": "^5.0.3",
51
52
  "react-player": "^2.7.0",
52
53
  "react-textarea-autosize": "^8.3.0",
53
- "react-virtuoso": "^2.8.2",
54
- "textarea-caret": "^3.1.0",
55
- "uuid": "^8.3.1"
54
+ "react-virtuoso": "^2.10.2",
55
+ "textarea-caret": "^3.1.0"
56
56
  },
57
57
  "optionalDependencies": {
58
58
  "@stream-io/transliterate": "^1.5.5",
59
- "mml-react": "^0.4.5"
59
+ "mml-react": "^0.4.7"
60
60
  },
61
61
  "peerDependencies": {
62
- "react": "^17.0.0 || ^16.8.0",
63
- "react-dom": "^17.0.0 || ^16.8.0",
62
+ "react": "^18.0.0 || ^17.0.0 || ^16.8.0",
63
+ "react-dom": "^18.0.0 || ^17.0.0 || ^16.8.0",
64
64
  "stream-chat": "^6.5.0"
65
65
  },
66
66
  "files": [
@@ -81,7 +81,7 @@
81
81
  "@commitlint/cli": "^16.2.3",
82
82
  "@commitlint/config-conventional": "^16.2.1",
83
83
  "@ladle/react": "^0.11.0",
84
- "@playwright/test": "^1.20.0",
84
+ "@playwright/test": "^1.22.0",
85
85
  "@rollup/plugin-babel": "^5.2.1",
86
86
  "@rollup/plugin-image": "^2.1.1",
87
87
  "@rollup/plugin-json": "^4.1.0",
@@ -91,22 +91,22 @@
91
91
  "@semantic-release/changelog": "^6.0.1",
92
92
  "@semantic-release/git": "^10.0.1",
93
93
  "@stream-io/rollup-plugin-node-builtins": "^2.1.5",
94
- "@testing-library/jest-dom": "5.11.6",
95
- "@testing-library/react": "^11.2.2",
96
- "@testing-library/react-hooks": "^3.4.2",
94
+ "@testing-library/jest-dom": "^5.16.4",
95
+ "@testing-library/react": "^13.1.1",
96
+ "@testing-library/react-hooks": "^8.0.0",
97
97
  "@types/deep-equal": "^1.0.1",
98
98
  "@types/dotenv": "^8.2.0",
99
- "@types/emoji-mart": "^3.0.8",
99
+ "@types/emoji-mart": "^3.0.9",
100
100
  "@types/linkifyjs": "^2.1.3",
101
101
  "@types/lodash.debounce": "^4.0.6",
102
102
  "@types/lodash.isequal": "^4.5.5",
103
103
  "@types/lodash.throttle": "^4.1.6",
104
104
  "@types/lodash.uniqby": "^4.7.6",
105
105
  "@types/moment": "^2.13.0",
106
- "@types/react": "17.0.3",
107
- "@types/react-dom": "^17.0.0",
106
+ "@types/react": "^18.0.8",
107
+ "@types/react-dom": "^18.0.3",
108
108
  "@types/react-image-gallery": "^1.0.5",
109
- "@types/react-is": "^17.0.0",
109
+ "@types/react-is": "^17.0.3",
110
110
  "@types/textarea-caret": "3.0.0",
111
111
  "@types/uuid": "^8.3.0",
112
112
  "@typescript-eslint/eslint-plugin": "4.27.0",
@@ -146,14 +146,14 @@
146
146
  "husky": "^4.3.0",
147
147
  "i18next-parser": "^6.0.0",
148
148
  "jest": "^26.6.3",
149
- "jest-axe": "^5.0.1",
149
+ "jest-axe": "^6.0.0",
150
150
  "moment": "^2.29.1",
151
151
  "postcss": "^8.1.10",
152
152
  "postcss-loader": "^4.1.0",
153
153
  "prettier": "^2.2.0",
154
- "react": "^17.0.1",
155
- "react-dom": "^17.0.1",
156
- "react-test-renderer": "^17.0.1",
154
+ "react": "^18.1.0",
155
+ "react-dom": "^18.1.0",
156
+ "react-test-renderer": "^18.1.0",
157
157
  "rollup": "^2.33.3",
158
158
  "rollup-plugin-commonjs": "^10.1.0",
159
159
  "rollup-plugin-copy": "^3.4.0",
@@ -203,7 +203,8 @@
203
203
  "semantic-release": "semantic-release",
204
204
  "browse-examples": "ladle serve",
205
205
  "e2e": "playwright test",
206
- "e2e-fixtures": "node e2e/fixtures.mjs"
206
+ "e2e-fixtures": "node e2e/fixtures.mjs",
207
+ "e2e-container": "./e2e/scripts/run_in_container.sh"
207
208
  },
208
209
  "resolutions": {
209
210
  "ast-types": "^0.14.0"
@@ -1,22 +0,0 @@
1
- export namespace KEY_CODES {
2
- const ESC: number;
3
- const UP: number;
4
- const DOWN: number;
5
- const ENTER: number;
6
- const TAB: number;
7
- const SPACE: number;
8
- }
9
- declare var _default: Listener;
10
- export default _default;
11
- declare class Listener {
12
- index: number;
13
- listeners: {};
14
- refCount: number;
15
- f: (e: any) => void;
16
- startListen: () => void;
17
- stopListen: () => void;
18
- add: (keyCodes: any, fn: any) => number;
19
- remove: (ids: any) => void;
20
- removeAll: () => void;
21
- }
22
- //# sourceMappingURL=listener.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"listener.d.ts","sourceRoot":"","sources":["../../../src/components/AutoCompleteTextarea/listener.js"],"names":[],"mappings":";;;;;;;;;;AAaA;IAEI,cAAc;IACd,cAAmB;IACnB,iBAAiB;IAEjB,oBAkBC;IAGH,wBAOE;IAEF,uBAOE;IAEF,wCAaE;IAEF,2BAIE;IAEF,sBAGE;CACH"}
@@ -1,77 +0,0 @@
1
- /* eslint-disable */
2
- export var KEY_CODES = {
3
- ESC: 27,
4
- UP: 38,
5
- DOWN: 40,
6
- ENTER: 13,
7
- TAB: 9,
8
- SPACE: 32,
9
- };
10
- var keycodeMap = {};
11
- // This is self-made key shortcuts manager, used for caching key strokes
12
- var Listener = /** @class */ (function () {
13
- function Listener() {
14
- var _this = this;
15
- this.startListen = function () {
16
- if (!_this.refCount) {
17
- // prevent multiple listeners in case of multiple TextareaAutocomplete components on page
18
- document.addEventListener('keydown', _this.f);
19
- document.addEventListener('keyup', _this.f);
20
- }
21
- _this.refCount++;
22
- };
23
- this.stopListen = function () {
24
- _this.refCount--;
25
- if (!_this.refCount) {
26
- // prevent disable listening in case of multiple TextareaAutocomplete components on page
27
- document.removeEventListener('keydown', _this.f);
28
- document.removeEventListener('keyup', _this.f);
29
- }
30
- };
31
- this.add = function (keyCodes, fn) {
32
- var keyCode = keyCodes;
33
- if (typeof keyCode !== 'object')
34
- keyCode = [keyCode];
35
- _this.listeners[_this.index] = {
36
- keyCode: keyCode,
37
- fn: fn,
38
- };
39
- _this.index += 1;
40
- return _this.index;
41
- };
42
- this.remove = function (ids) {
43
- for (var _i = 0, _a = Object.entries(ids); _i < _a.length; _i++) {
44
- var key = _a[_i];
45
- delete _this.listeners[key];
46
- }
47
- };
48
- this.removeAll = function () {
49
- _this.listeners = {};
50
- _this.index = 0;
51
- };
52
- this.index = 0;
53
- this.listeners = {};
54
- this.refCount = 0;
55
- this.f = function (e) {
56
- var code = e.keyCode || e.which;
57
- keycodeMap[code] = e.type === 'keydown';
58
- if (e.type !== 'keydown') {
59
- keycodeMap[code] = false;
60
- return;
61
- }
62
- Object.values(_this.listeners).forEach(function (_a) {
63
- var keyCode = _a.keyCode, fn = _a.fn;
64
- if (keyCode.length > 1) {
65
- if (keyCode.every(function (keycode) { return keycodeMap[keycode]; })) {
66
- fn(e);
67
- }
68
- }
69
- else if (keyCode.includes(code) && keycodeMap[code]) {
70
- fn(e);
71
- }
72
- });
73
- };
74
- }
75
- return Listener;
76
- }());
77
- export default new Listener();
@@ -1 +0,0 @@
1
- {"version":3,"file":"connected-user.stories.d.ts","sourceRoot":"","sources":["../../src/stories/connected-user.stories.tsx"],"names":[],"mappings":"AACA,OAAO,+CAA+C,CAAC;AAwDvD,eAAO,MAAM,KAAK,mBAUjB,CAAC;AAEF,eAAO,MAAM,KAAK,mBAUjB,CAAC"}