stream-chat-react 8.1.3-beta.1 → 9.0.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 (49) hide show
  1. package/dist/browser.full-bundle.js +178 -250
  2. package/dist/browser.full-bundle.js.map +1 -1
  3. package/dist/browser.full-bundle.min.js +4 -4
  4. package/dist/browser.full-bundle.min.js.map +1 -1
  5. package/dist/components/Attachment/utils.js +2 -2
  6. package/dist/components/AutoCompleteTextarea/Textarea.d.ts +2 -1
  7. package/dist/components/AutoCompleteTextarea/Textarea.d.ts.map +1 -1
  8. package/dist/components/AutoCompleteTextarea/Textarea.js +10 -17
  9. package/dist/components/Channel/Channel.js +2 -2
  10. package/dist/components/Channel/hooks/useCreateChannelStateContext.js +2 -2
  11. package/dist/components/Channel/utils.js +2 -2
  12. package/dist/components/ChannelPreview/ChannelPreview.d.ts.map +1 -1
  13. package/dist/components/ChannelPreview/ChannelPreview.js +20 -4
  14. package/dist/components/ChatAutoComplete/ChatAutoComplete.js +1 -1
  15. package/dist/components/Message/utils.d.ts.map +1 -1
  16. package/dist/components/Message/utils.js +5 -10
  17. package/dist/components/MessageInput/MessageInput.d.ts +12 -8
  18. package/dist/components/MessageInput/MessageInput.d.ts.map +1 -1
  19. package/dist/components/MessageInput/hooks/useAttachments.js +2 -2
  20. package/dist/components/MessageInput/hooks/useCreateMessageInputContext.js +2 -2
  21. package/dist/components/MessageInput/hooks/useMessageInputState.d.ts.map +1 -1
  22. package/dist/components/MessageInput/hooks/useMessageInputState.js +24 -27
  23. package/dist/components/MessageInput/hooks/usePasteHandler.d.ts +1 -1
  24. package/dist/components/MessageInput/hooks/usePasteHandler.d.ts.map +1 -1
  25. package/dist/components/MessageInput/hooks/usePasteHandler.js +3 -1
  26. package/dist/components/MessageInput/hooks/useSubmitHandler.d.ts.map +1 -1
  27. package/dist/components/MessageInput/hooks/useSubmitHandler.js +17 -15
  28. package/dist/components/MessageList/utils.js +3 -3
  29. package/dist/components/Thread/Thread.js +50 -10
  30. package/dist/index.cjs.js +116 -105
  31. package/dist/index.cjs.js.map +1 -1
  32. package/dist/stories/{connected-user.stories.d.ts → add-message.stories.d.ts} +1 -1
  33. package/dist/stories/add-message.stories.d.ts.map +1 -0
  34. package/dist/stories/{connected-user.stories.js → add-message.stories.js} +4 -3
  35. package/dist/stories/jump-to-message.stories.d.ts.map +1 -1
  36. package/dist/stories/jump-to-message.stories.js +0 -3
  37. package/dist/stories/mark-read.stories.d.ts.map +1 -1
  38. package/dist/stories/mark-read.stories.js +4 -25
  39. package/dist/stories/navigate-long-message-lists.stories.d.ts +4 -0
  40. package/dist/stories/navigate-long-message-lists.stories.d.ts.map +1 -0
  41. package/dist/stories/navigate-long-message-lists.stories.js +167 -0
  42. package/dist/utils.d.ts +5 -1
  43. package/dist/utils.d.ts.map +1 -1
  44. package/dist/utils.js +5 -8
  45. package/dist/version.d.ts +1 -1
  46. package/dist/version.d.ts.map +1 -1
  47. package/dist/version.js +1 -1
  48. package/package.json +6 -5
  49. package/dist/stories/connected-user.stories.d.ts.map +0 -1
@@ -143,25 +143,27 @@ export var useSubmitHandler = function (props, state, dispatch, numberOfUploads)
143
143
  err_1 = _a.sent();
144
144
  addNotification(t('Edit message request failed'), 'error');
145
145
  return [3 /*break*/, 4];
146
- case 4: return [3 /*break*/, 12];
146
+ case 4: return [3 /*break*/, 13];
147
147
  case 5:
148
- _a.trys.push([5, 11, , 12]);
148
+ _a.trys.push([5, 12, , 13]);
149
149
  dispatch({ type: 'clear' });
150
- if (!overrideSubmitHandler) return [3 /*break*/, 6];
151
- overrideSubmitHandler(__assign(__assign({}, updatedMessage), { parent: parent }), channel.cid);
152
- return [3 /*break*/, 8];
153
- case 6: return [4 /*yield*/, sendMessage(__assign(__assign({}, updatedMessage), { parent: parent }), customMessageData)];
154
- case 7:
150
+ if (!overrideSubmitHandler) return [3 /*break*/, 7];
151
+ return [4 /*yield*/, overrideSubmitHandler(__assign(__assign({}, updatedMessage), { parent: parent }), channel.cid, customMessageData)];
152
+ case 6:
155
153
  _a.sent();
156
- _a.label = 8;
154
+ return [3 /*break*/, 9];
155
+ case 7: return [4 /*yield*/, sendMessage(__assign(__assign({}, updatedMessage), { parent: parent }), customMessageData)];
157
156
  case 8:
158
- if (!publishTypingEvent) return [3 /*break*/, 10];
159
- return [4 /*yield*/, channel.stopTyping()];
157
+ _a.sent();
158
+ _a.label = 9;
160
159
  case 9:
160
+ if (!publishTypingEvent) return [3 /*break*/, 11];
161
+ return [4 /*yield*/, channel.stopTyping()];
162
+ case 10:
161
163
  _a.sent();
162
- _a.label = 10;
163
- case 10: return [3 /*break*/, 12];
164
- case 11:
164
+ _a.label = 11;
165
+ case 11: return [3 /*break*/, 13];
166
+ case 12:
165
167
  err_2 = _a.sent();
166
168
  dispatch({
167
169
  getNewText: function () { return text; },
@@ -173,8 +175,8 @@ export var useSubmitHandler = function (props, state, dispatch, numberOfUploads)
173
175
  });
174
176
  }
175
177
  addNotification(t('Send message request failed'), 'error');
176
- return [3 /*break*/, 12];
177
- case 12: return [2 /*return*/];
178
+ return [3 /*break*/, 13];
179
+ case 13: return [2 /*return*/];
178
180
  }
179
181
  });
180
182
  }); };
@@ -1,5 +1,5 @@
1
1
  /* eslint-disable no-continue */
2
- import { v4 as uuidV4 } from 'uuid';
2
+ import { nanoid } from 'nanoid';
3
3
  import { CUSTOM_MESSAGE_TYPE } from '../../constants/messageTypes';
4
4
  import { isDate } from '../../context/TranslationContext';
5
5
  /**
@@ -82,10 +82,10 @@ export var processMessages = function (params) {
82
82
  export var makeDateMessageId = function (date) {
83
83
  var idSuffix;
84
84
  try {
85
- idSuffix = !date ? uuidV4() : date instanceof Date ? date.toISOString() : date;
85
+ idSuffix = !date ? nanoid() : date instanceof Date ? date.toISOString() : date;
86
86
  }
87
87
  catch (e) {
88
- idSuffix = uuidV4();
88
+ idSuffix = nanoid();
89
89
  }
90
90
  return CUSTOM_MESSAGE_TYPE.date + "-" + idSuffix;
91
91
  };
@@ -9,6 +9,42 @@ var __assign = (this && this.__assign) || function () {
9
9
  };
10
10
  return __assign.apply(this, arguments);
11
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
+ };
12
48
  import React, { useEffect, useRef } from 'react';
13
49
  import { FixedHeightMessage } from '../Message/FixedHeightMessage';
14
50
  import { Message } from '../Message/Message';
@@ -54,7 +90,7 @@ var DefaultThreadStart = function () {
54
90
  var ThreadInner = function (props) {
55
91
  var additionalMessageInputProps = props.additionalMessageInputProps, additionalMessageListProps = props.additionalMessageListProps, additionalParentMessageProps = props.additionalParentMessageProps, additionalVirtualizedMessageListProps = props.additionalVirtualizedMessageListProps, _a = props.autoFocus, autoFocus = _a === void 0 ? true : _a, _b = props.enableDateSeparator, enableDateSeparator = _b === void 0 ? false : _b, _c = props.fullWidth, fullWidth = _c === void 0 ? false : _c, PropInput = props.Input, PropMessage = props.Message, virtualized = props.virtualized;
56
92
  var _d = useChannelStateContext('Thread'), thread = _d.thread, threadHasMore = _d.threadHasMore, threadLoadingMore = _d.threadLoadingMore, threadMessages = _d.threadMessages;
57
- var _e = useChannelActionContext('Thread'), closeThread = _e.closeThread, loadMoreThread = _e.loadMoreThread;
93
+ var _e = useChannelActionContext('Thread'), closeThread = _e.closeThread, loadMoreThread = _e.loadMoreThread, sendMessage = _e.sendMessage;
58
94
  var customClasses = useChatContext('Thread').customClasses;
59
95
  var _f = useComponentContext('Thread'), ContextInput = _f.ThreadInput, ContextMessage = _f.Message, _g = _f.ThreadHeader, ThreadHeader = _g === void 0 ? DefaultThreadHeader : _g, _h = _f.ThreadStart, ThreadStart = _h === void 0 ? DefaultThreadStart : _h, _j = _f.VirtualMessage, VirtualMessage = _j === void 0 ? FixedHeightMessage : _j;
60
96
  var messageList = useRef(null);
@@ -67,15 +103,19 @@ var ThreadInner = function (props) {
67
103
  loadMoreThread();
68
104
  }
69
105
  }, []);
70
- useEffect(function () {
71
- if (messageList.current && (threadMessages === null || threadMessages === void 0 ? void 0 : threadMessages.length)) {
72
- var _a = messageList.current, clientHeight = _a.clientHeight, scrollHeight = _a.scrollHeight, scrollTop = _a.scrollTop;
73
- var scrollDown = clientHeight + scrollTop !== scrollHeight;
74
- if (scrollDown) {
75
- messageList.current.scrollTop = scrollHeight - clientHeight;
106
+ var threadSubmitHandler = function (message, _, customMessageData) { return __awaiter(void 0, void 0, void 0, function () {
107
+ return __generator(this, function (_a) {
108
+ switch (_a.label) {
109
+ case 0: return [4 /*yield*/, sendMessage(message, customMessageData)];
110
+ case 1:
111
+ _a.sent();
112
+ if (messageList.current) {
113
+ messageList.current.scrollTop = messageList.current.scrollHeight;
114
+ }
115
+ return [2 /*return*/];
76
116
  }
77
- }
78
- }, [threadMessages === null || threadMessages === void 0 ? void 0 : threadMessages.length]);
117
+ });
118
+ }); };
79
119
  if (!thread)
80
120
  return null;
81
121
  var threadClass = (customClasses === null || customClasses === void 0 ? void 0 : customClasses.thread) || 'str-chat__thread';
@@ -85,5 +125,5 @@ var ThreadInner = function (props) {
85
125
  React.createElement(Message, __assign({ initialMessage: true, message: thread, Message: ThreadMessage || FallbackMessage, threadList: true }, additionalParentMessageProps)),
86
126
  React.createElement(ThreadStart, null),
87
127
  React.createElement(ThreadMessageList, __assign({ disableDateSeparator: !enableDateSeparator, hasMore: threadHasMore, loadingMore: threadLoadingMore, loadMore: loadMoreThread, Message: ThreadMessage || FallbackMessage, messages: threadMessages || [], threadList: true }, (virtualized ? additionalVirtualizedMessageListProps : additionalMessageListProps)))),
88
- React.createElement(MessageInput, __assign({ focus: autoFocus, Input: ThreadInput, parent: thread, publishTypingEvent: false }, additionalMessageInputProps))));
128
+ React.createElement(MessageInput, __assign({ focus: autoFocus, Input: ThreadInput, overrideSubmitHandler: threadSubmitHandler, parent: thread, publishTypingEvent: false }, additionalMessageInputProps))));
89
129
  };