stream-chat-react 9.1.0-alpha.0 → 9.1.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 (83) hide show
  1. package/dist/browser.full-bundle.js +751 -254
  2. package/dist/browser.full-bundle.js.map +1 -1
  3. package/dist/browser.full-bundle.min.js +3 -3
  4. package/dist/browser.full-bundle.min.js.map +1 -1
  5. package/dist/components/Channel/Channel.d.ts.map +1 -1
  6. package/dist/components/Channel/Channel.js +9 -3
  7. package/dist/components/Channel/channelState.js +1 -1
  8. package/dist/components/ChannelList/ChannelList.d.ts +2 -0
  9. package/dist/components/ChannelList/ChannelList.d.ts.map +1 -1
  10. package/dist/components/ChannelList/ChannelList.js +6 -4
  11. package/dist/components/ChannelList/ChannelListMessenger.d.ts +2 -2
  12. package/dist/components/ChannelList/ChannelListMessenger.d.ts.map +1 -1
  13. package/dist/components/ChannelList/ChannelListMessenger.js +1 -1
  14. package/dist/components/ChannelList/hooks/usePaginatedChannels.d.ts +0 -5
  15. package/dist/components/ChannelList/hooks/usePaginatedChannels.d.ts.map +1 -1
  16. package/dist/components/ChannelList/hooks/usePaginatedChannels.js +10 -15
  17. package/dist/components/Chat/Chat.d.ts.map +1 -1
  18. package/dist/components/Chat/Chat.js +3 -0
  19. package/dist/components/Chat/hooks/useChannelsQueryState.d.ts +12 -0
  20. package/dist/components/Chat/hooks/useChannelsQueryState.d.ts.map +1 -0
  21. package/dist/components/Chat/hooks/useChannelsQueryState.js +11 -0
  22. package/dist/components/Chat/hooks/useCreateChatContext.d.ts.map +1 -1
  23. package/dist/components/Chat/hooks/useCreateChatContext.js +13 -2
  24. package/dist/components/ChatDown/ChatDown.d.ts.map +1 -1
  25. package/dist/components/ChatDown/ChatDown.js +0 -2
  26. package/dist/components/InfiniteScrollPaginator/InfiniteScroll.d.ts.map +1 -1
  27. package/dist/components/InfiniteScrollPaginator/InfiniteScroll.js +0 -3
  28. package/dist/components/Message/MessageSimple.d.ts +0 -1
  29. package/dist/components/Message/MessageSimple.d.ts.map +1 -1
  30. package/dist/components/Message/MessageSimple.js +8 -17
  31. package/dist/components/Message/MessageText.d.ts.map +1 -1
  32. package/dist/components/Message/MessageText.js +6 -9
  33. package/dist/components/MessageInput/EditMessageForm.js +2 -2
  34. package/dist/components/MessageInput/UploadsPreview.d.ts.map +1 -1
  35. package/dist/components/MessageInput/UploadsPreview.js +3 -1
  36. package/dist/components/MessageInput/hooks/useAttachments.d.ts.map +1 -1
  37. package/dist/components/MessageInput/hooks/useAttachments.js +4 -4
  38. package/dist/components/MessageInput/hooks/useMessageInputState.d.ts +2 -2
  39. package/dist/components/MessageInput/hooks/useMessageInputState.d.ts.map +1 -1
  40. package/dist/components/MessageInput/hooks/useMessageInputState.js +24 -19
  41. package/dist/components/MessageInput/hooks/useSubmitHandler.d.ts.map +1 -1
  42. package/dist/components/MessageInput/hooks/useSubmitHandler.js +75 -93
  43. package/dist/components/MessageList/MessageList.d.ts.map +1 -1
  44. package/dist/components/MessageList/MessageList.js +13 -11
  45. package/dist/components/MessageList/hooks/useMessageListScrollManager.d.ts.map +1 -1
  46. package/dist/components/MessageList/hooks/useMessageListScrollManager.js +0 -3
  47. package/dist/components/MessageList/hooks/useScrollLocationLogic.d.ts +3 -1
  48. package/dist/components/MessageList/hooks/useScrollLocationLogic.d.ts.map +1 -1
  49. package/dist/components/MessageList/hooks/useScrollLocationLogic.js +42 -28
  50. package/dist/components/Modal/Modal.d.ts.map +1 -1
  51. package/dist/components/Modal/Modal.js +10 -15
  52. package/dist/context/ChannelActionContext.d.ts +3 -3
  53. package/dist/context/ChannelActionContext.d.ts.map +1 -1
  54. package/dist/context/ChatContext.d.ts +2 -0
  55. package/dist/context/ChatContext.d.ts.map +1 -1
  56. package/dist/css/index.css +1 -9436
  57. package/dist/i18n/Streami18n.d.ts +0 -4
  58. package/dist/i18n/Streami18n.d.ts.map +1 -1
  59. package/dist/i18n/de.json +0 -4
  60. package/dist/i18n/en.json +0 -4
  61. package/dist/i18n/es.json +0 -4
  62. package/dist/i18n/fr.json +0 -4
  63. package/dist/i18n/hi.json +0 -4
  64. package/dist/i18n/it.json +0 -4
  65. package/dist/i18n/ja.json +0 -4
  66. package/dist/i18n/ko.json +0 -4
  67. package/dist/i18n/nl.json +0 -4
  68. package/dist/i18n/pt.json +0 -4
  69. package/dist/i18n/ru.json +0 -4
  70. package/dist/i18n/tr.json +0 -4
  71. package/dist/index.cjs.js +236 -239
  72. package/dist/index.cjs.js.map +1 -1
  73. package/dist/scss/Message.scss +1 -1
  74. package/dist/stories/edit-message.stories.d.ts +3 -0
  75. package/dist/stories/edit-message.stories.d.ts.map +1 -0
  76. package/dist/stories/edit-message.stories.js +54 -0
  77. package/dist/types/types.d.ts +2 -12
  78. package/dist/types/types.d.ts.map +1 -1
  79. package/dist/version.d.ts +1 -1
  80. package/dist/version.d.ts.map +1 -1
  81. package/dist/version.js +1 -1
  82. package/package.json +5 -4
  83. package/CHANGELOG.md +0 -1795
@@ -1 +1 @@
1
- {"version":3,"file":"useMessageInputState.d.ts","sourceRoot":"","sources":["../../../../src/components/MessageInput/hooks/useMessageInputState.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useMessageInputState.d.ts","sourceRoot":"","sources":["../../../../src/components/MessageInput/hooks/useMessageInputState.ts"],"names":[],"mappings":"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"}
@@ -18,15 +18,13 @@ import { useMessageInputText } from './useMessageInputText';
18
18
  import { useEmojiPicker } from './useEmojiPicker';
19
19
  import { useSubmitHandler } from './useSubmitHandler';
20
20
  import { usePasteHandler } from './usePasteHandler';
21
- var emptyFileUploads = {};
22
- var emptyImageUploads = {};
23
21
  var makeEmptyMessageInputState = function () { return ({
24
22
  attachments: [],
25
23
  emojiPickerIsOpen: false,
26
24
  fileOrder: [],
27
- fileUploads: __assign({}, emptyFileUploads),
25
+ fileUploads: {},
28
26
  imageOrder: [],
29
- imageUploads: __assign({}, emptyImageUploads),
27
+ imageUploads: {},
30
28
  mentioned_users: [],
31
29
  setText: function () { return null; },
32
30
  text: '',
@@ -35,46 +33,53 @@ var makeEmptyMessageInputState = function () { return ({
35
33
  * Initializes the state. Empty if the message prop is falsy.
36
34
  */
37
35
  var initState = function (message) {
38
- var _a, _b, _c;
36
+ var _a, _b, _c, _d, _e;
39
37
  if (!message) {
40
38
  return makeEmptyMessageInputState();
41
39
  }
42
40
  // if message prop is defined, get image uploads, file uploads, text, etc.
43
- var imageUploads = ((_a = message.attachments) === null || _a === void 0 ? void 0 : _a.filter(function (_a) {
41
+ var imageUploads = (_b = (_a = message.attachments) === null || _a === void 0 ? void 0 : _a.filter(function (_a) {
44
42
  var type = _a.type;
45
43
  return type === 'image';
46
- }).reduce(function (acc, attachment) {
44
+ }).reduce(function (acc, _a) {
45
+ var author_name = _a.author_name, _b = _a.fallback, fallback = _b === void 0 ? '' : _b, image_url = _a.image_url, og_scrape_url = _a.og_scrape_url, text = _a.text, title = _a.title, title_link = _a.title_link;
47
46
  var id = nanoid();
48
47
  acc[id] = {
48
+ author_name: author_name,
49
49
  file: {
50
- name: attachment.fallback || '',
50
+ name: fallback,
51
51
  },
52
52
  id: id,
53
+ og_scrape_url: og_scrape_url,
53
54
  state: 'finished',
54
- url: attachment.image_url,
55
+ text: text,
56
+ title: title,
57
+ title_link: title_link,
58
+ url: image_url,
55
59
  };
56
60
  return acc;
57
- }, {})) || {};
58
- var imageOrder = Object.keys(imageUploads);
59
- var fileUploads = ((_b = message.attachments) === null || _b === void 0 ? void 0 : _b.filter(function (_a) {
61
+ }, {})) !== null && _b !== void 0 ? _b : {};
62
+ var fileUploads = (_d = (_c = message.attachments) === null || _c === void 0 ? void 0 : _c.filter(function (_a) {
60
63
  var type = _a.type;
61
64
  return type === 'file';
62
- }).reduce(function (acc, attachment) {
65
+ }).reduce(function (acc, _a) {
66
+ var asset_url = _a.asset_url, file_size = _a.file_size, mime_type = _a.mime_type, _b = _a.title, title = _b === void 0 ? '' : _b;
63
67
  var id = nanoid();
64
68
  acc[id] = {
65
69
  file: {
66
- name: attachment.title || '',
67
- size: attachment.file_size,
68
- type: attachment.mime_type,
70
+ name: title,
71
+ size: file_size,
72
+ type: mime_type,
69
73
  },
70
74
  id: id,
71
75
  state: 'finished',
72
- url: attachment.asset_url,
76
+ url: asset_url,
73
77
  };
74
78
  return acc;
75
- }, {})) || {};
79
+ }, {})) !== null && _d !== void 0 ? _d : {};
80
+ var imageOrder = Object.keys(imageUploads);
76
81
  var fileOrder = Object.keys(fileUploads);
77
- var attachments = ((_c = message.attachments) === null || _c === void 0 ? void 0 : _c.filter(function (_a) {
82
+ var attachments = ((_e = message.attachments) === null || _e === void 0 ? void 0 : _e.filter(function (_a) {
78
83
  var type = _a.type;
79
84
  return type !== 'file' && type !== 'image';
80
85
  })) || [];
@@ -1 +1 @@
1
- {"version":3,"file":"useSubmitHandler.d.ts","sourceRoot":"","sources":["../../../../src/components/MessageInput/hooks/useSubmitHandler.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAc,OAAO,EAAkB,MAAM,aAAa,CAAC;AAEvE,OAAO,KAAK,EAAE,yBAAyB,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3F,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAEzD,OAAO,KAAK,EAAE,aAAa,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAC;AAQrF,eAAO,MAAM,gBAAgB,iUAOV,MAAM;0BA+Dd,MAAM,kBAAkB;CAoJlC,CAAC"}
1
+ {"version":3,"file":"useSubmitHandler.d.ts","sourceRoot":"","sources":["../../../../src/components/MessageInput/hooks/useSubmitHandler.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAc,OAAO,EAAkB,MAAM,aAAa,CAAC;AAEvE,OAAO,KAAK,EAAE,yBAAyB,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3F,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAEzD,OAAO,KAAK,EAAE,aAAa,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAC;AAQrF,eAAO,MAAM,gBAAgB,iUAOV,MAAM;0BA4Ed,MAAM,kBAAkB;CAoGlC,CAAC"}
@@ -45,11 +45,23 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
45
45
  if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
46
46
  }
47
47
  };
48
+ var __rest = (this && this.__rest) || function (s, e) {
49
+ var t = {};
50
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
51
+ t[p] = s[p];
52
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
53
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
54
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
55
+ t[p[i]] = s[p[i]];
56
+ }
57
+ return t;
58
+ };
48
59
  var __spreadArray = (this && this.__spreadArray) || function (to, from) {
49
60
  for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)
50
61
  to[j] = from[i];
51
62
  return to;
52
63
  };
64
+ import { useEffect, useRef } from 'react';
53
65
  import { useChannelActionContext } from '../../../context/ChannelActionContext';
54
66
  import { useChannelStateContext } from '../../../context/ChannelStateContext';
55
67
  import { useTranslationContext } from '../../../context/TranslationContext';
@@ -64,8 +76,16 @@ export var useSubmitHandler = function (props, state, dispatch, numberOfUploads)
64
76
  var clearEditingState = props.clearEditingState, message = props.message, overrideSubmitHandler = props.overrideSubmitHandler, parent = props.parent, publishTypingEvent = props.publishTypingEvent;
65
77
  var attachments = state.attachments, fileOrder = state.fileOrder, fileUploads = state.fileUploads, imageOrder = state.imageOrder, imageUploads = state.imageUploads, mentioned_users = state.mentioned_users, text = state.text;
66
78
  var channel = useChannelStateContext('useSubmitHandler').channel;
67
- var _a = useChannelActionContext('useSubmitHandler'), addNotification = _a.addNotification, editMessage = _a.editMessage, removeMessage = _a.removeMessage, sendMessage = _a.sendMessage;
79
+ var _a = useChannelActionContext('useSubmitHandler'), addNotification = _a.addNotification, editMessage = _a.editMessage, sendMessage = _a.sendMessage;
68
80
  var t = useTranslationContext('useSubmitHandler').t;
81
+ var textReference = useRef({ hasChanged: false, initialText: text });
82
+ useEffect(function () {
83
+ if (!textReference.current.initialText.length) {
84
+ textReference.current.initialText = text;
85
+ return;
86
+ }
87
+ textReference.current.hasChanged = text !== textReference.current.initialText;
88
+ }, [text]);
69
89
  var getAttachmentsFromUploads = function () {
70
90
  var imageAttachments = imageOrder
71
91
  .map(function (id) { return imageUploads[id]; })
@@ -74,29 +94,40 @@ export var useSubmitHandler = function (props, state, dispatch, numberOfUploads)
74
94
  var id = _a.id, url = _a.url;
75
95
  return self.every(function (upload) { return upload.id === id || upload.url !== url; });
76
96
  })
77
- .map(function (upload) {
97
+ .filter(function (upload) {
98
+ // keep the OG attachments in case the text has not changed as the BE
99
+ // won't re-enrich the message when only attachments have changed
100
+ if (!textReference.current.hasChanged)
101
+ return true;
102
+ return !upload.og_scrape_url;
103
+ })
104
+ .map(function (_a) {
105
+ var name = _a.file.name, url = _a.url, rest = __rest(_a, ["file", "url"]);
78
106
  return ({
79
- fallback: upload.file.name,
80
- image_url: upload.url,
107
+ author_name: rest.author_name,
108
+ fallback: name,
109
+ image_url: url,
110
+ og_scrape_url: rest.og_scrape_url,
111
+ text: rest.text,
112
+ title: rest.title,
113
+ title_link: rest.title_link,
81
114
  type: 'image',
82
115
  });
83
116
  });
84
117
  var fileAttachments = fileOrder
85
118
  .map(function (id) { return fileUploads[id]; })
86
119
  .filter(function (upload) { return upload.state !== 'failed'; })
87
- .map(function (upload) {
88
- return ({
89
- asset_url: upload.url,
90
- file_size: upload.file.size,
91
- mime_type: upload.file.type,
92
- title: upload.file.name,
93
- type: getAttachmentTypeFromMime(upload.file.type || ''),
94
- });
95
- });
120
+ .map(function (upload) { return ({
121
+ asset_url: upload.url,
122
+ file_size: upload.file.size,
123
+ mime_type: upload.file.type,
124
+ title: upload.file.name,
125
+ type: getAttachmentTypeFromMime(upload.file.type || ''),
126
+ }); });
96
127
  return __spreadArray(__spreadArray(__spreadArray([], attachments), imageAttachments), fileAttachments);
97
128
  };
98
129
  var handleSubmit = function (event, customMessageData) { return __awaiter(void 0, void 0, void 0, function () {
99
- var trimmedMessage, isEmptyMessage, someAttachmentsUploading, newAttachments, actualMentionedUsers, updatedMessage, err_1, err_2, err_3;
130
+ var trimmedMessage, isEmptyMessage, someAttachmentsUploading, newAttachments, actualMentionedUsers, updatedMessage, err_1, err_2;
100
131
  return __generator(this, function (_a) {
101
132
  switch (_a.label) {
102
133
  case 0:
@@ -127,102 +158,53 @@ export var useSubmitHandler = function (props, state, dispatch, numberOfUploads)
127
158
  mentioned_users: actualMentionedUsers,
128
159
  text: text,
129
160
  };
130
- if (!(message && message.status === 'failed')) return [3 /*break*/, 11];
161
+ if (!message) return [3 /*break*/, 5];
162
+ delete message.i18n;
131
163
  _a.label = 1;
132
164
  case 1:
133
- _a.trys.push([1, 8, 9, 10]);
134
- removeMessage(message);
135
- dispatch({ type: 'clear' });
136
- if (!overrideSubmitHandler) return [3 /*break*/, 3];
137
- return [4 /*yield*/, overrideSubmitHandler(__assign(__assign({}, updatedMessage), { parent: parent }), channel.cid, customMessageData)];
138
- case 2:
139
- _a.sent();
140
- return [3 /*break*/, 5];
141
- case 3: return [4 /*yield*/, sendMessage(__assign(__assign({}, updatedMessage), { parent: parent }), customMessageData)];
142
- case 4:
143
- _a.sent();
144
- _a.label = 5;
145
- case 5:
146
- if (!publishTypingEvent) return [3 /*break*/, 7];
147
- return [4 /*yield*/, channel.stopTyping()];
148
- case 6:
149
- _a.sent();
150
- _a.label = 7;
151
- case 7: return [3 /*break*/, 10];
152
- case 8:
153
- err_1 = _a.sent();
154
- dispatch({
155
- getNewText: function () { return text; },
156
- type: 'setText',
157
- });
158
- if (actualMentionedUsers.length) {
159
- actualMentionedUsers.forEach(function (user) {
160
- dispatch({ type: 'addMentionedUser', user: user });
161
- });
162
- }
163
- addNotification(t('Send message request failed'), 'error');
164
- return [3 /*break*/, 10];
165
- case 9:
166
- if (clearEditingState)
167
- clearEditingState();
168
- return [7 /*endfinally*/];
169
- case 10: return [3 /*break*/, 24];
170
- case 11:
171
- if (!(message && message.status === 'received')) return [3 /*break*/, 16];
172
- delete message.i18n;
173
- _a.label = 12;
174
- case 12:
175
- _a.trys.push([12, 14, , 15]);
165
+ _a.trys.push([1, 3, , 4]);
176
166
  return [4 /*yield*/, editMessage(__assign(__assign({}, message), updatedMessage))];
177
- case 13:
167
+ case 2:
178
168
  _a.sent();
179
- if (clearEditingState)
180
- clearEditingState();
169
+ clearEditingState === null || clearEditingState === void 0 ? void 0 : clearEditingState();
181
170
  dispatch({ type: 'clear' });
182
- return [3 /*break*/, 15];
183
- case 14:
184
- err_2 = _a.sent();
185
- // if we don't do that, the user can't see the error message.
186
- // it's still not great, because in that way, we lose the edit state.
187
- // this needs to be retought.
188
- if (clearEditingState)
189
- clearEditingState();
171
+ return [3 /*break*/, 4];
172
+ case 3:
173
+ err_1 = _a.sent();
190
174
  addNotification(t('Edit message request failed'), 'error');
191
- return [3 /*break*/, 15];
192
- case 15: return [3 /*break*/, 24];
193
- case 16:
194
- _a.trys.push([16, 23, , 24]);
175
+ return [3 /*break*/, 4];
176
+ case 4: return [3 /*break*/, 13];
177
+ case 5:
178
+ _a.trys.push([5, 12, , 13]);
195
179
  dispatch({ type: 'clear' });
196
- if (!overrideSubmitHandler) return [3 /*break*/, 18];
180
+ if (!overrideSubmitHandler) return [3 /*break*/, 7];
197
181
  return [4 /*yield*/, overrideSubmitHandler(__assign(__assign({}, updatedMessage), { parent: parent }), channel.cid, customMessageData)];
198
- case 17:
182
+ case 6:
199
183
  _a.sent();
200
- return [3 /*break*/, 20];
201
- case 18: return [4 /*yield*/, sendMessage(__assign(__assign({}, updatedMessage), { parent: parent }), customMessageData)];
202
- case 19:
184
+ return [3 /*break*/, 9];
185
+ case 7: return [4 /*yield*/, sendMessage(__assign(__assign({}, updatedMessage), { parent: parent }), customMessageData)];
186
+ case 8:
203
187
  _a.sent();
204
- _a.label = 20;
205
- case 20:
206
- if (!publishTypingEvent) return [3 /*break*/, 22];
188
+ _a.label = 9;
189
+ case 9:
190
+ if (!publishTypingEvent) return [3 /*break*/, 11];
207
191
  return [4 /*yield*/, channel.stopTyping()];
208
- case 21:
192
+ case 10:
209
193
  _a.sent();
210
- _a.label = 22;
211
- case 22: return [3 /*break*/, 24];
212
- case 23:
213
- err_3 = _a.sent();
194
+ _a.label = 11;
195
+ case 11: return [3 /*break*/, 13];
196
+ case 12:
197
+ err_2 = _a.sent();
214
198
  dispatch({
215
199
  getNewText: function () { return text; },
216
200
  type: 'setText',
217
201
  });
218
- if (actualMentionedUsers.length) {
219
- actualMentionedUsers.forEach(function (user) {
220
- dispatch({ type: 'addMentionedUser', user: user });
221
- });
222
- }
202
+ actualMentionedUsers === null || actualMentionedUsers === void 0 ? void 0 : actualMentionedUsers.forEach(function (user) {
203
+ dispatch({ type: 'addMentionedUser', user: user });
204
+ });
223
205
  addNotification(t('Send message request failed'), 'error');
224
- return [3 /*break*/, 24];
225
- case 24: return [2 /*return*/];
206
+ return [3 /*break*/, 13];
207
+ case 13: return [2 /*return*/];
226
208
  }
227
209
  });
228
210
  }); };
@@ -1 +1 @@
1
- {"version":3,"file":"MessageList.d.ts","sourceRoot":"","sources":["../../../src/components/MessageList/MessageList.tsx"],"names":[],"mappings":"AAUA,OAAO,EACL,yBAAyB,EAE1B,MAAM,oCAAoC,CAAC;AAQ5C,OAAO,EAAkB,mBAAmB,EAAE,MAAM,2CAA2C,CAAC;AAKhG,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAE1C,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;AAsLnE,aAAK,qBAAqB,GACtB,6BAA6B,GAC7B,8BAA8B,GAC9B,sBAAsB,GACtB,uBAAuB,GACvB,YAAY,GACZ,mCAAmC,GACnC,iCAAiC,GACjC,mCAAmC,GACnC,8BAA8B,GAC9B,gCAAgC,GAChC,gCAAgC,GAChC,SAAS,GACT,gBAAgB,GAChB,mBAAmB,GACnB,iBAAiB,GACjB,iBAAiB,GACjB,aAAa,GACb,aAAa,GACb,YAAY,GACZ,gBAAgB,GAChB,YAAY,GACZ,kBAAkB,GAClB,YAAY,CAAC;AAEjB,oBAAY,gBAAgB,CAC1B,kBAAkB,SAAS,yBAAyB,GAAG,yBAAyB,IAC9E,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,kBAAkB,CAAC,EAAE,qBAAqB,CAAC,CAAC,GAAG;IAC3E,8FAA8F;IAC9F,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,6DAA6D;IAC7D,WAAW,CAAC,EAAE,CACZ,OAAO,EAAE,aAAa,CAAC,kBAAkB,CAAC,EAC1C,eAAe,EAAE,aAAa,CAAC,kBAAkB,CAAC,EAClD,WAAW,EAAE,aAAa,CAAC,kBAAkB,CAAC,EAC9C,aAAa,EAAE,OAAO,KACnB,UAAU,CAAC;IAChB,qDAAqD;IACrD,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,yCAAyC;IACzC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,6EAA6E;IAC7E,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,qIAAqI;IACrI,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC,mLAAmL;IACnL,2BAA2B,CAAC,EAAE,mBAAmB,CAAC;IAClD,iHAAiH;IACjH,mBAAmB,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1C,8DAA8D;IAC9D,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,+DAA+D;IAC/D,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,4LAA4L;IAC5L,QAAQ,CAAC,EAAE,yBAAyB,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;IACzE,6LAA6L;IAC7L,aAAa,CAAC,EAAE,yBAAyB,CAAC,eAAe,CAAC,GAAG,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;IACnF,gDAAgD;IAChD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,yKAAyK;IACzK,QAAQ,CAAC,EAAE,aAAa,CAAC,kBAAkB,CAAC,EAAE,CAAC;IAC/C,qDAAqD;IACrD,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,qHAAqH;IACrH,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,6GAA6G;IAC7G,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,uDAAuD;IACvD,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,WAAW,gJA2BvB,CAAC"}
1
+ {"version":3,"file":"MessageList.d.ts","sourceRoot":"","sources":["../../../src/components/MessageList/MessageList.tsx"],"names":[],"mappings":"AAUA,OAAO,EACL,yBAAyB,EAE1B,MAAM,oCAAoC,CAAC;AAQ5C,OAAO,EAAkB,mBAAmB,EAAE,MAAM,2CAA2C,CAAC;AAKhG,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAE1C,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;AA6LnE,aAAK,qBAAqB,GACtB,6BAA6B,GAC7B,8BAA8B,GAC9B,sBAAsB,GACtB,uBAAuB,GACvB,YAAY,GACZ,mCAAmC,GACnC,iCAAiC,GACjC,mCAAmC,GACnC,8BAA8B,GAC9B,gCAAgC,GAChC,gCAAgC,GAChC,SAAS,GACT,gBAAgB,GAChB,mBAAmB,GACnB,iBAAiB,GACjB,iBAAiB,GACjB,aAAa,GACb,aAAa,GACb,YAAY,GACZ,gBAAgB,GAChB,YAAY,GACZ,kBAAkB,GAClB,YAAY,CAAC;AAEjB,oBAAY,gBAAgB,CAC1B,kBAAkB,SAAS,yBAAyB,GAAG,yBAAyB,IAC9E,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,kBAAkB,CAAC,EAAE,qBAAqB,CAAC,CAAC,GAAG;IAC3E,8FAA8F;IAC9F,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,6DAA6D;IAC7D,WAAW,CAAC,EAAE,CACZ,OAAO,EAAE,aAAa,CAAC,kBAAkB,CAAC,EAC1C,eAAe,EAAE,aAAa,CAAC,kBAAkB,CAAC,EAClD,WAAW,EAAE,aAAa,CAAC,kBAAkB,CAAC,EAC9C,aAAa,EAAE,OAAO,KACnB,UAAU,CAAC;IAChB,qDAAqD;IACrD,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,yCAAyC;IACzC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,6EAA6E;IAC7E,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,qIAAqI;IACrI,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC,mLAAmL;IACnL,2BAA2B,CAAC,EAAE,mBAAmB,CAAC;IAClD,iHAAiH;IACjH,mBAAmB,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1C,8DAA8D;IAC9D,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,+DAA+D;IAC/D,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,4LAA4L;IAC5L,QAAQ,CAAC,EAAE,yBAAyB,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;IACzE,6LAA6L;IAC7L,aAAa,CAAC,EAAE,yBAAyB,CAAC,eAAe,CAAC,GAAG,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;IACnF,gDAAgD;IAChD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,yKAAyK;IACzK,QAAQ,CAAC,EAAE,aAAa,CAAC,kBAAkB,CAAC,EAAE,CAAC;IAC/C,qDAAqD;IACrD,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,qHAAqH;IACrH,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,6GAA6G;IAC7G,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,uDAAuD;IACvD,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,WAAW,gJA2BvB,CAAC"}
@@ -76,15 +76,19 @@ var MessageListWithContext = function (props) {
76
76
  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
77
77
  _h = props.returnAllReadData, // @deprecated in favor of `channelCapabilities` - TODO: remove in next major release
78
78
  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;
79
+ var _p = React.useState(null), listElement = _p[0], setListElement = _p[1];
80
+ var _q = React.useState(null), ulElement = _q[0], setUlElement = _q[1];
79
81
  var customClasses = useChatContext('MessageList').customClasses;
80
- var _p = useComponentContext('MessageList'), _q = _p.EmptyStateIndicator, EmptyStateIndicator = _q === void 0 ? DefaultEmptyStateIndicator : _q, _r = _p.MessageListNotifications, MessageListNotifications = _r === void 0 ? DefaultMessageListNotifications : _r, _s = _p.MessageNotification, MessageNotification = _s === void 0 ? DefaultMessageNotification : _s, _t = _p.TypingIndicator, TypingIndicator = _t === void 0 ? DefaultTypingIndicator : _t;
81
- var _u = useScrollLocationLogic({
82
+ var _r = useComponentContext('MessageList'), _s = _r.EmptyStateIndicator, EmptyStateIndicator = _s === void 0 ? DefaultEmptyStateIndicator : _s, _t = _r.MessageListNotifications, MessageListNotifications = _t === void 0 ? DefaultMessageListNotifications : _t, _u = _r.MessageNotification, MessageNotification = _u === void 0 ? DefaultMessageNotification : _u, _v = _r.TypingIndicator, TypingIndicator = _v === void 0 ? DefaultTypingIndicator : _v;
83
+ var _w = useScrollLocationLogic({
82
84
  hasMoreNewer: hasMoreNewer,
85
+ listElement: listElement,
83
86
  messages: messages,
84
87
  scrolledUpThreshold: props.scrolledUpThreshold,
85
88
  suppressAutoscroll: suppressAutoscroll,
86
- }), hasNewMessages = _u.hasNewMessages, listRef = _u.listRef, onMessageLoadCaptured = _u.onMessageLoadCaptured, onScroll = _u.onScroll, scrollToBottom = _u.scrollToBottom, wrapperRect = _u.wrapperRect;
87
- var _v = useEnrichedMessages({
89
+ ulElement: ulElement,
90
+ }), hasNewMessages = _w.hasNewMessages, onMessageLoadCaptured = _w.onMessageLoadCaptured, onScroll = _w.onScroll, scrollToBottom = _w.scrollToBottom, wrapperRect = _w.wrapperRect;
91
+ var _x = useEnrichedMessages({
88
92
  channel: channel,
89
93
  disableDateSeparator: disableDateSeparator,
90
94
  groupStyles: groupStyles,
@@ -93,7 +97,7 @@ var MessageListWithContext = function (props) {
93
97
  hideNewMessageSeparator: hideNewMessageSeparator,
94
98
  messages: messages,
95
99
  noGroupByUser: noGroupByUser,
96
- }), messageGroupStyles = _v.messageGroupStyles, enrichedMessages = _v.messages;
100
+ }), messageGroupStyles = _x.messageGroupStyles, enrichedMessages = _x.messages;
97
101
  var elements = useMessageListElements({
98
102
  enrichedMessages: enrichedMessages,
99
103
  internalMessageProps: {
@@ -128,7 +132,7 @@ var MessageListWithContext = function (props) {
128
132
  returnAllReadData: returnAllReadData,
129
133
  threadList: threadList,
130
134
  });
131
- var _w = useComponentContext('useInternalInfiniteScrollProps').LoadingIndicator, LoadingIndicator = _w === void 0 ? DefaultLoadingIndicator : _w;
135
+ var _y = useComponentContext('useInternalInfiniteScrollProps').LoadingIndicator, LoadingIndicator = _y === void 0 ? DefaultLoadingIndicator : _y;
132
136
  var messageListClass = (customClasses === null || customClasses === void 0 ? void 0 : customClasses.messageList) || 'str-chat__list';
133
137
  var threadListClass = threadList ? (customClasses === null || customClasses === void 0 ? void 0 : customClasses.threadList) || 'str-chat__list--thread' : '';
134
138
  var loadMore = React.useCallback(function () {
@@ -157,18 +161,16 @@ var MessageListWithContext = function (props) {
157
161
  }
158
162
  });
159
163
  }); }, [scrollToBottom, hasMoreNewer]);
160
- var ulRef = React.useRef(null);
161
164
  React.useLayoutEffect(function () {
162
- var _a;
163
165
  if (highlightedMessageId) {
164
- var element = (_a = ulRef.current) === null || _a === void 0 ? void 0 : _a.querySelector("[data-message-id='" + highlightedMessageId + "']");
166
+ var element = ulElement === null || ulElement === void 0 ? void 0 : ulElement.querySelector("[data-message-id='" + highlightedMessageId + "']");
165
167
  element === null || element === void 0 ? void 0 : element.scrollIntoView({ block: 'center' });
166
168
  }
167
169
  }, [highlightedMessageId]);
168
170
  return (React.createElement(React.Fragment, null,
169
- React.createElement("div", { className: messageListClass + " " + threadListClass, onScroll: onScroll, ref: listRef }, !elements.length ? (React.createElement(EmptyStateIndicator, { listType: 'message' })) : (React.createElement(InfiniteScroll, __assign({ className: 'str-chat__reverse-infinite-scroll', "data-testid": 'reverse-infinite-scroll', hasMore: props.hasMore, hasMoreNewer: props.hasMoreNewer, isLoading: props.loadingMore, loader: React.createElement(Center, { key: 'loadingindicator' },
171
+ React.createElement("div", { className: messageListClass + " " + threadListClass, onScroll: onScroll, ref: setListElement, tabIndex: 0 }, !elements.length ? (React.createElement(EmptyStateIndicator, { listType: 'message' })) : (React.createElement(InfiniteScroll, __assign({ className: 'str-chat__reverse-infinite-scroll', "data-testid": 'reverse-infinite-scroll', hasMore: props.hasMore, hasMoreNewer: props.hasMoreNewer, isLoading: props.loadingMore, loader: React.createElement(Center, { key: 'loadingindicator' },
170
172
  React.createElement(LoadingIndicator, { size: 20 })), loadMore: loadMore, loadMoreNewer: loadMoreNewer }, props.internalInfiniteScrollProps),
171
- React.createElement("ul", { className: 'str-chat__ul', ref: ulRef }, elements),
173
+ React.createElement("ul", { className: 'str-chat__ul', ref: setUlElement }, elements),
172
174
  React.createElement(TypingIndicator, { threadList: threadList }),
173
175
  React.createElement("div", { key: 'bottom' })))),
174
176
  React.createElement(MessageListNotifications, { hasNewMessages: hasNewMessages, isNotAtLatestMessageSet: hasMoreNewer, MessageNotification: MessageNotification, notifications: notifications, scrollToBottom: scrollToBottomFromNotification })));
@@ -1 +1 @@
1
- {"version":3,"file":"useMessageListScrollManager.d.ts","sourceRoot":"","sources":["../../../../src/components/MessageList/hooks/useMessageListScrollManager.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sCAAsC,CAAC;AAE1E,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAC;AAEtE,oBAAY,iBAAiB,GAAG;IAC9B,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,oBAAY,iCAAiC,CAC3C,kBAAkB,SAAS,yBAAyB,GAAG,yBAAyB,IAC9E;IACF,QAAQ,EAAE,aAAa,CAAC,kBAAkB,CAAC,EAAE,CAAC;IAC9C,UAAU,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IACvC,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;IACjD,mBAAmB,EAAE,MAAM,CAAC;IAC5B,cAAc,EAAE,MAAM,IAAI,CAAC;IAC3B,eAAe,EAAE,MAAM,IAAI,CAAC;CAC7B,CAAC;AAEF,wBAAgB,2BAA2B,CACzC,kBAAkB,SAAS,yBAAyB,GAAG,yBAAyB,EAChF,MAAM,EAAE,iCAAiC,CAAC,kBAAkB,CAAC,oBAqErC,MAAM,UAG/B"}
1
+ {"version":3,"file":"useMessageListScrollManager.d.ts","sourceRoot":"","sources":["../../../../src/components/MessageList/hooks/useMessageListScrollManager.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sCAAsC,CAAC;AAE1E,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAC;AAEtE,oBAAY,iBAAiB,GAAG;IAC9B,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,oBAAY,iCAAiC,CAC3C,kBAAkB,SAAS,yBAAyB,GAAG,yBAAyB,IAC9E;IACF,QAAQ,EAAE,aAAa,CAAC,kBAAkB,CAAC,EAAE,CAAC;IAC9C,UAAU,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IACvC,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;IACjD,mBAAmB,EAAE,MAAM,CAAC;IAC5B,cAAc,EAAE,MAAM,IAAI,CAAC;IAC3B,eAAe,EAAE,MAAM,IAAI,CAAC;CAC7B,CAAC;AAEF,wBAAgB,2BAA2B,CACzC,kBAAkB,SAAS,yBAAyB,GAAG,yBAAyB,EAChF,MAAM,EAAE,iCAAiC,CAAC,kBAAkB,CAAC,oBAiErC,MAAM,UAG/B"}
@@ -9,9 +9,6 @@ export function useMessageListScrollManager(params) {
9
9
  });
10
10
  var messages = useRef();
11
11
  var scrollTop = useRef(0);
12
- useEffect(function () {
13
- scrollToBottom();
14
- }, []);
15
12
  useEffect(function () {
16
13
  var _a, _b, _c;
17
14
  var prevMeasures = measures.current;
@@ -3,14 +3,16 @@ import type { StreamMessage } from '../../../context/ChannelStateContext';
3
3
  import type { DefaultStreamChatGenerics } from '../../../types/types';
4
4
  export declare type UseScrollLocationLogicParams<StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics> = {
5
5
  hasMoreNewer: boolean;
6
+ listElement: HTMLDivElement | null;
6
7
  suppressAutoscroll: boolean;
8
+ ulElement: HTMLUListElement | null;
7
9
  currentUserId?: string;
8
10
  messages?: StreamMessage<StreamChatGenerics>[];
9
11
  scrolledUpThreshold?: number;
10
12
  };
11
13
  export declare const useScrollLocationLogic: <StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics>(params: UseScrollLocationLogicParams<StreamChatGenerics>) => {
12
14
  hasNewMessages: boolean;
13
- listRef: React.RefObject<HTMLDivElement>;
15
+ listElement: HTMLDivElement | null;
14
16
  onMessageLoadCaptured: () => void;
15
17
  onScroll: (event: React.UIEvent<HTMLDivElement>) => void;
16
18
  scrollToBottom: () => void;
@@ -1 +1 @@
1
- {"version":3,"file":"useScrollLocationLogic.d.ts","sourceRoot":"","sources":["../../../../src/components/MessageList/hooks/useScrollLocationLogic.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAyD,MAAM,OAAO,CAAC;AAI9E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sCAAsC,CAAC;AAE1E,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAC;AAEtE,oBAAY,4BAA4B,CACtC,kBAAkB,SAAS,yBAAyB,GAAG,yBAAyB,IAC9E;IACF,YAAY,EAAE,OAAO,CAAC;IACtB,kBAAkB,EAAE,OAAO,CAAC;IAC5B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE,aAAa,CAAC,kBAAkB,CAAC,EAAE,CAAC;IAC/C,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B,CAAC;AAEF,eAAO,MAAM,sBAAsB;;;;sBAuDvB,aAAa,CAAC,cAAc,CAAC;;;CAqCxC,CAAC"}
1
+ {"version":3,"file":"useScrollLocationLogic.d.ts","sourceRoot":"","sources":["../../../../src/components/MessageList/hooks/useScrollLocationLogic.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAoE,MAAM,OAAO,CAAC;AAKzF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sCAAsC,CAAC;AAE1E,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAC;AAItE,oBAAY,4BAA4B,CACtC,kBAAkB,SAAS,yBAAyB,GAAG,yBAAyB,IAC9E;IACF,YAAY,EAAE,OAAO,CAAC;IACtB,WAAW,EAAE,cAAc,GAAG,IAAI,CAAC;IACnC,kBAAkB,EAAE,OAAO,CAAC;IAC5B,SAAS,EAAE,gBAAgB,GAAG,IAAI,CAAC;IACnC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE,aAAa,CAAC,kBAAkB,CAAC,EAAE,CAAC;IAC/C,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B,CAAC;AAEF,eAAO,MAAM,sBAAsB;;;;sBAoFvB,aAAa,CAAC,cAAc,CAAC;;;CAqCxC,CAAC"}
@@ -1,48 +1,62 @@
1
- import { useCallback, useLayoutEffect, useRef, useState } from 'react';
1
+ import { useCallback, useEffect, useLayoutEffect, useRef, useState } from 'react';
2
+ import { ResizeObserver as Polyfill } from '@juggle/resize-observer';
2
3
  import { useMessageListScrollManager } from './useMessageListScrollManager';
4
+ var ResizeObserver = window.ResizeObserver || Polyfill;
3
5
  export var useScrollLocationLogic = function (params) {
4
- var _a = params.messages, messages = _a === void 0 ? [] : _a, _b = params.scrolledUpThreshold, scrolledUpThreshold = _b === void 0 ? 200 : _b, hasMoreNewer = params.hasMoreNewer, suppressAutoscroll = params.suppressAutoscroll;
6
+ 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, ulElement = params.ulElement;
5
7
  var _c = useState(false), hasNewMessages = _c[0], setHasNewMessages = _c[1];
6
8
  var _d = useState(), wrapperRect = _d[0], setWrapperRect = _d[1];
7
9
  var closeToBottom = useRef(false);
8
10
  var closeToTop = useRef(false);
9
- var listRef = useRef(null);
11
+ var scrollCounter = useRef({ autoScroll: 0, scroll: 0 });
10
12
  var scrollToBottom = useCallback(function () {
11
- var _a, _b;
12
- if (!((_a = listRef.current) === null || _a === void 0 ? void 0 : _a.scrollTo) || hasMoreNewer || suppressAutoscroll) {
13
+ if (!(listElement === null || listElement === void 0 ? void 0 : listElement.scrollTo) || hasMoreNewer || suppressAutoscroll) {
13
14
  return;
14
15
  }
15
- (_b = listRef.current) === null || _b === void 0 ? void 0 : _b.scrollTo({
16
- top: listRef.current.scrollHeight,
16
+ scrollCounter.current.autoScroll += 1;
17
+ listElement.scrollTo({
18
+ top: listElement.scrollHeight,
17
19
  });
18
20
  setHasNewMessages(false);
19
- // this is hacky and unreliable, but that was the current implementation so not breaking it
20
- setTimeout(function () {
21
- var _a;
22
- (_a = listRef.current) === null || _a === void 0 ? void 0 : _a.scrollTo({
23
- top: listRef.current.scrollHeight,
24
- });
25
- }, 200);
26
- }, [listRef, hasMoreNewer, suppressAutoscroll]);
21
+ }, [listElement, hasMoreNewer, suppressAutoscroll]);
22
+ useEffect(function () {
23
+ if (!listElement)
24
+ return;
25
+ var observer = new ResizeObserver(scrollToBottom);
26
+ var cancelObserverOnUserScroll = function () {
27
+ scrollCounter.current.scroll += 1;
28
+ var userScrolled = scrollCounter.current.autoScroll < scrollCounter.current.scroll;
29
+ if (ulElement && userScrolled) {
30
+ observer.unobserve(ulElement);
31
+ listElement === null || listElement === void 0 ? void 0 : listElement.removeEventListener('scroll', cancelObserverOnUserScroll);
32
+ }
33
+ };
34
+ if (ulElement) {
35
+ observer.observe(ulElement);
36
+ }
37
+ listElement.addEventListener('scroll', cancelObserverOnUserScroll);
38
+ return function () {
39
+ observer.disconnect();
40
+ if (listElement) {
41
+ listElement.removeEventListener('scroll', cancelObserverOnUserScroll);
42
+ }
43
+ };
44
+ }, [ulElement, scrollToBottom]);
27
45
  useLayoutEffect(function () {
28
- if (listRef === null || listRef === void 0 ? void 0 : listRef.current) {
29
- setWrapperRect(listRef.current.getBoundingClientRect());
46
+ if (listElement) {
47
+ setWrapperRect(listElement.getBoundingClientRect());
30
48
  scrollToBottom();
31
49
  }
32
- }, [listRef, hasMoreNewer]);
50
+ }, [listElement, hasMoreNewer]);
33
51
  var updateScrollTop = useMessageListScrollManager({
34
52
  messages: messages,
35
53
  onScrollBy: function (scrollBy) {
36
- var _a;
37
- (_a = listRef.current) === null || _a === void 0 ? void 0 : _a.scrollBy({ top: scrollBy });
38
- },
39
- scrollContainerMeasures: function () {
40
- var _a, _b;
41
- return ({
42
- offsetHeight: ((_a = listRef.current) === null || _a === void 0 ? void 0 : _a.offsetHeight) || 0,
43
- scrollHeight: ((_b = listRef.current) === null || _b === void 0 ? void 0 : _b.scrollHeight) || 0,
44
- });
54
+ listElement === null || listElement === void 0 ? void 0 : listElement.scrollBy({ top: scrollBy });
45
55
  },
56
+ scrollContainerMeasures: function () { return ({
57
+ offsetHeight: (listElement === null || listElement === void 0 ? void 0 : listElement.offsetHeight) || 0,
58
+ scrollHeight: (listElement === null || listElement === void 0 ? void 0 : listElement.scrollHeight) || 0,
59
+ }); },
46
60
  scrolledUpThreshold: scrolledUpThreshold,
47
61
  scrollToBottom: scrollToBottom,
48
62
  showNewMessages: function () { return setHasNewMessages(true); },
@@ -70,7 +84,7 @@ export var useScrollLocationLogic = function (params) {
70
84
  }, [closeToTop, closeToBottom, scrollToBottom]);
71
85
  return {
72
86
  hasNewMessages: hasNewMessages,
73
- listRef: listRef,
87
+ listElement: listElement,
74
88
  onMessageLoadCaptured: onMessageLoadCaptured,
75
89
  onScroll: onScroll,
76
90
  scrollToBottom: scrollToBottom,
@@ -1 +1 @@
1
- {"version":3,"file":"Modal.d.ts","sourceRoot":"","sources":["../../../src/components/Modal/Modal.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,iBAAiB,EAAqB,MAAM,OAAO,CAAC;AAIpE,oBAAY,UAAU,GAAG;IACvB,2CAA2C;IAC3C,IAAI,EAAE,OAAO,CAAC;IACd,6CAA6C;IAC7C,OAAO,CAAC,EAAE,MAAM,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,kBAAkB,KAAK,IAAI,CAAC,CAAC;CACrE,CAAC;AAEF,eAAO,MAAM,KAAK,UAAW,kBAAkB,UAAU,CAAC,gBAoDzD,CAAC"}
1
+ {"version":3,"file":"Modal.d.ts","sourceRoot":"","sources":["../../../src/components/Modal/Modal.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,iBAAiB,EAAqB,MAAM,OAAO,CAAC;AAIpE,oBAAY,UAAU,GAAG;IACvB,2CAA2C;IAC3C,IAAI,EAAE,OAAO,CAAC;IACd,6CAA6C;IAC7C,OAAO,CAAC,EAAE,MAAM,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,kBAAkB,KAAK,IAAI,CAAC,CAAC;CACrE,CAAC;AAEF,eAAO,MAAM,KAAK,UAAW,kBAAkB,UAAU,CAAC,gBA4CzD,CAAC"}
@@ -6,26 +6,21 @@ export var Modal = function (props) {
6
6
  var innerRef = useRef(null);
7
7
  var closeRef = useRef(null);
8
8
  var handleClick = function (event) {
9
- var _a, _b;
10
- if ((event.target instanceof HTMLDivElement &&
11
- !((_a = innerRef.current) === null || _a === void 0 ? void 0 : _a.contains(event.target)) &&
12
- onClose) ||
13
- (event.target instanceof HTMLButtonElement &&
14
- ((_b = closeRef.current) === null || _b === void 0 ? void 0 : _b.contains(event.target)) &&
15
- onClose)) {
16
- onClose();
17
- }
9
+ var target = event.target;
10
+ if (!innerRef.current || !closeRef.current)
11
+ return;
12
+ if (!innerRef.current.contains(target) || closeRef.current.contains(target))
13
+ onClose === null || onClose === void 0 ? void 0 : onClose();
18
14
  };
19
15
  useEffect(function () {
20
16
  if (!open)
21
- return function () { return null; };
17
+ return;
22
18
  var handleEscKey = function (event) {
23
- if (event instanceof KeyboardEvent && event.key === 'Escape' && onClose) {
24
- onClose();
25
- }
19
+ if (event.key === 'Escape')
20
+ onClose === null || onClose === void 0 ? void 0 : onClose();
26
21
  };
27
- document.addEventListener('keypress', handleEscKey);
28
- return function () { return document.removeEventListener('keypress', handleEscKey); };
22
+ document.addEventListener('keydown', handleEscKey);
23
+ return function () { return document.removeEventListener('keydown', handleEscKey); };
29
24
  }, [onClose, open]);
30
25
  var openClasses = open ? 'str-chat__modal--open' : 'str-chat__modal--closed';
31
26
  return (React.createElement("div", { className: "str-chat__modal " + openClasses, onClick: handleClick },