stream-chat-react 10.6.0 → 10.7.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.
@@ -162,46 +162,6 @@ var StreamChatReact = (function (exports, React$2, streamChat, ReactDOM) {
162
162
  return a;
163
163
  }
164
164
 
165
- var dist$1 = {};
166
-
167
- window.StreamChat.StreamChat=StreamChat;window.StreamChat.logChatPromiseExecution=logChatPromiseExecution;window.StreamChat.Channel=Channel;window.ICAL=window.ICAL||{};Object.defineProperty(dist$1, "__esModule", { value: true });
168
- var sanitizeUrl_1 = dist$1.sanitizeUrl = void 0;
169
- var invalidProtocolRegex = /^([^\w]*)(javascript|data|vbscript)/im;
170
- var htmlEntitiesRegex = /&#(\w+)(^\w|;)?/g;
171
- var ctrlCharactersRegex = /[\u0000-\u001F\u007F-\u009F\u2000-\u200D\uFEFF]/gim;
172
- var urlSchemeRegex = /^([^:]+):/gm;
173
- var relativeFirstCharacters = [".", "/"];
174
- function isRelativeUrlWithoutProtocol(url) {
175
- return relativeFirstCharacters.indexOf(url[0]) > -1;
176
- }
177
- // adapted from https://stackoverflow.com/a/29824550/2601552
178
- function decodeHtmlCharacters(str) {
179
- return str.replace(htmlEntitiesRegex, function (match, dec) {
180
- return String.fromCharCode(dec);
181
- });
182
- }
183
- function sanitizeUrl(url) {
184
- var sanitizedUrl = decodeHtmlCharacters(url || "")
185
- .replace(ctrlCharactersRegex, "")
186
- .trim();
187
- if (!sanitizedUrl) {
188
- return "about:blank";
189
- }
190
- if (isRelativeUrlWithoutProtocol(sanitizedUrl)) {
191
- return sanitizedUrl;
192
- }
193
- var urlSchemeParseResults = sanitizedUrl.match(urlSchemeRegex);
194
- if (!urlSchemeParseResults) {
195
- return sanitizedUrl;
196
- }
197
- var urlScheme = urlSchemeParseResults[0];
198
- if (invalidProtocolRegex.test(urlScheme)) {
199
- return "about:blank";
200
- }
201
- return sanitizedUrl;
202
- }
203
- sanitizeUrl_1 = dist$1.sanitizeUrl = sanitizeUrl;
204
-
205
165
  var lib$1 = {};
206
166
 
207
167
  var players = {};
@@ -5810,6 +5770,46 @@ var StreamChatReact = (function (exports, React$2, streamChat, ReactDOM) {
5810
5770
  return (React__default["default"].createElement("span", { className: 'str-chat__message-attachment-file--item-size' }, prettyBytes(fileSize)));
5811
5771
  };
5812
5772
 
5773
+ var dist$1 = {};
5774
+
5775
+ window.StreamChat.StreamChat=StreamChat;window.StreamChat.logChatPromiseExecution=logChatPromiseExecution;window.StreamChat.Channel=Channel;window.ICAL=window.ICAL||{};Object.defineProperty(dist$1, "__esModule", { value: true });
5776
+ var sanitizeUrl_1 = dist$1.sanitizeUrl = void 0;
5777
+ var invalidProtocolRegex = /^([^\w]*)(javascript|data|vbscript)/im;
5778
+ var htmlEntitiesRegex = /&#(\w+)(^\w|;)?/g;
5779
+ var ctrlCharactersRegex = /[\u0000-\u001F\u007F-\u009F\u2000-\u200D\uFEFF]/gim;
5780
+ var urlSchemeRegex = /^([^:]+):/gm;
5781
+ var relativeFirstCharacters = [".", "/"];
5782
+ function isRelativeUrlWithoutProtocol(url) {
5783
+ return relativeFirstCharacters.indexOf(url[0]) > -1;
5784
+ }
5785
+ // adapted from https://stackoverflow.com/a/29824550/2601552
5786
+ function decodeHtmlCharacters(str) {
5787
+ return str.replace(htmlEntitiesRegex, function (match, dec) {
5788
+ return String.fromCharCode(dec);
5789
+ });
5790
+ }
5791
+ function sanitizeUrl(url) {
5792
+ var sanitizedUrl = decodeHtmlCharacters(url || "")
5793
+ .replace(ctrlCharactersRegex, "")
5794
+ .trim();
5795
+ if (!sanitizedUrl) {
5796
+ return "about:blank";
5797
+ }
5798
+ if (isRelativeUrlWithoutProtocol(sanitizedUrl)) {
5799
+ return sanitizedUrl;
5800
+ }
5801
+ var urlSchemeParseResults = sanitizedUrl.match(urlSchemeRegex);
5802
+ if (!urlSchemeParseResults) {
5803
+ return sanitizedUrl;
5804
+ }
5805
+ var urlScheme = urlSchemeParseResults[0];
5806
+ if (invalidProtocolRegex.test(urlScheme)) {
5807
+ return "about:blank";
5808
+ }
5809
+ return sanitizedUrl;
5810
+ }
5811
+ sanitizeUrl_1 = dist$1.sanitizeUrl = sanitizeUrl;
5812
+
5813
5813
  window.StreamChat.StreamChat=StreamChat;window.StreamChat.logChatPromiseExecution=logChatPromiseExecution;window.StreamChat.Channel=Channel;window.ICAL=window.ICAL||{};var UnMemoizedSafeAnchor = function (props) {
5814
5814
  var children = props.children, className = props.className, download = props.download, href = props.href, rel = props.rel, target = props.target;
5815
5815
  if (!href)
@@ -10834,7 +10834,7 @@ var StreamChatReact = (function (exports, React$2, streamChat, ReactDOM) {
10834
10834
  React__default["default"].createElement("p", null, t('{{ imageCount }} more', {
10835
10835
  imageCount: images.length - countImagesDisplayedInPreview,
10836
10836
  })))) : (React__default["default"].createElement("button", { className: 'str-chat__gallery-image', "data-testid": 'gallery-image', key: "gallery-image-".concat(i), onClick: function () { return toggleModal(i); } },
10837
- React__default["default"].createElement("img", __assign$8({ alt: 'User uploaded content', src: image.previewUrl || image.image_url || image.thumb_url, style: image.style }, ((innerRefs === null || innerRefs === void 0 ? void 0 : innerRefs.current) && { ref: function (r) { return (innerRefs.current[i] = r); } })))));
10837
+ React__default["default"].createElement("img", __assign$8({ alt: 'User uploaded content', src: sanitizeUrl_1(image.previewUrl || image.image_url || image.thumb_url), style: image.style }, ((innerRefs === null || innerRefs === void 0 ? void 0 : innerRefs.current) && { ref: function (r) { return (innerRefs.current[i] = r); } })))));
10838
10838
  });
10839
10839
  var className = clsx('str-chat__gallery', {
10840
10840
  'str-chat__gallery--square': images.length > lastImageIndexInPreview,
@@ -15290,6 +15290,18 @@ var StreamChatReact = (function (exports, React$2, streamChat, ReactDOM) {
15290
15290
  return tokens.length === 1 && tokens[0].isLink && (!type || tokens[0].t === type);
15291
15291
  }
15292
15292
 
15293
+ window.StreamChat.StreamChat=StreamChat;window.StreamChat.logChatPromiseExecution=logChatPromiseExecution;window.StreamChat.Channel=Channel;window.ICAL=window.ICAL||{};var UnsupportedAttachment = function (_a) {
15294
+ var _b;
15295
+ var attachment = _a.attachment;
15296
+ return (React__default["default"].createElement("div", null,
15297
+ React__default["default"].createElement("div", null,
15298
+ "Unsupported attachment type ",
15299
+ React__default["default"].createElement("strong", null, (_b = attachment.type) !== null && _b !== void 0 ? _b : 'unknown')),
15300
+ React__default["default"].createElement("code", null, JSON.stringify(attachment, null, 4)),
15301
+ ";"));
15302
+ };
15303
+ var NullComponent = function () { return null; };
15304
+
15293
15305
  window.StreamChat.StreamChat=StreamChat;window.StreamChat.logChatPromiseExecution=logChatPromiseExecution;window.StreamChat.Channel=Channel;window.ICAL=window.ICAL||{};var AttachmentWithinContainer = function (_a) {
15294
15306
  var _b;
15295
15307
  var _c;
@@ -15427,12 +15439,18 @@ var StreamChatReact = (function (exports, React$2, streamChat, ReactDOM) {
15427
15439
  content,
15428
15440
  React__default["default"].createElement(AttachmentActionsContainer, __assign$8({}, props))))) : (React__default["default"].createElement(AttachmentWithinContainer, { attachment: attachment, componentType: componentType }, content));
15429
15441
  };
15442
+ var UnsupportedAttachmentContainer = function (_a) {
15443
+ var attachment = _a.attachment, _b = _a.UnsupportedAttachment, UnsupportedAttachment = _b === void 0 ? NullComponent : _b;
15444
+ return (React__default["default"].createElement(React__default["default"].Fragment, null,
15445
+ React__default["default"].createElement(UnsupportedAttachment, { attachment: attachment })));
15446
+ };
15430
15447
 
15431
15448
  window.StreamChat.StreamChat=StreamChat;window.StreamChat.logChatPromiseExecution=logChatPromiseExecution;window.StreamChat.Channel=Channel;window.ICAL=window.ICAL||{};var CONTAINER_MAP = {
15432
15449
  audio: AudioContainer,
15433
15450
  card: CardContainer,
15434
15451
  file: FileContainer,
15435
15452
  media: MediaContainer,
15453
+ unsupported: UnsupportedAttachmentContainer,
15436
15454
  };
15437
15455
  var ATTACHMENT_GROUPS_ORDER = [
15438
15456
  'card',
@@ -15441,6 +15459,7 @@ var StreamChatReact = (function (exports, React$2, streamChat, ReactDOM) {
15441
15459
  'media',
15442
15460
  'audio',
15443
15461
  'file',
15462
+ 'unsupported',
15444
15463
  ];
15445
15464
  /**
15446
15465
  * A component used for rendering message attachments. By default, the component supports: AttachmentActions, Audio, Card, File, Gallery, Image, and Video
@@ -15452,26 +15471,27 @@ var StreamChatReact = (function (exports, React$2, streamChat, ReactDOM) {
15452
15471
  };
15453
15472
  var renderGroupedAttachments = function (_a) {
15454
15473
  var attachments = _a.attachments, rest = __rest$4(_a, ["attachments"]);
15455
- var uploadedImages = [];
15456
- var containers = attachments.reduce(function (acc, attachment) {
15457
- if (isUploadedImage(attachment)) {
15458
- uploadedImages.push(__assign$8(__assign$8({}, attachment), { image_url: sanitizeUrl_1(attachment.image_url), thumb_url: sanitizeUrl_1(attachment.thumb_url) }));
15459
- }
15460
- else {
15461
- var attachmentType = getAttachmentType(attachment);
15462
- if (attachmentType) {
15463
- var Container = CONTAINER_MAP[attachmentType];
15464
- acc[attachmentType].push(React__default["default"].createElement(Container, __assign$8({ key: "".concat(attachmentType, "-").concat(acc[attachmentType].length) }, rest, { attachment: attachment })));
15465
- }
15466
- }
15467
- return acc;
15474
+ var uploadedImages = attachments.filter(function (attachment) {
15475
+ return isUploadedImage(attachment);
15476
+ });
15477
+ var containers = attachments
15478
+ .filter(function (attachment) { return !isUploadedImage(attachment); })
15479
+ .reduce(function (typeMap, attachment) {
15480
+ var attachmentType = getAttachmentType(attachment);
15481
+ var Container = CONTAINER_MAP[attachmentType];
15482
+ typeMap[attachmentType].push(React__default["default"].createElement(Container, __assign$8({ key: "".concat(attachmentType, "-").concat(typeMap[attachmentType].length) }, rest, { attachment: attachment })));
15483
+ return typeMap;
15468
15484
  }, {
15469
15485
  audio: [],
15470
15486
  card: [],
15471
15487
  file: [],
15472
- gallery: [],
15473
- image: [],
15474
15488
  media: [],
15489
+ unsupported: [],
15490
+ // not used in reduce
15491
+ // eslint-disable-next-line sort-keys
15492
+ image: [],
15493
+ // eslint-disable-next-line sort-keys
15494
+ gallery: [],
15475
15495
  });
15476
15496
  if (uploadedImages.length > 1) {
15477
15497
  containers['gallery'] = [
@@ -15501,7 +15521,7 @@ var StreamChatReact = (function (exports, React$2, streamChat, ReactDOM) {
15501
15521
  else if (isFileAttachment(attachment)) {
15502
15522
  return 'file';
15503
15523
  }
15504
- return null;
15524
+ return 'unsupported';
15505
15525
  };
15506
15526
 
15507
15527
  window.StreamChat.StreamChat=StreamChat;window.StreamChat.logChatPromiseExecution=logChatPromiseExecution;window.StreamChat.Channel=Channel;window.ICAL=window.ICAL||{};
@@ -48456,7 +48476,7 @@ var StreamChatReact = (function (exports, React$2, streamChat, ReactDOM) {
48456
48476
 
48457
48477
  window.StreamChat.StreamChat=StreamChat;window.StreamChat.logChatPromiseExecution=logChatPromiseExecution;window.StreamChat.Channel=Channel;window.ICAL=window.ICAL||{};
48458
48478
 
48459
- window.StreamChat.StreamChat=StreamChat;window.StreamChat.logChatPromiseExecution=logChatPromiseExecution;window.StreamChat.Channel=Channel;window.ICAL=window.ICAL||{};var version$1 = '10.6.0';
48479
+ window.StreamChat.StreamChat=StreamChat;window.StreamChat.logChatPromiseExecution=logChatPromiseExecution;window.StreamChat.Channel=Channel;window.ICAL=window.ICAL||{};var version$1 = '10.7.0';
48460
48480
 
48461
48481
  window.StreamChat.StreamChat=StreamChat;window.StreamChat.logChatPromiseExecution=logChatPromiseExecution;window.StreamChat.Channel=Channel;window.ICAL=window.ICAL||{};var useChat = function (_a) {
48462
48482
  var _b, _c;
@@ -49572,7 +49592,6 @@ var StreamChatReact = (function (exports, React$2, streamChat, ReactDOM) {
49572
49592
  var lastReceivedId = React$2.useMemo(function () { return getLastReceived(enrichedMessages); }, [enrichedMessages]);
49573
49593
  var elements = React$2.useMemo(function () {
49574
49594
  return enrichedMessages.map(function (message) {
49575
- var _a;
49576
49595
  if (message.customType === CUSTOM_MESSAGE_TYPE.date &&
49577
49596
  message.date &&
49578
49597
  isDate(message.date)) {
@@ -49584,9 +49603,7 @@ var StreamChatReact = (function (exports, React$2, streamChat, ReactDOM) {
49584
49603
  React__default["default"].createElement(HeaderComponent, null)));
49585
49604
  }
49586
49605
  if (message.type === 'system') {
49587
- return (React__default["default"].createElement("li", { key: ((_a = message.event) === null || _a === void 0 ? void 0 : _a.created_at) ||
49588
- message.created_at ||
49589
- '' },
49606
+ return (React__default["default"].createElement("li", { key: message.id || message.created_at },
49590
49607
  React__default["default"].createElement(MessageSystem, { message: message })));
49591
49608
  }
49592
49609
  var groupStyles = messageGroupStyles[message.id] || '';
@@ -78529,6 +78546,7 @@ var StreamChatReact = (function (exports, React$2, streamChat, ReactDOM) {
78529
78546
  exports.MessageTimestamp = MessageTimestamp;
78530
78547
  exports.Modal = Modal;
78531
78548
  exports.ModalGallery = ModalGallery;
78549
+ exports.NullComponent = NullComponent;
78532
78550
  exports.PinIcon = PinIcon;
78533
78551
  exports.PinIndicator = PinIndicator;
78534
78552
  exports.PlayButton = PlayButton;
@@ -78564,6 +78582,8 @@ var StreamChatReact = (function (exports, React$2, streamChat, ReactDOM) {
78564
78582
  exports.TypingIndicator = TypingIndicator;
78565
78583
  exports.TypingProvider = TypingProvider;
78566
78584
  exports.UnMemoizedLoadMorePaginator = UnMemoizedLoadMorePaginator;
78585
+ exports.UnsupportedAttachment = UnsupportedAttachment;
78586
+ exports.UnsupportedAttachmentContainer = UnsupportedAttachmentContainer;
78567
78587
  exports.UploadIcon = UploadIcon;
78568
78588
  exports.UploadsPreview = UploadsPreview;
78569
78589
  exports.UserItem = UserItem;