stream-chat-react 11.6.0 → 11.8.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 (111) hide show
  1. package/dist/Window-7c2f264c.js +41846 -0
  2. package/dist/browser.full-bundle.js +329 -230
  3. package/dist/browser.full-bundle.js.map +1 -1
  4. package/dist/browser.full-bundle.min.js +4 -4
  5. package/dist/browser.full-bundle.min.js.map +1 -1
  6. package/dist/components/Channel/Channel.d.ts +7 -5
  7. package/dist/components/Channel/Channel.d.ts.map +1 -1
  8. package/dist/components/Channel/Channel.js +97 -56
  9. package/dist/components/Channel/hooks/useCreateChannelStateContext.d.ts.map +1 -1
  10. package/dist/components/Channel/hooks/useCreateChannelStateContext.js +3 -1
  11. package/dist/components/ChannelList/ChannelList.d.ts +3 -0
  12. package/dist/components/ChannelList/ChannelList.d.ts.map +1 -1
  13. package/dist/components/ChannelList/ChannelList.js +2 -2
  14. package/dist/components/ChannelList/hooks/usePaginatedChannels.d.ts +12 -1
  15. package/dist/components/ChannelList/hooks/usePaginatedChannels.d.ts.map +1 -1
  16. package/dist/components/ChannelList/hooks/usePaginatedChannels.js +55 -43
  17. package/dist/components/ChannelPreview/ChannelPreview.d.ts +0 -16
  18. package/dist/components/ChannelPreview/ChannelPreview.d.ts.map +1 -1
  19. package/dist/components/ChannelPreview/ChannelPreviewMessenger.d.ts +0 -5
  20. package/dist/components/ChannelPreview/ChannelPreviewMessenger.d.ts.map +1 -1
  21. package/dist/components/ChannelPreview/ChannelPreviewMessenger.js +2 -62
  22. package/dist/components/Chat/hooks/useChannelsQueryState.d.ts +2 -2
  23. package/dist/components/Chat/hooks/useChannelsQueryState.d.ts.map +1 -1
  24. package/dist/components/Emojis/index.cjs.js +30 -12
  25. package/dist/components/Message/MessageErrorText.d.ts +9 -0
  26. package/dist/components/Message/MessageErrorText.d.ts.map +1 -0
  27. package/dist/components/Message/MessageErrorText.js +16 -0
  28. package/dist/components/Message/MessageSimple.d.ts.map +1 -1
  29. package/dist/components/Message/MessageSimple.js +17 -5
  30. package/dist/components/Message/MessageText.d.ts.map +1 -1
  31. package/dist/components/Message/MessageText.js +3 -5
  32. package/dist/components/Message/utils.d.ts +1 -0
  33. package/dist/components/Message/utils.d.ts.map +1 -1
  34. package/dist/components/Message/utils.js +5 -0
  35. package/dist/components/MessageActions/MessageActionsBox.d.ts.map +1 -1
  36. package/dist/components/MessageActions/MessageActionsBox.js +1 -1
  37. package/dist/components/MessageBounce/MessageBounceModal.d.ts +8 -0
  38. package/dist/components/MessageBounce/MessageBounceModal.d.ts.map +1 -0
  39. package/dist/components/MessageBounce/MessageBounceModal.js +10 -0
  40. package/dist/components/MessageBounce/MessageBouncePrompt.d.ts +6 -0
  41. package/dist/components/MessageBounce/MessageBouncePrompt.d.ts.map +1 -0
  42. package/dist/components/MessageBounce/MessageBouncePrompt.js +19 -0
  43. package/dist/components/MessageBounce/index.d.ts +3 -0
  44. package/dist/components/MessageBounce/index.d.ts.map +1 -0
  45. package/dist/components/MessageBounce/index.js +2 -0
  46. package/dist/components/MessageInput/hooks/useSubmitHandler.js +1 -1
  47. package/dist/components/MessageList/MessageList.d.ts.map +1 -1
  48. package/dist/components/MessageList/MessageList.js +15 -14
  49. package/dist/components/MessageList/UnreadMessagesNotification.d.ts.map +1 -1
  50. package/dist/components/MessageList/UnreadMessagesNotification.js +2 -2
  51. package/dist/components/MessageList/UnreadMessagesSeparator.js +1 -1
  52. package/dist/components/MessageList/VirtualizedMessageList.d.ts.map +1 -1
  53. package/dist/components/MessageList/VirtualizedMessageList.js +11 -12
  54. package/dist/components/MessageList/hooks/MessageList/useMessageListElements.d.ts +2 -1
  55. package/dist/components/MessageList/hooks/MessageList/useMessageListElements.d.ts.map +1 -1
  56. package/dist/components/MessageList/hooks/MessageList/useMessageListElements.js +3 -4
  57. package/dist/components/MessageList/hooks/MessageList/useScrollLocationLogic.d.ts.map +1 -1
  58. package/dist/components/MessageList/hooks/MessageList/useScrollLocationLogic.js +0 -2
  59. package/dist/components/MessageList/hooks/MessageList/useUnreadMessagesNotification.d.ts +2 -1
  60. package/dist/components/MessageList/hooks/MessageList/useUnreadMessagesNotification.d.ts.map +1 -1
  61. package/dist/components/MessageList/hooks/MessageList/useUnreadMessagesNotification.js +19 -4
  62. package/dist/components/MessageList/hooks/VirtualizedMessageList/usePrependMessagesCount.d.ts.map +1 -1
  63. package/dist/components/MessageList/hooks/VirtualizedMessageList/usePrependMessagesCount.js +3 -3
  64. package/dist/components/MessageList/renderMessages.d.ts +8 -7
  65. package/dist/components/MessageList/renderMessages.d.ts.map +1 -1
  66. package/dist/components/MessageList/renderMessages.js +4 -4
  67. package/dist/context/ChannelActionContext.d.ts +9 -1
  68. package/dist/context/ChannelActionContext.d.ts.map +1 -1
  69. package/dist/context/ChannelStateContext.d.ts +3 -2
  70. package/dist/context/ChannelStateContext.d.ts.map +1 -1
  71. package/dist/context/ComponentContext.d.ts +3 -1
  72. package/dist/context/ComponentContext.d.ts.map +1 -1
  73. package/dist/context/MessageBounceContext.d.ts +12 -0
  74. package/dist/context/MessageBounceContext.d.ts.map +1 -0
  75. package/dist/context/MessageBounceContext.js +37 -0
  76. package/dist/context/index.d.ts +1 -0
  77. package/dist/context/index.d.ts.map +1 -1
  78. package/dist/context/index.js +1 -0
  79. package/dist/css/v2/index.css +1 -1
  80. package/dist/css/v2/index.layout.css +1 -1
  81. package/dist/i18n/Streami18n.d.ts +3 -0
  82. package/dist/i18n/Streami18n.d.ts.map +1 -1
  83. package/dist/i18n/de.json +3 -0
  84. package/dist/i18n/en.json +3 -0
  85. package/dist/i18n/es.json +3 -0
  86. package/dist/i18n/fr.json +3 -0
  87. package/dist/i18n/hi.json +3 -0
  88. package/dist/i18n/it.json +3 -0
  89. package/dist/i18n/ja.json +3 -0
  90. package/dist/i18n/ko.json +3 -0
  91. package/dist/i18n/nl.json +3 -0
  92. package/dist/i18n/pt.json +3 -0
  93. package/dist/i18n/ru.json +3 -0
  94. package/dist/i18n/tr.json +3 -0
  95. package/dist/index.cjs.js +1392 -39747
  96. package/dist/index.d.ts +1 -0
  97. package/dist/index.d.ts.map +1 -1
  98. package/dist/index.js +1 -0
  99. package/dist/scss/v2/{MessageBounceOptions/MessageBounceOptions-layout.scss → MessageBouncePrompt/MessageBouncePrompt-layout.scss} +2 -1
  100. package/dist/scss/v2/{MessageBounceOptions/MessageBounceOptions-theme.scss → MessageBouncePrompt/MessageBouncePrompt-theme.scss} +1 -1
  101. package/dist/scss/v2/index.layout.scss +1 -1
  102. package/dist/scss/v2/index.scss +1 -1
  103. package/dist/types/index.d.ts +2 -0
  104. package/dist/types/index.d.ts.map +1 -0
  105. package/dist/types/index.js +1 -0
  106. package/dist/types/types.d.ts +12 -10
  107. package/dist/types/types.d.ts.map +1 -1
  108. package/dist/version.d.ts +1 -1
  109. package/dist/version.js +1 -1
  110. package/package.json +3 -3
  111. package/dist/icons-7ead3d97.js +0 -3172
@@ -5,7 +5,7 @@ import { MAX_QUERY_CHANNELS_LIMIT } from '../utils';
5
5
  import { useChatContext } from '../../../context/ChatContext';
6
6
  var RECOVER_LOADED_CHANNELS_THROTTLE_INTERVAL_IN_MS = 5000;
7
7
  var MIN_RECOVER_LOADED_CHANNELS_THROTTLE_INTERVAL_IN_MS = 2000;
8
- export var usePaginatedChannels = function (client, filters, sort, options, activeChannelHandler, recoveryThrottleIntervalMs) {
8
+ export var usePaginatedChannels = function (client, filters, sort, options, activeChannelHandler, recoveryThrottleIntervalMs, customQueryChannels) {
9
9
  if (recoveryThrottleIntervalMs === void 0) { recoveryThrottleIntervalMs = RECOVER_LOADED_CHANNELS_THROTTLE_INTERVAL_IN_MS; }
10
10
  var _a = useChatContext('usePaginatedChannels').channelsQueryState, error = _a.error, setError = _a.setError, setQueryInProgress = _a.setQueryInProgress;
11
11
  var _b = useState([]), channels = _b[0], setChannels = _b[1];
@@ -20,49 +20,61 @@ export var usePaginatedChannels = function (client, filters, sort, options, acti
20
20
  var filterString = useMemo(function () { return JSON.stringify(filters); }, [filters]);
21
21
  var sortString = useMemo(function () { return JSON.stringify(sort); }, [sort]);
22
22
  // eslint-disable-next-line react-hooks/exhaustive-deps
23
- var queryChannels = function (queryType) { return __awaiter(void 0, void 0, void 0, function () {
24
- var offset, newOptions, channelQueryResponse, newChannels, err_1;
25
- var _a;
26
- return __generator(this, function (_b) {
27
- switch (_b.label) {
28
- case 0:
29
- setError(null);
30
- if (queryType === 'reload') {
31
- setChannels([]);
32
- setQueryInProgress('reload');
33
- }
34
- else {
35
- setQueryInProgress('load-more');
36
- }
37
- offset = queryType === 'reload' ? 0 : channels.length;
38
- newOptions = __assign({ limit: (_a = options === null || options === void 0 ? void 0 : options.limit) !== null && _a !== void 0 ? _a : MAX_QUERY_CHANNELS_LIMIT, offset: offset }, options);
39
- _b.label = 1;
40
- case 1:
41
- _b.trys.push([1, 3, , 4]);
42
- return [4 /*yield*/, client.queryChannels(filters, sort || {}, newOptions)];
43
- case 2:
44
- channelQueryResponse = _b.sent();
45
- newChannels = queryType === 'reload'
46
- ? channelQueryResponse
47
- : uniqBy(__spreadArray(__spreadArray([], channels, true), channelQueryResponse, true), 'cid');
48
- setChannels(newChannels);
49
- setHasNextPage(channelQueryResponse.length >= newOptions.limit);
50
- // Set active channel only on load of first page
51
- if (!offset && activeChannelHandler) {
52
- activeChannelHandler(newChannels, setChannels);
53
- }
54
- return [3 /*break*/, 4];
55
- case 3:
56
- err_1 = _b.sent();
57
- console.warn(err_1);
58
- setError(err_1);
59
- return [3 /*break*/, 4];
60
- case 4:
61
- setQueryInProgress(null);
62
- return [2 /*return*/];
63
- }
23
+ var queryChannels = function (queryType) {
24
+ if (queryType === void 0) { queryType = 'load-more'; }
25
+ return __awaiter(void 0, void 0, void 0, function () {
26
+ var offset, newOptions, channelQueryResponse, newChannels, err_1;
27
+ var _a;
28
+ return __generator(this, function (_b) {
29
+ switch (_b.label) {
30
+ case 0:
31
+ setError(null);
32
+ if (queryType === 'reload') {
33
+ setChannels([]);
34
+ }
35
+ setQueryInProgress(queryType);
36
+ _b.label = 1;
37
+ case 1:
38
+ _b.trys.push([1, 6, , 7]);
39
+ if (!customQueryChannels) return [3 /*break*/, 3];
40
+ return [4 /*yield*/, customQueryChannels({
41
+ currentChannels: channels,
42
+ queryType: queryType,
43
+ setChannels: setChannels,
44
+ setHasNextPage: setHasNextPage,
45
+ })];
46
+ case 2:
47
+ _b.sent();
48
+ return [3 /*break*/, 5];
49
+ case 3:
50
+ offset = queryType === 'reload' ? 0 : channels.length;
51
+ newOptions = __assign({ limit: (_a = options === null || options === void 0 ? void 0 : options.limit) !== null && _a !== void 0 ? _a : MAX_QUERY_CHANNELS_LIMIT, offset: offset }, options);
52
+ return [4 /*yield*/, client.queryChannels(filters, sort || {}, newOptions)];
53
+ case 4:
54
+ channelQueryResponse = _b.sent();
55
+ newChannels = queryType === 'reload'
56
+ ? channelQueryResponse
57
+ : uniqBy(__spreadArray(__spreadArray([], channels, true), channelQueryResponse, true), 'cid');
58
+ setChannels(newChannels);
59
+ setHasNextPage(channelQueryResponse.length >= newOptions.limit);
60
+ // Set active channel only on load of first page
61
+ if (!offset && activeChannelHandler) {
62
+ activeChannelHandler(newChannels, setChannels);
63
+ }
64
+ _b.label = 5;
65
+ case 5: return [3 /*break*/, 7];
66
+ case 6:
67
+ err_1 = _b.sent();
68
+ console.warn(err_1);
69
+ setError(err_1);
70
+ return [3 /*break*/, 7];
71
+ case 7:
72
+ setQueryInProgress(null);
73
+ return [2 /*return*/];
74
+ }
75
+ });
64
76
  });
65
- }); };
77
+ };
66
78
  var throttleRecover = useCallback(function () {
67
79
  var now = Date.now();
68
80
  var isFirstRecovery = !lastRecoveryTimestamp.current;
@@ -1,5 +1,4 @@
1
1
  import React from 'react';
2
- import { MarkChannelReadOn } from './ChannelPreviewMessenger';
3
2
  import { ChatContextValue } from '../../context/ChatContext';
4
3
  import { MessageDeliveryStatus } from './hooks/useMessageDeliveryStatus';
5
4
  import type { Channel } from 'stream-chat';
@@ -17,21 +16,6 @@ export type ChannelPreviewUIComponentProps<StreamChatGenerics extends DefaultStr
17
16
  lastMessage?: StreamMessage<StreamChatGenerics>;
18
17
  /** Latest message preview to display, will be a string or JSX element supporting markdown. */
19
18
  latestMessage?: string | JSX.Element;
20
- /**
21
- * Configuration that determines when and whether a channel is marked read upon clicking ChannelPreview.
22
- * 1. MarkChannelReadOn.never:
23
- * Prevents a channel from being marked read when any ChannelPreview is clicked.
24
- * 2. MarkChannelReadOn.leave:
25
- * Marks active channel read before switching the active channel state to the clicked preview's channel.
26
- * This means that active channel being left is marked read before navigating to another channel.
27
- * 3. MarkChannelReadOn.reenter:
28
- * Channel, which is re-entered by clicking the preview, is marked read.
29
- * That means
30
- * 1. an active channel can be marked unread, left and on return marked read.
31
- * 2. a non-active channel receives a new message, is entered, left and re-entered and marked read.
32
- * The default configuration is set to MarkChannelReadOn.reenter.
33
- */
34
- markActiveChannelReadOn?: MarkChannelReadOn;
35
19
  /** Status describing whether own message has been delivered or read by another. If the last message is not an own message, then the status is undefined. */
36
20
  messageDeliveryStatus?: MessageDeliveryStatus;
37
21
  /** Number of unread Messages */
@@ -1 +1 @@
1
- {"version":3,"file":"ChannelPreview.d.ts","sourceRoot":"","sources":["../../../src/components/ChannelPreview/ChannelPreview.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA2C,MAAM,OAAO,CAAC;AAEhE,OAAO,EAA2B,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAKvF,OAAO,EAAE,gBAAgB,EAAkB,MAAM,2BAA2B,CAAC;AAE7E,OAAO,EAAE,qBAAqB,EAA4B,MAAM,kCAAkC,CAAC;AAEnG,OAAO,KAAK,EAAE,OAAO,EAAS,MAAM,aAAa,CAAC;AAElD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAEpD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC;AAEvE,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAC;AAEnE,MAAM,MAAM,8BAA8B,CACxC,kBAAkB,SAAS,yBAAyB,GAAG,yBAAyB,IAC9E,mBAAmB,CAAC,kBAAkB,CAAC,GAAG;IAC5C,kEAAkE;IAClE,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,kCAAkC;IAClC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,kCAAkC;IAClC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,6CAA6C;IAC7C,WAAW,CAAC,EAAE,aAAa,CAAC,kBAAkB,CAAC,CAAC;IAChD,8FAA8F;IAC9F,aAAa,CAAC,EAAE,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC;IACrC;;;;;;;;;;;;;OAaG;IACH,uBAAuB,CAAC,EAAE,iBAAiB,CAAC;IAC5C,4JAA4J;IAC5J,qBAAqB,CAAC,EAAE,qBAAqB,CAAC;IAC9C,gCAAgC;IAChC,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,mBAAmB,CAC7B,kBAAkB,SAAS,yBAAyB,GAAG,yBAAyB,IAC9E;IACF,6MAA6M;IAC7M,OAAO,EAAE,OAAO,CAAC,kBAAkB,CAAC,CAAC;IACrC,sCAAsC;IACtC,aAAa,CAAC,EAAE,OAAO,CAAC,kBAAkB,CAAC,CAAC;IAC5C,+LAA+L;IAC/L,MAAM,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;IAC1C,+DAA+D;IAC/D,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,gDAAgD;IAChD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,mDAAmD;IACnD,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,UAAU,KAAK,IAAI,CAAC;IAC7C,6PAA6P;IAC7P,OAAO,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC,8BAA8B,CAAC,kBAAkB,CAAC,CAAC,CAAC;IAClF,kCAAkC;IAClC,gBAAgB,CAAC,EAAE,gBAAgB,CAAC,kBAAkB,CAAC,CAAC,kBAAkB,CAAC,CAAC;IAC5E,2CAA2C;IAC3C,QAAQ,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CAChD,CAAC;AAEF,eAAO,MAAM,cAAc,0JA4F1B,CAAC"}
1
+ {"version":3,"file":"ChannelPreview.d.ts","sourceRoot":"","sources":["../../../src/components/ChannelPreview/ChannelPreview.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA2C,MAAM,OAAO,CAAC;AAOhE,OAAO,EAAE,gBAAgB,EAAkB,MAAM,2BAA2B,CAAC;AAE7E,OAAO,EAAE,qBAAqB,EAA4B,MAAM,kCAAkC,CAAC;AAEnG,OAAO,KAAK,EAAE,OAAO,EAAS,MAAM,aAAa,CAAC;AAElD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAEpD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC;AAEvE,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAC;AAEnE,MAAM,MAAM,8BAA8B,CACxC,kBAAkB,SAAS,yBAAyB,GAAG,yBAAyB,IAC9E,mBAAmB,CAAC,kBAAkB,CAAC,GAAG;IAC5C,kEAAkE;IAClE,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,kCAAkC;IAClC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,kCAAkC;IAClC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,6CAA6C;IAC7C,WAAW,CAAC,EAAE,aAAa,CAAC,kBAAkB,CAAC,CAAC;IAChD,8FAA8F;IAC9F,aAAa,CAAC,EAAE,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC;IACrC,4JAA4J;IAC5J,qBAAqB,CAAC,EAAE,qBAAqB,CAAC;IAC9C,gCAAgC;IAChC,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,mBAAmB,CAC7B,kBAAkB,SAAS,yBAAyB,GAAG,yBAAyB,IAC9E;IACF,6MAA6M;IAC7M,OAAO,EAAE,OAAO,CAAC,kBAAkB,CAAC,CAAC;IACrC,sCAAsC;IACtC,aAAa,CAAC,EAAE,OAAO,CAAC,kBAAkB,CAAC,CAAC;IAC5C,+LAA+L;IAC/L,MAAM,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;IAC1C,+DAA+D;IAC/D,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,gDAAgD;IAChD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,mDAAmD;IACnD,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,UAAU,KAAK,IAAI,CAAC;IAC7C,6PAA6P;IAC7P,OAAO,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC,8BAA8B,CAAC,kBAAkB,CAAC,CAAC,CAAC;IAClF,kCAAkC;IAClC,gBAAgB,CAAC,EAAE,gBAAgB,CAAC,kBAAkB,CAAC,CAAC,kBAAkB,CAAC,CAAC;IAC5E,2CAA2C;IAC3C,QAAQ,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CAChD,CAAC;AAEF,eAAO,MAAM,cAAc,0JA4F1B,CAAC"}
@@ -1,10 +1,5 @@
1
1
  import type { ChannelPreviewUIComponentProps } from './ChannelPreview';
2
2
  import type { DefaultStreamChatGenerics } from '../../types/types';
3
- export declare enum MarkChannelReadOn {
4
- 'never' = 0,
5
- 'leave' = 1,
6
- 'reenter' = 2
7
- }
8
3
  /**
9
4
  * Used as preview component for channel item in [ChannelList](#channellist) component.
10
5
  * Its best suited for messenger type chat.
@@ -1 +1 @@
1
- {"version":3,"file":"ChannelPreviewMessenger.d.ts","sourceRoot":"","sources":["../../../src/components/ChannelPreview/ChannelPreviewMessenger.tsx"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,kBAAkB,CAAC;AAEvE,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAC;AAEnE,oBAAY,iBAAiB;IAC3B,OAAO,IAAA;IACP,OAAO,IAAA;IACP,SAAS,IAAA;CACV;AA4HD;;;GAGG;AACH,eAAO,MAAM,uBAAuB,8JAES,CAAC"}
1
+ {"version":3,"file":"ChannelPreviewMessenger.d.ts","sourceRoot":"","sources":["../../../src/components/ChannelPreview/ChannelPreviewMessenger.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,kBAAkB,CAAC;AAEvE,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAC;AAwEnE;;;GAGG;AACH,eAAO,MAAM,uBAAuB,8JAES,CAAC"}
@@ -1,82 +1,22 @@
1
- import React, { useEffect, useRef } from 'react';
1
+ import React, { useRef } from 'react';
2
2
  import clsx from 'clsx';
3
3
  import { Avatar as DefaultAvatar } from '../Avatar';
4
- import { useChatContext } from '../../context';
5
- export var MarkChannelReadOn;
6
- (function (MarkChannelReadOn) {
7
- MarkChannelReadOn[MarkChannelReadOn["never"] = 0] = "never";
8
- MarkChannelReadOn[MarkChannelReadOn["leave"] = 1] = "leave";
9
- MarkChannelReadOn[MarkChannelReadOn["reenter"] = 2] = "reenter";
10
- })(MarkChannelReadOn || (MarkChannelReadOn = {}));
11
4
  var UnMemoizedChannelPreviewMessenger = function (props) {
12
5
  var _a, _b;
13
- var active = props.active, activeChannel = props.activeChannel, _c = props.Avatar, Avatar = _c === void 0 ? DefaultAvatar : _c, channel = props.channel, _d = props.className, customClassName = _d === void 0 ? '' : _d, displayImage = props.displayImage, displayTitle = props.displayTitle, latestMessage = props.latestMessage, _e = props.markActiveChannelReadOn, markActiveChannelReadOn = _e === void 0 ? MarkChannelReadOn.reenter : _e, customOnSelectChannel = props.onSelect, setActiveChannel = props.setActiveChannel, unread = props.unread, watchers = props.watchers;
14
- var client = useChatContext('ChannelPreviewMessenger').client;
6
+ var active = props.active, _c = props.Avatar, Avatar = _c === void 0 ? DefaultAvatar : _c, channel = props.channel, _d = props.className, customClassName = _d === void 0 ? '' : _d, displayImage = props.displayImage, displayTitle = props.displayTitle, latestMessage = props.latestMessage, customOnSelectChannel = props.onSelect, setActiveChannel = props.setActiveChannel, unread = props.unread, watchers = props.watchers;
15
7
  var channelPreviewButton = useRef(null);
16
8
  var avatarName = displayTitle || ((_b = (_a = channel.state.messages[channel.state.messages.length - 1]) === null || _a === void 0 ? void 0 : _a.user) === null || _b === void 0 ? void 0 : _b.id);
17
- var previouslyClicked = useRef(active);
18
- var handleMarkReadOnReenter = function () {
19
- if (!client.user)
20
- return;
21
- var ownReadState = channel.state.read[client.user.id];
22
- if (!previouslyClicked.current) {
23
- previouslyClicked.current = true;
24
- }
25
- else if (!active &&
26
- ((ownReadState === null || ownReadState === void 0 ? void 0 : ownReadState.first_unread_message_id) || (ownReadState === null || ownReadState === void 0 ? void 0 : ownReadState.unread_messages) > 0) &&
27
- previouslyClicked.current) {
28
- channel.markRead();
29
- }
30
- };
31
- var handleMarkReadOnLeave = function () {
32
- if (!(client.user && activeChannel))
33
- return;
34
- var ownReadState = activeChannel.state.read[client.user.id];
35
- if ((ownReadState === null || ownReadState === void 0 ? void 0 : ownReadState.first_unread_message_id) || (ownReadState === null || ownReadState === void 0 ? void 0 : ownReadState.unread_messages) > 0) {
36
- activeChannel.markRead();
37
- }
38
- };
39
9
  var onSelectChannel = function (e) {
40
10
  if (customOnSelectChannel) {
41
11
  customOnSelectChannel(e);
42
12
  }
43
13
  else if (setActiveChannel) {
44
- // eslint-disable-next-line default-case
45
- switch (markActiveChannelReadOn) {
46
- case MarkChannelReadOn.never:
47
- break;
48
- case MarkChannelReadOn.leave:
49
- handleMarkReadOnLeave();
50
- break;
51
- case MarkChannelReadOn.reenter:
52
- handleMarkReadOnReenter();
53
- }
54
14
  setActiveChannel(channel, watchers);
55
15
  }
56
16
  if (channelPreviewButton === null || channelPreviewButton === void 0 ? void 0 : channelPreviewButton.current) {
57
17
  channelPreviewButton.current.blur();
58
18
  }
59
19
  };
60
- useEffect(function () {
61
- if (markActiveChannelReadOn !== MarkChannelReadOn.reenter)
62
- return;
63
- var handleEvent = function (event) {
64
- var _a, _b;
65
- if (active)
66
- return;
67
- if (channel.cid !== event.cid)
68
- return;
69
- if (event.type === 'notification.mark_unread' && ((_a = event.user) === null || _a === void 0 ? void 0 : _a.id) !== ((_b = client.user) === null || _b === void 0 ? void 0 : _b.id))
70
- return;
71
- previouslyClicked.current = false;
72
- };
73
- channel.on('notification.mark_unread', handleEvent);
74
- channel.on('message.new', handleEvent);
75
- return function () {
76
- channel.off('notification.mark_unread', handleEvent);
77
- channel.off('message.new', handleEvent);
78
- };
79
- }, [active, channel, client, markActiveChannelReadOn, previouslyClicked]);
80
20
  return (React.createElement("button", { "aria-label": "Select Channel: ".concat(displayTitle || ''), "aria-selected": active, className: clsx("str-chat__channel-preview-messenger str-chat__channel-preview", active && 'str-chat__channel-preview-messenger--active', unread && unread >= 1 && 'str-chat__channel-preview-messenger--unread', customClassName), "data-testid": 'channel-preview-button', onClick: onSelectChannel, ref: channelPreviewButton, role: 'option' },
81
21
  React.createElement("div", { className: 'str-chat__channel-preview-messenger--left' },
82
22
  React.createElement(Avatar, { image: displayImage, name: avatarName, size: 40 })),
@@ -3,9 +3,9 @@ import type { APIErrorResponse, ErrorFromResponse } from 'stream-chat';
3
3
  type ChannelQueryState = 'uninitialized' | 'reload' | 'load-more' | null;
4
4
  export interface ChannelsQueryState {
5
5
  error: ErrorFromResponse<APIErrorResponse> | null;
6
- queryInProgress: ChannelQueryState | null;
6
+ queryInProgress: ChannelQueryState;
7
7
  setError: Dispatch<SetStateAction<ErrorFromResponse<APIErrorResponse> | null>>;
8
- setQueryInProgress: Dispatch<SetStateAction<ChannelQueryState | null>>;
8
+ setQueryInProgress: Dispatch<SetStateAction<ChannelQueryState>>;
9
9
  }
10
10
  export declare const useChannelsQueryState: () => ChannelsQueryState;
11
11
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"useChannelsQueryState.d.ts","sourceRoot":"","sources":["../../../../src/components/Chat/hooks/useChannelsQueryState.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAY,MAAM,OAAO,CAAC;AAC3D,OAAO,KAAK,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAEvE,KAAK,iBAAiB,GAClB,eAAe,GACf,QAAQ,GACR,WAAW,GACX,IAAI,CAAC;AAET,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,iBAAiB,CAAC,gBAAgB,CAAC,GAAG,IAAI,CAAC;IAClD,eAAe,EAAE,iBAAiB,GAAG,IAAI,CAAC;IAC1C,QAAQ,EAAE,QAAQ,CAAC,cAAc,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;IAC/E,kBAAkB,EAAE,QAAQ,CAAC,cAAc,CAAC,iBAAiB,GAAG,IAAI,CAAC,CAAC,CAAC;CACxE;AAED,eAAO,MAAM,qBAAqB,QAAO,kBAUxC,CAAC"}
1
+ {"version":3,"file":"useChannelsQueryState.d.ts","sourceRoot":"","sources":["../../../../src/components/Chat/hooks/useChannelsQueryState.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAY,MAAM,OAAO,CAAC;AAC3D,OAAO,KAAK,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAEvE,KAAK,iBAAiB,GAClB,eAAe,GACf,QAAQ,GACR,WAAW,GACX,IAAI,CAAC;AAET,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,iBAAiB,CAAC,gBAAgB,CAAC,GAAG,IAAI,CAAC;IAClD,eAAe,EAAE,iBAAiB,CAAC;IACnC,QAAQ,EAAE,QAAQ,CAAC,cAAc,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;IAC/E,kBAAkB,EAAE,QAAQ,CAAC,cAAc,CAAC,iBAAiB,CAAC,CAAC,CAAC;CACjE;AAED,eAAO,MAAM,qBAAqB,QAAO,kBAUxC,CAAC"}
@@ -2,12 +2,9 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var icons = require('../../icons-7ead3d97.js');
5
+ var Window = require('../../Window-7c2f264c.js');
6
6
  var React = require('react');
7
7
  var Picker = require('@emoji-mart/react');
8
- require('react-dom');
9
- require('react-fast-compare');
10
- require('crypto');
11
8
  require('dayjs');
12
9
  require('dayjs/plugin/calendar');
13
10
  require('dayjs/plugin/localizedFormat');
@@ -29,6 +26,27 @@ require('dayjs/locale/pt');
29
26
  require('dayjs/locale/ru');
30
27
  require('dayjs/locale/tr');
31
28
  require('dayjs/locale/en');
29
+ require('lodash.uniqby');
30
+ require('react/jsx-runtime');
31
+ require('react-player');
32
+ require('pretty-bytes');
33
+ require('@braintree/sanitize-url');
34
+ require('react-image-gallery');
35
+ require('prop-types');
36
+ require('linkifyjs');
37
+ require('emoji-regex');
38
+ require('@babel/runtime/helpers/extends');
39
+ require('@babel/runtime/helpers/defineProperty');
40
+ require('react-textarea-autosize');
41
+ require('textarea-caret');
42
+ require('react-is');
43
+ require('lodash.debounce');
44
+ require('lodash.throttle');
45
+ require('crypto');
46
+ require('react-fast-compare');
47
+ require('react-dom');
48
+ require('stream-chat');
49
+ require('react-virtuoso');
32
50
 
33
51
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
34
52
 
@@ -67,15 +85,15 @@ var classNames = {
67
85
  };
68
86
  var EmojiPicker = function (props) {
69
87
  var _a, _b, _c;
70
- var themeVersion = icons.useChatContext('EmojiPicker').themeVersion;
71
- var t = icons.useTranslationContext('EmojiPicker').t;
72
- var _d = icons.useMessageInputContext('EmojiPicker'), insertText = _d.insertText, textareaRef = _d.textareaRef;
88
+ var themeVersion = Window.useChatContext('EmojiPicker').themeVersion;
89
+ var t = Window.useTranslationContext('EmojiPicker').t;
90
+ var _d = Window.useMessageInputContext('EmojiPicker'), insertText = _d.insertText, textareaRef = _d.textareaRef;
73
91
  var _e = React.useState(false), displayPicker = _e[0], setDisplayPicker = _e[1];
74
92
  var _f = React.useState(null), referenceElement = _f[0], setReferenceElement = _f[1];
75
93
  var _g = React.useState(null), popperElement = _g[0], setPopperElement = _g[1];
76
- var _h = icons.usePopper(referenceElement, popperElement, icons.__assign({ placement: themeVersion === '2' ? 'top-end' : 'top-start' }, props.popperOptions)), attributes = _h.attributes, styles = _h.styles;
94
+ var _h = Window.usePopper(referenceElement, popperElement, Window.__assign({ placement: themeVersion === '2' ? 'top-end' : 'top-start' }, props.popperOptions)), attributes = _h.attributes, styles = _h.styles;
77
95
  var _j = classNames[themeVersion], buttonClassName = _j.buttonClassName, pickerContainerClassName = _j.pickerContainerClassName, wrapperClassName = _j.wrapperClassName;
78
- var _k = props.ButtonIconComponent, ButtonIconComponent = _k === void 0 ? themeVersion === '2' ? icons.EmojiPickerIcon : icons.EmojiIconLarge : _k;
96
+ var _k = props.ButtonIconComponent, ButtonIconComponent = _k === void 0 ? themeVersion === '2' ? Window.EmojiPickerIcon : Window.EmojiIconLarge : _k;
79
97
  React.useEffect(function () {
80
98
  if (!popperElement || !referenceElement)
81
99
  return;
@@ -89,8 +107,8 @@ var EmojiPicker = function (props) {
89
107
  return function () { return window.removeEventListener('pointerdown', handlePointerDown); };
90
108
  }, [referenceElement, popperElement]);
91
109
  return (React__default["default"].createElement("div", { className: (_a = props.wrapperClassName) !== null && _a !== void 0 ? _a : wrapperClassName },
92
- displayPicker && (React__default["default"].createElement("div", icons.__assign({ className: (_b = props.pickerContainerClassName) !== null && _b !== void 0 ? _b : pickerContainerClassName, style: styles.popper }, attributes.popper, { ref: setPopperElement }),
93
- React__default["default"].createElement(Picker__default["default"], icons.__assign({ data: function () { return icons.__awaiter(void 0, void 0, void 0, function () { return icons.__generator(this, function (_a) {
110
+ displayPicker && (React__default["default"].createElement("div", Window.__assign({ className: (_b = props.pickerContainerClassName) !== null && _b !== void 0 ? _b : pickerContainerClassName, style: styles.popper }, attributes.popper, { ref: setPopperElement }),
111
+ React__default["default"].createElement(Picker__default["default"], Window.__assign({ data: function () { return Window.__awaiter(void 0, void 0, void 0, function () { return Window.__generator(this, function (_a) {
94
112
  switch (_a.label) {
95
113
  case 0: return [4 /*yield*/, Promise.resolve().then(function () { return /*#__PURE__*/_interopNamespace(require('@emoji-mart/data')); })];
96
114
  case 1: return [2 /*return*/, (_a.sent()).default];
@@ -100,7 +118,7 @@ var EmojiPicker = function (props) {
100
118
  insertText(e.native);
101
119
  (_a = textareaRef.current) === null || _a === void 0 ? void 0 : _a.focus();
102
120
  } }, props.pickerProps)))),
103
- themeVersion === '1' && (React__default["default"].createElement(icons.Tooltip, null, displayPicker ? t('Close emoji picker') : t('Open emoji picker'))),
121
+ themeVersion === '1' && (React__default["default"].createElement(Window.Tooltip, null, displayPicker ? t('Close emoji picker') : t('Open emoji picker'))),
104
122
  React__default["default"].createElement("button", { "aria-label": 'Emoji picker', className: (_c = props.buttonClassName) !== null && _c !== void 0 ? _c : buttonClassName, onClick: function () { return setDisplayPicker(function (cv) { return !cv; }); }, ref: setReferenceElement, type: 'button' }, ButtonIconComponent && React__default["default"].createElement(ButtonIconComponent, null))));
105
123
  };
106
124
 
@@ -0,0 +1,9 @@
1
+ /// <reference types="react" />
2
+ import { StreamMessage } from '../../context';
3
+ import { DefaultStreamChatGenerics } from '../../types/types';
4
+ export interface MessageErrorTextProps<StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics> {
5
+ message: StreamMessage<StreamChatGenerics>;
6
+ theme: string;
7
+ }
8
+ export declare function MessageErrorText<StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics>({ message, theme }: MessageErrorTextProps<StreamChatGenerics>): JSX.Element | null;
9
+ //# sourceMappingURL=MessageErrorText.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MessageErrorText.d.ts","sourceRoot":"","sources":["../../../src/components/Message/MessageErrorText.tsx"],"names":[],"mappings":";AAEA,OAAO,EAAE,aAAa,EAAyB,MAAM,eAAe,CAAC;AACrE,OAAO,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAC;AAG9D,MAAM,WAAW,qBAAqB,CACpC,kBAAkB,SAAS,yBAAyB,GAAG,yBAAyB;IAEhF,OAAO,EAAE,aAAa,CAAC,kBAAkB,CAAC,CAAC;IAC3C,KAAK,EAAE,MAAM,CAAC;CACf;AAED,wBAAgB,gBAAgB,CAC9B,kBAAkB,SAAS,yBAAyB,GAAG,yBAAyB,EAChF,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,qBAAqB,CAAC,kBAAkB,CAAC,sBAsB9D"}
@@ -0,0 +1,16 @@
1
+ import React from 'react';
2
+ import { useTranslationContext } from '../../context';
3
+ import { isMessageBounced } from './utils';
4
+ export function MessageErrorText(_a) {
5
+ var message = _a.message, theme = _a.theme;
6
+ var t = useTranslationContext('MessageText').t;
7
+ if (message.type === 'error' && !isMessageBounced(message)) {
8
+ return (React.createElement("div", { className: "str-chat__".concat(theme, "-message--error-message str-chat__message--error-message") }, t('Error · Unsent')));
9
+ }
10
+ if (message.status === 'failed') {
11
+ return (React.createElement("div", { className: "str-chat__".concat(theme, "-message--error-message str-chat__message--error-message") }, message.errorStatusCode !== 403
12
+ ? t('Message Failed · Click to try again')
13
+ : t('Message Failed · Unauthorized')));
14
+ }
15
+ return null;
16
+ }
@@ -1 +1 @@
1
- {"version":3,"file":"MessageSimple.d.ts","sourceRoot":"","sources":["../../../src/components/Message/MessageSimple.tsx"],"names":[],"mappings":"AAwBA,OAAO,EAAE,mBAAmB,EAAqB,MAAM,8BAA8B,CAAC;AAEtF,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,SAAS,CAAC;AAEvD,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAC;AA6LnE;;GAEG;AACH,eAAO,MAAM,aAAa,4JAQzB,CAAC"}
1
+ {"version":3,"file":"MessageSimple.d.ts","sourceRoot":"","sources":["../../../src/components/Message/MessageSimple.tsx"],"names":[],"mappings":"AA+BA,OAAO,EAAE,mBAAmB,EAAqB,MAAM,8BAA8B,CAAC;AAEtF,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,SAAS,CAAC;AAEvD,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAC;AAgNnE;;GAEG;AACH,eAAO,MAAM,aAAa,4JAQzB,CAAC"}
@@ -1,27 +1,30 @@
1
1
  import { __assign } from "tslib";
2
- import React from 'react';
2
+ import React, { useState } from 'react';
3
3
  import clsx from 'clsx';
4
4
  import { MessageErrorIcon } from './icons';
5
+ import { MessageBouncePrompt as DefaultMessageBouncePrompt } from '../MessageBounce';
5
6
  import { MessageDeleted as DefaultMessageDeleted } from './MessageDeleted';
6
7
  import { MessageOptions as DefaultMessageOptions } from './MessageOptions';
7
8
  import { MessageRepliesCountButton as DefaultMessageRepliesCountButton } from './MessageRepliesCountButton';
8
9
  import { MessageStatus as DefaultMessageStatus } from './MessageStatus';
9
10
  import { MessageText } from './MessageText';
10
11
  import { MessageTimestamp as DefaultMessageTimestamp } from './MessageTimestamp';
11
- import { areMessageUIPropsEqual, messageHasAttachments, messageHasReactions } from './utils';
12
+ import { areMessageUIPropsEqual, isMessageBounced, messageHasAttachments, messageHasReactions, } from './utils';
12
13
  import { Avatar as DefaultAvatar } from '../Avatar';
13
14
  import { CUSTOM_MESSAGE_TYPE } from '../../constants/messageTypes';
14
15
  import { EditMessageForm as DefaultEditMessageForm, MessageInput } from '../MessageInput';
15
16
  import { MML } from '../MML';
16
17
  import { Modal } from '../Modal';
17
18
  import { ReactionsList as DefaultReactionList, ReactionSelector as DefaultReactionSelector, } from '../Reactions';
19
+ import { MessageBounceModal } from '../MessageBounce/MessageBounceModal';
18
20
  import { useChatContext } from '../../context/ChatContext';
19
21
  import { useComponentContext } from '../../context/ComponentContext';
20
22
  import { useMessageContext } from '../../context/MessageContext';
21
23
  var MessageSimpleWithContext = function (props) {
22
24
  var _a;
23
25
  var additionalMessageInputProps = props.additionalMessageInputProps, clearEditingState = props.clearEditingState, editing = props.editing, endOfGroup = props.endOfGroup, firstOfGroup = props.firstOfGroup, groupedByUser = props.groupedByUser, handleAction = props.handleAction, handleOpenThread = props.handleOpenThread, handleRetry = props.handleRetry, highlighted = props.highlighted, isMyMessage = props.isMyMessage, isReactionEnabled = props.isReactionEnabled, message = props.message, onUserClick = props.onUserClick, onUserHover = props.onUserHover, reactionSelectorRef = props.reactionSelectorRef, renderText = props.renderText, showDetailedReactions = props.showDetailedReactions, threadList = props.threadList;
24
- var _b = useComponentContext('MessageSimple'), Attachment = _b.Attachment, _c = _b.Avatar, Avatar = _c === void 0 ? DefaultAvatar : _c, _d = _b.EditMessageInput, EditMessageInput = _d === void 0 ? DefaultEditMessageForm : _d, _e = _b.MessageDeleted, MessageDeleted = _e === void 0 ? DefaultMessageDeleted : _e, _f = _b.MessageOptions, MessageOptions = _f === void 0 ? DefaultMessageOptions : _f, _g = _b.MessageRepliesCountButton, MessageRepliesCountButton = _g === void 0 ? DefaultMessageRepliesCountButton : _g, _h = _b.MessageStatus, MessageStatus = _h === void 0 ? DefaultMessageStatus : _h, _j = _b.MessageTimestamp, MessageTimestamp = _j === void 0 ? DefaultMessageTimestamp : _j, _k = _b.ReactionSelector, ReactionSelector = _k === void 0 ? DefaultReactionSelector : _k, _l = _b.ReactionsList, ReactionsList = _l === void 0 ? DefaultReactionList : _l;
26
+ var _b = useState(false), isBounceDialogOpen = _b[0], setIsBounceDialogOpen = _b[1];
27
+ var _c = useComponentContext('MessageSimple'), Attachment = _c.Attachment, _d = _c.Avatar, Avatar = _d === void 0 ? DefaultAvatar : _d, _e = _c.EditMessageInput, EditMessageInput = _e === void 0 ? DefaultEditMessageForm : _e, _f = _c.MessageDeleted, MessageDeleted = _f === void 0 ? DefaultMessageDeleted : _f, _g = _c.MessageBouncePrompt, MessageBouncePrompt = _g === void 0 ? DefaultMessageBouncePrompt : _g, _h = _c.MessageOptions, MessageOptions = _h === void 0 ? DefaultMessageOptions : _h, _j = _c.MessageRepliesCountButton, MessageRepliesCountButton = _j === void 0 ? DefaultMessageRepliesCountButton : _j, _k = _c.MessageStatus, MessageStatus = _k === void 0 ? DefaultMessageStatus : _k, _l = _c.MessageTimestamp, MessageTimestamp = _l === void 0 ? DefaultMessageTimestamp : _l, _m = _c.ReactionSelector, ReactionSelector = _m === void 0 ? DefaultReactionSelector : _m, _o = _c.ReactionsList, ReactionsList = _o === void 0 ? DefaultReactionList : _o;
25
28
  var themeVersion = useChatContext('MessageSimple').themeVersion;
26
29
  var hasAttachment = messageHasAttachments(message);
27
30
  var hasReactions = messageHasReactions(message);
@@ -41,6 +44,14 @@ var MessageSimpleWithContext = function (props) {
41
44
  var showMetadata = !groupedByUser || endOfGroup;
42
45
  var showReplyCountButton = !threadList && !!message.reply_count;
43
46
  var allowRetry = message.status === 'failed' && message.errorStatusCode !== 403;
47
+ var isBounced = isMessageBounced(message);
48
+ var handleClick = undefined;
49
+ if (allowRetry) {
50
+ handleClick = function () { return handleRetry(message); };
51
+ }
52
+ else if (isBounced) {
53
+ handleClick = function () { return setIsBounceDialogOpen(true); };
54
+ }
44
55
  var rootClassName = clsx('str-chat__message str-chat__message-simple', "str-chat__message--".concat(message.type), "str-chat__message--".concat(message.status), isMyMessage()
45
56
  ? 'str-chat__message--me str-chat__message-simple--me'
46
57
  : 'str-chat__message--other', message.text ? 'str-chat__message--has-text' : 'has-no-text', {
@@ -56,12 +67,13 @@ var MessageSimpleWithContext = function (props) {
56
67
  return (React.createElement(React.Fragment, null,
57
68
  editing && (React.createElement(Modal, { onClose: clearEditingState, open: editing },
58
69
  React.createElement(MessageInput, __assign({ clearEditingState: clearEditingState, grow: true, hideSendButton: true, Input: EditMessageInput, message: message }, additionalMessageInputProps)))),
70
+ isBounceDialogOpen && (React.createElement(MessageBounceModal, { MessageBouncePrompt: MessageBouncePrompt, onClose: function () { return setIsBounceDialogOpen(false); }, open: isBounceDialogOpen })),
59
71
  React.createElement("div", { className: rootClassName, key: message.id },
60
72
  themeVersion === '1' && React.createElement(MessageStatus, null),
61
73
  message.user && (React.createElement(Avatar, { image: message.user.image, name: message.user.name || message.user.id, onClick: onUserClick, onMouseOver: onUserHover, user: message.user })),
62
74
  React.createElement("div", { className: clsx('str-chat__message-inner', {
63
- 'str-chat__simple-message--error-failed': allowRetry,
64
- }), "data-testid": 'message-inner', onClick: allowRetry ? function () { return handleRetry(message); } : undefined, onKeyUp: allowRetry ? function () { return handleRetry(message); } : undefined },
75
+ 'str-chat__simple-message--error-failed': allowRetry || isBounced,
76
+ }), "data-testid": 'message-inner', onClick: handleClick, onKeyUp: handleClick },
65
77
  React.createElement(MessageOptions, null),
66
78
  React.createElement("div", { className: 'str-chat__message-reactions-host' },
67
79
  canShowReactions && React.createElement(ReactionsList, { reverse: true }),
@@ -1 +1 @@
1
- {"version":3,"file":"MessageText.d.ts","sourceRoot":"","sources":["../../../src/components/Message/MessageText.tsx"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AACxE,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAC;AAEnE,MAAM,MAAM,gBAAgB,CAC1B,kBAAkB,SAAS,yBAAyB,GAAG,yBAAyB,IAC9E;IAEF,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAE1B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAE5B,OAAO,CAAC,EAAE,aAAa,CAAC,kBAAkB,CAAC,CAAC;IAE5C,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,GAAG,IAAI,CAAC,mBAAmB,CAAC,kBAAkB,CAAC,EAAE,YAAY,CAAC,CAAC;AA2FhE,eAAO,MAAM,WAAW,uJAEkB,CAAC"}
1
+ {"version":3,"file":"MessageText.d.ts","sourceRoot":"","sources":["../../../src/components/Message/MessageText.tsx"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AACxE,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAC;AAEnE,MAAM,MAAM,gBAAgB,CAC1B,kBAAkB,SAAS,yBAAyB,GAAG,yBAAyB,IAC9E;IAEF,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAE1B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAE5B,OAAO,CAAC,EAAE,aAAa,CAAC,kBAAkB,CAAC,CAAC;IAE5C,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,GAAG,IAAI,CAAC,mBAAmB,CAAC,kBAAkB,CAAC,EAAE,YAAY,CAAC,CAAC;AA4EhE,eAAO,MAAM,WAAW,uJAEkB,CAAC"}
@@ -3,13 +3,14 @@ import { QuotedMessage as DefaultQuotedMessage } from './QuotedMessage';
3
3
  import { isOnlyEmojis, messageHasAttachments } from './utils';
4
4
  import { useComponentContext, useMessageContext, useTranslationContext } from '../../context';
5
5
  import { renderText as defaultRenderText } from './renderText';
6
+ import { MessageErrorText } from './MessageErrorText';
6
7
  var UnMemoizedMessageTextComponent = function (props) {
7
8
  var _a, _b;
8
9
  var customInnerClass = props.customInnerClass, _c = props.customWrapperClass, customWrapperClass = _c === void 0 ? '' : _c, propMessage = props.message, propsRenderText = props.renderText, _d = props.theme, theme = _d === void 0 ? 'simple' : _d;
9
10
  var _e = useComponentContext('MessageText').QuotedMessage, QuotedMessage = _e === void 0 ? DefaultQuotedMessage : _e;
10
11
  var _f = useMessageContext('MessageText'), contextMessage = _f.message, onMentionsClickMessage = _f.onMentionsClickMessage, onMentionsHoverMessage = _f.onMentionsHoverMessage, contextRenderText = _f.renderText, unsafeHTML = _f.unsafeHTML;
11
12
  var renderText = (_a = propsRenderText !== null && propsRenderText !== void 0 ? propsRenderText : contextRenderText) !== null && _a !== void 0 ? _a : defaultRenderText;
12
- var _g = useTranslationContext('MessageText'), t = _g.t, userLanguage = _g.userLanguage;
13
+ var userLanguage = useTranslationContext('MessageText').userLanguage;
13
14
  var message = propMessage || contextMessage;
14
15
  var hasAttachment = messageHasAttachments(message);
15
16
  var messageTextToRender = ((_b = message.i18n) === null || _b === void 0 ? void 0 : _b["".concat(userLanguage, "_text")]) || message.text;
@@ -27,10 +28,7 @@ var UnMemoizedMessageTextComponent = function (props) {
27
28
  ? " str-chat__message-".concat(theme, "-text-inner--is-emoji")
28
29
  : '', "\n ").trim(), "data-testid": 'message-text-inner-wrapper', onClick: onMentionsClickMessage, onMouseOver: onMentionsHoverMessage },
29
30
  message.quoted_message && React.createElement(QuotedMessage, null),
30
- message.type === 'error' && (React.createElement("div", { className: "str-chat__".concat(theme, "-message--error-message str-chat__message--error-message") }, t('Error · Unsent'))),
31
- message.status === 'failed' && (React.createElement("div", { className: "str-chat__".concat(theme, "-message--error-message str-chat__message--error-message") }, message.errorStatusCode !== 403
32
- ? t('Message Failed · Click to try again')
33
- : t('Message Failed · Unauthorized'))),
31
+ React.createElement(MessageErrorText, { message: message, theme: theme }),
34
32
  unsafeHTML && message.html ? (React.createElement("div", { dangerouslySetInnerHTML: { __html: message.html } })) : (React.createElement("div", null, messageText)))));
35
33
  };
36
34
  export var MessageText = React.memo(UnMemoizedMessageTextComponent);
@@ -67,4 +67,5 @@ export interface TooltipUsernameMapper {
67
67
  export declare const mapToUserNameOrId: TooltipUsernameMapper;
68
68
  export declare const getReadByTooltipText: <StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics>(users: UserResponse<StreamChatGenerics>[], t: TFunction, client: StreamChat<StreamChatGenerics>, tooltipUserNameMapper: TooltipUsernameMapper) => string;
69
69
  export declare const isOnlyEmojis: (text?: string) => boolean;
70
+ export declare const isMessageBounced: <StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics>(message: Pick<StreamMessage<StreamChatGenerics>, "type" | "moderation_details">) => boolean;
70
71
  //# sourceMappingURL=utils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/components/Message/utils.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,KAAK,EAAE,eAAe,EAAE,IAAI,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AACnF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAC9C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAC5C,OAAO,KAAK,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AACxE,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAC;AAEnE;;;GAGG;AACH,eAAO,MAAM,qBAAqB,8CACV,OAAO,2BAiB9B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,WAAW,2LAUvB,CAAC;AAEF,eAAO,MAAM,eAAe;;;;;;;;;;CAU3B,CAAC;AAEF,MAAM,MAAM,mBAAmB,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,IAAI,KAAK,CAChE,QAAQ,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,KAAK,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,GAAG,CAAC,CAC9E,CAAC;AAGF,eAAO,MAAM,qBAAqB,EAAE,cAwDnC,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACzB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF,eAAO,MAAM,iBAAiB,YACnB,mBAAmB,GAAG,OAAO,kGAWnC,YAAY,gCAmDhB,CAAC;AAEF,eAAO,MAAM,6BAA6B,UAKzC,CAAC;AAEF,eAAO,MAAM,qBAAqB,oDAErB,OAAO,GAAG,SAAS,YAsB/B,CAAC;AAmBF,eAAO,MAAM,oBAAoB;;;;;;aAsChC,CAAC;AAEF,eAAO,MAAM,sBAAsB;;;;aA+BlC,CAAC;AAEF,eAAO,MAAM,mBAAmB,wJAI6C,CAAC;AAE9E,eAAO,MAAM,qBAAqB,wJAIyB,CAAC;AAE5D,eAAO,MAAM,SAAS,yMASrB,CAAC;AAEF,eAAO,MAAM,sBAAsB,yMASlC,CAAC;AAEF,MAAM,WAAW,qBAAqB;IACpC,CAAC,kBAAkB,SAAS,yBAAyB,GAAG,yBAAyB,EAC/E,IAAI,EAAE,YAAY,CAAC,kBAAkB,CAAC,GACrC,MAAM,CAAC;CACX;AAED;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,EAAE,qBAAsD,CAAC;AAEvF,eAAO,MAAM,oBAAoB,mIAI5B,SAAS,iEAEW,qBAAqB,WAiD7C,CAAC;AAEF,eAAO,MAAM,YAAY,UAAW,MAAM,YAOzC,CAAC"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/components/Message/utils.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,KAAK,EAAE,eAAe,EAAE,IAAI,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AACnF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAC9C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAC5C,OAAO,KAAK,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AACxE,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAC;AAEnE;;;GAGG;AACH,eAAO,MAAM,qBAAqB,8CACV,OAAO,2BAiB9B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,WAAW,2LAUvB,CAAC;AAEF,eAAO,MAAM,eAAe;;;;;;;;;;CAU3B,CAAC;AAEF,MAAM,MAAM,mBAAmB,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,IAAI,KAAK,CAChE,QAAQ,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,KAAK,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,GAAG,CAAC,CAC9E,CAAC;AAGF,eAAO,MAAM,qBAAqB,EAAE,cAwDnC,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACzB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF,eAAO,MAAM,iBAAiB,YACnB,mBAAmB,GAAG,OAAO,kGAWnC,YAAY,gCAmDhB,CAAC;AAEF,eAAO,MAAM,6BAA6B,UAKzC,CAAC;AAEF,eAAO,MAAM,qBAAqB,oDAErB,OAAO,GAAG,SAAS,YAsB/B,CAAC;AAmBF,eAAO,MAAM,oBAAoB;;;;;;aAsChC,CAAC;AAEF,eAAO,MAAM,sBAAsB;;;;aA+BlC,CAAC;AAEF,eAAO,MAAM,mBAAmB,wJAI6C,CAAC;AAE9E,eAAO,MAAM,qBAAqB,wJAIyB,CAAC;AAE5D,eAAO,MAAM,SAAS,yMASrB,CAAC;AAEF,eAAO,MAAM,sBAAsB,yMASlC,CAAC;AAEF,MAAM,WAAW,qBAAqB;IACpC,CAAC,kBAAkB,SAAS,yBAAyB,GAAG,yBAAyB,EAC/E,IAAI,EAAE,YAAY,CAAC,kBAAkB,CAAC,GACrC,MAAM,CAAC;CACX;AAED;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,EAAE,qBAAsD,CAAC;AAEvF,eAAO,MAAM,oBAAoB,mIAI5B,SAAS,iEAEW,qBAAqB,WAiD7C,CAAC;AAEF,eAAO,MAAM,YAAY,UAAW,MAAM,YAOzC,CAAC;AAEF,eAAO,MAAM,gBAAgB,gLAM4C,CAAC"}
@@ -294,3 +294,8 @@ export var isOnlyEmojis = function (text) {
294
294
  var noSpace = noEmojis.replace(/[\s\n]/gm, '');
295
295
  return !noSpace;
296
296
  };
297
+ export var isMessageBounced = function (message) {
298
+ var _a;
299
+ return message.type === 'error' &&
300
+ ((_a = message.moderation_details) === null || _a === void 0 ? void 0 : _a.action) === 'MESSAGE_RESPONSE_ACTION_BOUNCE';
301
+ };
@@ -1 +1 @@
1
- {"version":3,"file":"MessageActionsBox.d.ts","sourceRoot":"","sources":["../../../src/components/MessageActions/MessageActionsBox.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAK9C,OAAO,EACL,mBAAmB,EAKpB,MAAM,eAAe,CAAC;AAEvB,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAC;AAInE,KAAK,+BAA+B,GAChC,mBAAmB,GACnB,cAAc,GACd,YAAY,GACZ,kBAAkB,GAClB,YAAY,GACZ,YAAY,GACZ,WAAW,CAAC;AAEhB,MAAM,MAAM,sBAAsB,CAChC,kBAAkB,SAAS,yBAAyB,GAAG,yBAAyB,IAC9E,IAAI,CAAC,mBAAmB,CAAC,kBAAkB,CAAC,EAAE,+BAA+B,CAAC,GAAG;IACnF,WAAW,EAAE,MAAM,OAAO,CAAC;IAC3B,IAAI,EAAE,OAAO,CAAC;IACd,IAAI,EAAE,OAAO,CAAC;CACf,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;AAmI1B;;GAEG;AACH,eAAO,MAAM,iBAAiB,+PAES,CAAC"}
1
+ {"version":3,"file":"MessageActionsBox.d.ts","sourceRoot":"","sources":["../../../src/components/MessageActions/MessageActionsBox.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAK9C,OAAO,EACL,mBAAmB,EAKpB,MAAM,eAAe,CAAC;AAEvB,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAC;AAInE,KAAK,+BAA+B,GAChC,mBAAmB,GACnB,cAAc,GACd,YAAY,GACZ,kBAAkB,GAClB,YAAY,GACZ,YAAY,GACZ,WAAW,CAAC;AAEhB,MAAM,MAAM,sBAAsB,CAChC,kBAAkB,SAAS,yBAAyB,GAAG,yBAAyB,IAC9E,IAAI,CAAC,mBAAmB,CAAC,kBAAkB,CAAC,EAAE,+BAA+B,CAAC,GAAG;IACnF,WAAW,EAAE,MAAM,OAAO,CAAC;IAC3B,IAAI,EAAE,OAAO,CAAC;IACd,IAAI,EAAE,OAAO,CAAC;CACf,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;AAoI1B;;GAEG;AACH,eAAO,MAAM,iBAAiB,+PAES,CAAC"}
@@ -5,7 +5,7 @@ import { MESSAGE_ACTIONS } from '../Message/utils';
5
5
  import { useChannelActionContext, useComponentContext, useMessageContext, useTranslationContext, } from '../../context';
6
6
  import { CustomMessageActionsList as DefaultCustomMessageActionsList } from './CustomMessageActionsList';
7
7
  var UnMemoizedMessageActionsBox = React.forwardRef(function (props, ref) {
8
- var getMessageActions = props.getMessageActions, handleDelete = props.handleDelete, handleEdit = props.handleEdit, handleFlag = props.handleFlag, handleMarkUnread = props.handleMarkUnread, handleMute = props.handleMute, handlePin = props.handlePin, isUserMuted = props.isUserMuted, _a = props.open, open = _a === void 0 ? false : _a, restDivProps = __rest(props, ["getMessageActions", "handleDelete", "handleEdit", "handleFlag", "handleMarkUnread", "handleMute", "handlePin", "isUserMuted", "open"]);
8
+ var getMessageActions = props.getMessageActions, handleDelete = props.handleDelete, handleEdit = props.handleEdit, handleFlag = props.handleFlag, handleMarkUnread = props.handleMarkUnread, handleMute = props.handleMute, handlePin = props.handlePin, isUserMuted = props.isUserMuted, mine = props.mine, _a = props.open, open = _a === void 0 ? false : _a, restDivProps = __rest(props, ["getMessageActions", "handleDelete", "handleEdit", "handleFlag", "handleMarkUnread", "handleMute", "handlePin", "isUserMuted", "mine", "open"]);
9
9
  var _b = useComponentContext('MessageActionsBox').CustomMessageActionsList, CustomMessageActionsList = _b === void 0 ? DefaultCustomMessageActionsList : _b;
10
10
  var setQuotedMessage = useChannelActionContext('MessageActionsBox').setQuotedMessage;
11
11
  var _c = useMessageContext('MessageActionsBox'), customMessageActions = _c.customMessageActions, message = _c.message, threadList = _c.threadList;
@@ -0,0 +1,8 @@
1
+ import { ComponentType, PropsWithChildren } from 'react';
2
+ import { ModalProps } from '../Modal';
3
+ import { MessageBouncePromptProps } from './MessageBouncePrompt';
4
+ export type MessageBounceModalProps = PropsWithChildren<ModalProps & {
5
+ MessageBouncePrompt: ComponentType<MessageBouncePromptProps>;
6
+ }>;
7
+ export declare function MessageBounceModal({ MessageBouncePrompt, ...modalProps }: MessageBounceModalProps): JSX.Element;
8
+ //# sourceMappingURL=MessageBounceModal.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MessageBounceModal.d.ts","sourceRoot":"","sources":["../../../src/components/MessageBounce/MessageBounceModal.tsx"],"names":[],"mappings":"AAAA,OAAc,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,OAAO,CAAC;AAChE,OAAO,EAAS,UAAU,EAAE,MAAM,UAAU,CAAC;AAE7C,OAAO,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AAEjE,MAAM,MAAM,uBAAuB,GAAG,iBAAiB,CACrD,UAAU,GAAG;IACX,mBAAmB,EAAE,aAAa,CAAC,wBAAwB,CAAC,CAAC;CAC9D,CACF,CAAC;AAEF,wBAAgB,kBAAkB,CAAC,EACjC,mBAAmB,EACnB,GAAG,UAAU,EACd,EAAE,uBAAuB,eAQzB"}
@@ -0,0 +1,10 @@
1
+ import { __assign, __rest } from "tslib";
2
+ import React from 'react';
3
+ import { Modal } from '../Modal';
4
+ import { MessageBounceProvider } from '../../context';
5
+ export function MessageBounceModal(_a) {
6
+ var MessageBouncePrompt = _a.MessageBouncePrompt, modalProps = __rest(_a, ["MessageBouncePrompt"]);
7
+ return (React.createElement(Modal, __assign({}, modalProps),
8
+ React.createElement(MessageBounceProvider, null,
9
+ React.createElement(MessageBouncePrompt, { onClose: modalProps.onClose }))));
10
+ }
@@ -0,0 +1,6 @@
1
+ import type { PropsWithChildren } from 'react';
2
+ import type { DefaultStreamChatGenerics } from '../../types/types';
3
+ import type { ModalProps } from '../Modal';
4
+ export type MessageBouncePromptProps = PropsWithChildren<Pick<ModalProps, 'onClose'>>;
5
+ export declare function MessageBouncePrompt<StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics>({ children, onClose }: MessageBouncePromptProps): JSX.Element;
6
+ //# sourceMappingURL=MessageBouncePrompt.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MessageBouncePrompt.d.ts","sourceRoot":"","sources":["../../../src/components/MessageBounce/MessageBouncePrompt.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAqB,iBAAiB,EAAE,MAAM,OAAO,CAAC;AAClE,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAC;AACnE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAE3C,MAAM,MAAM,wBAAwB,GAAG,iBAAiB,CAAC,IAAI,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC,CAAC;AAEtF,wBAAgB,mBAAmB,CACjC,kBAAkB,SAAS,yBAAyB,GAAG,yBAAyB,EAChF,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,wBAAwB,eA8ChD"}