stream-chat-react 10.13.1 → 11.0.0-rc.1

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 (53) hide show
  1. package/dist/browser.full-bundle.js +614 -533
  2. package/dist/browser.full-bundle.js.map +1 -1
  3. package/dist/browser.full-bundle.min.js +5 -5
  4. package/dist/browser.full-bundle.min.js.map +1 -1
  5. package/dist/components/Channel/Channel.d.ts +3 -2
  6. package/dist/components/Channel/Channel.d.ts.map +1 -1
  7. package/dist/components/Channel/Channel.js +46 -42
  8. package/dist/components/ChannelList/ChannelList.d.ts +7 -0
  9. package/dist/components/ChannelList/ChannelList.d.ts.map +1 -1
  10. package/dist/components/ChannelList/ChannelList.js +2 -2
  11. package/dist/components/ChannelList/hooks/usePaginatedChannels.d.ts +1 -1
  12. package/dist/components/ChannelList/hooks/usePaginatedChannels.d.ts.map +1 -1
  13. package/dist/components/ChannelList/hooks/usePaginatedChannels.js +32 -3
  14. package/dist/components/Reactions/ReactionSelector.d.ts +3 -8
  15. package/dist/components/Reactions/ReactionSelector.d.ts.map +1 -1
  16. package/dist/components/Reactions/ReactionSelector.js +18 -25
  17. package/dist/components/Reactions/ReactionsList.d.ts +3 -8
  18. package/dist/components/Reactions/ReactionsList.d.ts.map +1 -1
  19. package/dist/components/Reactions/ReactionsList.js +9 -12
  20. package/dist/components/Reactions/SimpleReactionsList.d.ts +2 -5
  21. package/dist/components/Reactions/SimpleReactionsList.d.ts.map +1 -1
  22. package/dist/components/Reactions/SimpleReactionsList.js +12 -15
  23. package/dist/components/Reactions/SpriteImage.d.ts +12 -0
  24. package/dist/components/Reactions/SpriteImage.d.ts.map +1 -0
  25. package/dist/components/Reactions/SpriteImage.js +28 -0
  26. package/dist/components/Reactions/StreamEmoji.d.ts +18 -0
  27. package/dist/components/Reactions/StreamEmoji.d.ts.map +1 -0
  28. package/dist/components/Reactions/StreamEmoji.js +16 -0
  29. package/dist/components/Reactions/hooks/useProcessReactions.d.ts +8 -10
  30. package/dist/components/Reactions/hooks/useProcessReactions.d.ts.map +1 -1
  31. package/dist/components/Reactions/hooks/useProcessReactions.js +14 -18
  32. package/dist/components/Reactions/index.d.ts +3 -0
  33. package/dist/components/Reactions/index.d.ts.map +1 -1
  34. package/dist/components/Reactions/index.js +3 -0
  35. package/dist/components/Reactions/reactionOptions.d.ts +8 -0
  36. package/dist/components/Reactions/reactionOptions.d.ts.map +1 -0
  37. package/dist/components/Reactions/reactionOptions.js +11 -0
  38. package/dist/components/Reactions/utils/utils.d.ts +1 -0
  39. package/dist/components/Reactions/utils/utils.d.ts.map +1 -1
  40. package/dist/components/Reactions/utils/utils.js +12 -0
  41. package/dist/context/ComponentContext.d.ts +2 -0
  42. package/dist/context/ComponentContext.d.ts.map +1 -1
  43. package/dist/context/EmojiContext.d.ts +1 -2
  44. package/dist/context/EmojiContext.d.ts.map +1 -1
  45. package/dist/context/EmojiContext.js +1 -3
  46. package/dist/index.cjs.js +193 -119
  47. package/dist/index.cjs.js.map +1 -1
  48. package/dist/types/types.d.ts +3 -0
  49. package/dist/types/types.d.ts.map +1 -1
  50. package/dist/version.d.ts +1 -1
  51. package/dist/version.d.ts.map +1 -1
  52. package/dist/version.js +1 -1
  53. package/package.json +1 -1
@@ -6940,14 +6940,12 @@ var StreamChatReact = (function (exports, React$2, streamChat, ReactDOM) {
6940
6940
 
6941
6941
  var DefaultEmojiIndex = /*@__PURE__*/getDefaultExportFromCjs(nimbleEmojiIndex);
6942
6942
 
6943
- window.StreamChat.StreamChat=StreamChat;window.StreamChat.logChatPromiseExecution=logChatPromiseExecution;window.StreamChat.Channel=Channel;window.ICAL=window.ICAL||{};var DefaultEmoji$1 = React__default["default"].lazy(function () { return Promise.resolve().then(function () { return DefaultEmoji; }); });
6944
- var DefaultEmojiPicker$1 = React__default["default"].lazy(function () { return Promise.resolve().then(function () { return DefaultEmojiPicker; }); });
6943
+ window.StreamChat.StreamChat=StreamChat;window.StreamChat.logChatPromiseExecution=logChatPromiseExecution;window.StreamChat.Channel=Channel;window.ICAL=window.ICAL||{};var DefaultEmojiPicker$1 = React__default["default"].lazy(function () { return Promise.resolve().then(function () { return DefaultEmojiPicker; }); });
6945
6944
  var EmojiContext = React__default["default"].createContext(undefined);
6946
6945
  var EmojiProvider = function (_a) {
6947
6946
  var children = _a.children, value = _a.value;
6948
- var _b = value.Emoji, Emoji = _b === void 0 ? DefaultEmoji$1 : _b, emojiConfig = value.emojiConfig, _c = value.EmojiIndex, EmojiIndex = _c === void 0 ? DefaultEmojiIndex : _c, _d = value.EmojiPicker, EmojiPicker = _d === void 0 ? DefaultEmojiPicker$1 : _d;
6947
+ var emojiConfig = value.emojiConfig, _b = value.EmojiIndex, EmojiIndex = _b === void 0 ? DefaultEmojiIndex : _b, _c = value.EmojiPicker, EmojiPicker = _c === void 0 ? DefaultEmojiPicker$1 : _c;
6949
6948
  var emojiContextValue = {
6950
- Emoji: Emoji,
6951
6949
  emojiConfig: emojiConfig,
6952
6950
  EmojiIndex: EmojiIndex,
6953
6951
  EmojiPicker: EmojiPicker,
@@ -39604,8 +39602,6 @@ var StreamChatReact = (function (exports, React$2, streamChat, ReactDOM) {
39604
39602
  __assign(__assign({ colons: ':pensive:', id: 'sad', name: 'sad', sheet_x: 0, sheet_y: 1 }, commonEmoji), emojiSetDef),
39605
39603
  __assign(__assign({ colons: ':angry:', id: 'angry', name: 'angry', sheet_x: 1, sheet_y: 1 }, commonEmoji), emojiSetDef),
39606
39604
  ];
39607
- // use this only for small lists like in ReactionSelector
39608
- var getStrippedEmojiData = function (data) { return (__assign(__assign({}, data), { emojis: {} })); };
39609
39605
 
39610
39606
  window.StreamChat.StreamChat=StreamChat;window.StreamChat.logChatPromiseExecution=logChatPromiseExecution;window.StreamChat.Channel=Channel;window.ICAL=window.ICAL||{};var useCreateChannelStateContext = function (value) {
39611
39607
  var _a;
@@ -44852,24 +44848,32 @@ var StreamChatReact = (function (exports, React$2, streamChat, ReactDOM) {
44852
44848
  }
44853
44849
  return false;
44854
44850
  };
44851
+ var getImageDimensions = function (source) {
44852
+ return new Promise(function (resolve, reject) {
44853
+ var image = new Image();
44854
+ image.addEventListener('load', function () {
44855
+ resolve([image.width, image.height]);
44856
+ }, { once: true });
44857
+ image.addEventListener('error', function () { return reject("Couldn't load image from ".concat(source)); }, {
44858
+ once: true,
44859
+ });
44860
+ image.src = source;
44861
+ });
44862
+ };
44855
44863
 
44856
44864
  window.StreamChat.StreamChat=StreamChat;window.StreamChat.logChatPromiseExecution=logChatPromiseExecution;window.StreamChat.Channel=Channel;window.ICAL=window.ICAL||{};var UnMemoizedReactionSelector = React__default["default"].forwardRef(function (props, ref) {
44857
44865
  var _a;
44858
- var _b = props.additionalEmojiProps, additionalEmojiProps = _b === void 0 ? {} : _b, propAvatar = props.Avatar, _c = props.detailedView, detailedView = _c === void 0 ? true : _c, propHandleReaction = props.handleReaction, propLatestReactions = props.latest_reactions, propOwnReactions = props.own_reactions, propReactionCounts = props.reaction_counts, propReactionOptions = props.reactionOptions, _d = props.reverse, reverse = _d === void 0 ? false : _d;
44859
- var contextAvatar = useComponentContext('ReactionSelector').Avatar;
44860
- var _e = useEmojiContext('ReactionSelector'), Emoji = _e.Emoji, emojiConfig = _e.emojiConfig;
44861
- var _f = useMessageContext('ReactionSelector'), contextHandleReaction = _f.handleReaction, message = _f.message;
44862
- var _g = emojiConfig || {}, defaultMinimalEmojis = _g.defaultMinimalEmojis, fullEmojiData = _g.emojiData, emojiSetDef = _g.emojiSetDef;
44866
+ var propAvatar = props.Avatar, _b = props.detailedView, detailedView = _b === void 0 ? true : _b, propHandleReaction = props.handleReaction, propLatestReactions = props.latest_reactions, propOwnReactions = props.own_reactions, propReactionCounts = props.reaction_counts, propReactionOptions = props.reactionOptions, _c = props.reverse, reverse = _c === void 0 ? false : _c;
44867
+ var _d = useComponentContext('ReactionSelector'), contextAvatar = _d.Avatar, contextReactionOptions = _d.reactionOptions;
44868
+ var _e = useMessageContext('ReactionSelector'), contextHandleReaction = _e.handleReaction, message = _e.message;
44869
+ var reactionOptions = propReactionOptions !== null && propReactionOptions !== void 0 ? propReactionOptions : contextReactionOptions;
44863
44870
  var Avatar$1 = propAvatar || contextAvatar || Avatar;
44864
44871
  var handleReaction = propHandleReaction || contextHandleReaction;
44865
44872
  var latestReactions = propLatestReactions || (message === null || message === void 0 ? void 0 : message.latest_reactions) || [];
44866
44873
  var ownReactions = propOwnReactions || (message === null || message === void 0 ? void 0 : message.own_reactions) || [];
44867
44874
  var reactionCounts = propReactionCounts || (message === null || message === void 0 ? void 0 : message.reaction_counts) || {};
44868
- var reactionOptions = propReactionOptions || defaultMinimalEmojis;
44869
- var reactionsAreCustom = !!(propReactionOptions === null || propReactionOptions === void 0 ? void 0 : propReactionOptions.length);
44870
- var emojiData = React$2.useMemo(function () { return (reactionsAreCustom ? fullEmojiData : getStrippedEmojiData(fullEmojiData)); }, [fullEmojiData, reactionsAreCustom]);
44871
- var _h = React$2.useState(null), tooltipReactionType = _h[0], setTooltipReactionType = _h[1];
44872
- var _j = React$2.useState(null), tooltipPositions = _j[0], setTooltipPositions = _j[1];
44875
+ var _f = React$2.useState(null), tooltipReactionType = _f[0], setTooltipReactionType = _f[1];
44876
+ var _g = React$2.useState(null), tooltipPositions = _g[0], setTooltipPositions = _g[1];
44873
44877
  var targetRef = React$2.useRef(null);
44874
44878
  var tooltipRef = React$2.useRef(null);
44875
44879
  var showTooltip = React$2.useCallback(function (event, reactionType) {
@@ -44926,17 +44930,17 @@ var StreamChatReact = (function (exports, React$2, streamChat, ReactDOM) {
44926
44930
  } },
44927
44931
  React__default["default"].createElement("div", { className: 'arrow', style: { left: tooltipPositions === null || tooltipPositions === void 0 ? void 0 : tooltipPositions.arrow } }), (_a = getUsersPerReactionType(tooltipReactionType)) === null || _a === void 0 ? void 0 :
44928
44932
  _a.map(function (user, i, users) { return (React__default["default"].createElement("span", { className: 'latest-user-username', key: "key-".concat(i, "-").concat(user) }, "".concat(user).concat(i < users.length - 1 ? ', ' : ''))); }))),
44929
- React__default["default"].createElement("ul", { className: 'str-chat__message-reactions-list str-chat__message-reactions-options' }, reactionOptions.map(function (reactionOption) {
44930
- var latestUser = getLatestUserForReactionType(reactionOption.id);
44931
- var count = reactionCounts && reactionCounts[reactionOption.id];
44932
- return (React__default["default"].createElement("li", { key: "item-".concat(reactionOption.id) },
44933
- React__default["default"].createElement("button", { "aria-label": "Select Reaction: ".concat(reactionOption.name), className: clsx('str-chat__message-reactions-list-item str-chat__message-reactions-option', {
44934
- 'str-chat__message-reactions-option-selected': iHaveReactedWithReaction(reactionOption.id),
44935
- }), "data-text": reactionOption.id, onClick: function (event) { return handleReaction(reactionOption.id, event); } },
44936
- !!count && detailedView && (React__default["default"].createElement("div", { className: 'latest-user str-chat__message-reactions-last-user', onClick: hideTooltip, onMouseEnter: function (e) { return showTooltip(e, reactionOption.id); }, onMouseLeave: hideTooltip }, latestUser ? (React__default["default"].createElement(Avatar$1, { image: latestUser.image, name: latestUser.name, size: 20, user: latestUser })) : (React__default["default"].createElement("div", { className: 'latest-user-not-found' })))),
44937
- React__default["default"].createElement(React$2.Suspense, { fallback: null },
44938
- React__default["default"].createElement("span", { className: 'str-chat__message-reaction-emoji' },
44939
- React__default["default"].createElement(Emoji, __assign({ data: emojiData, emoji: reactionOption, size: 20 }, (reactionsAreCustom ? additionalEmojiProps : emojiSetDef))))),
44933
+ React__default["default"].createElement("ul", { className: 'str-chat__message-reactions-list str-chat__message-reactions-options' }, reactionOptions.map(function (_a) {
44934
+ var Component = _a.Component, reactionName = _a.name, reactionType = _a.type;
44935
+ var latestUser = getLatestUserForReactionType(reactionType);
44936
+ var count = reactionCounts && reactionCounts[reactionType];
44937
+ return (React__default["default"].createElement("li", { key: reactionType },
44938
+ React__default["default"].createElement("button", { "aria-label": "Select Reaction: ".concat(reactionName || reactionType), className: clsx('str-chat__message-reactions-list-item str-chat__message-reactions-option', {
44939
+ 'str-chat__message-reactions-option-selected': iHaveReactedWithReaction(reactionType),
44940
+ }), "data-text": reactionType, onClick: function (event) { return handleReaction(reactionType, event); } },
44941
+ !!count && detailedView && (React__default["default"].createElement("div", { className: 'latest-user str-chat__message-reactions-last-user', onClick: hideTooltip, onMouseEnter: function (e) { return showTooltip(e, reactionType); }, onMouseLeave: hideTooltip }, latestUser ? (React__default["default"].createElement(Avatar$1, { image: latestUser.image, name: latestUser.name, size: 20, user: latestUser })) : (React__default["default"].createElement("div", { className: 'latest-user-not-found' })))),
44942
+ React__default["default"].createElement("span", { className: 'str-chat__message-reaction-emoji' },
44943
+ React__default["default"].createElement(Component, null)),
44940
44944
  Boolean(count) && detailedView && (React__default["default"].createElement("span", { className: 'str-chat__message-reactions-list-item__count' }, count || '')))));
44941
44945
  }))));
44942
44946
  });
@@ -44946,19 +44950,18 @@ var StreamChatReact = (function (exports, React$2, streamChat, ReactDOM) {
44946
44950
  var ReactionSelector = React__default["default"].memo(UnMemoizedReactionSelector);
44947
44951
 
44948
44952
  window.StreamChat.StreamChat=StreamChat;window.StreamChat.logChatPromiseExecution=logChatPromiseExecution;window.StreamChat.Channel=Channel;window.ICAL=window.ICAL||{};var useProcessReactions = function (params) {
44949
- var _a = params.additionalEmojiProps, additionalEmojiProps = _a === void 0 ? {} : _a, emojiConfig = params.emojiConfig, propOwnReactions = params.own_reactions, propReactionCounts = params.reaction_counts, propReactionOptions = params.reactionOptions, propReactions = params.reactions;
44950
- var message = useMessageContext('ReactionsList').message;
44951
- var _b = emojiConfig || {}, defaultMinimalEmojis = _b.defaultMinimalEmojis, fullEmojiData = _b.emojiData, emojiSetDef = _b.emojiSetDef;
44953
+ var propOwnReactions = params.own_reactions, propReactionCounts = params.reaction_counts, propReactionOptions = params.reactionOptions, propReactions = params.reactions;
44954
+ var message = useMessageContext('useProcessReactions').message;
44955
+ var contextReactionOptions = useComponentContext('useProcessReactions').reactionOptions;
44956
+ var reactionOptions = propReactionOptions !== null && propReactionOptions !== void 0 ? propReactionOptions : contextReactionOptions;
44952
44957
  var latestReactions = propReactions || message.latest_reactions || [];
44953
44958
  var ownReactions = propOwnReactions || (message === null || message === void 0 ? void 0 : message.own_reactions) || [];
44954
44959
  var reactionCounts = propReactionCounts || message.reaction_counts || {};
44955
- var reactionOptions = propReactionOptions || defaultMinimalEmojis;
44956
- var reactionsAreCustom = !!(propReactionOptions === null || propReactionOptions === void 0 ? void 0 : propReactionOptions.length);
44957
44960
  var iHaveReactedWithReaction = React$2.useCallback(function (reactionType) { return ownReactions.find(function (reaction) { return reaction.type === reactionType; }); }, [ownReactions]);
44958
- var getEmojiByReactionType = React$2.useCallback(function (type) {
44959
- return reactionOptions.find(function (option) { return option.id === type; });
44960
- }, [reactionOptions]);
44961
- var emojiData = React$2.useMemo(function () { return (reactionsAreCustom ? fullEmojiData : getStrippedEmojiData(fullEmojiData)); }, [fullEmojiData, reactionsAreCustom]);
44961
+ var getEmojiByReactionType = React$2.useCallback(function (reactionType) { return reactionOptions.find(function (_a) {
44962
+ var type = _a.type;
44963
+ return type === reactionType;
44964
+ }); }, [reactionOptions]);
44962
44965
  var latestReactionTypes = React$2.useMemo(function () {
44963
44966
  return latestReactions.reduce(function (reactionTypes, _a) {
44964
44967
  var type = _a.type;
@@ -44969,13 +44972,13 @@ var StreamChatReact = (function (exports, React$2, streamChat, ReactDOM) {
44969
44972
  }, []);
44970
44973
  }, [latestReactions]);
44971
44974
  var supportedReactionMap = React$2.useMemo(function () {
44972
- return reactionOptions.reduce(function (acc, _a) {
44973
- var id = _a.id;
44974
- acc[id] = true;
44975
- return acc;
44975
+ return reactionOptions.reduce(function (map, _a) {
44976
+ var reactionType = _a.type;
44977
+ map[reactionType] = true;
44978
+ return map;
44976
44979
  }, {});
44977
44980
  }, [reactionOptions]);
44978
- var supportedReactionsArePresent = React$2.useMemo(function () { return latestReactionTypes.some(function (type) { return supportedReactionMap[type]; }); }, [latestReactionTypes, supportedReactionMap]);
44981
+ var supportedReactionsArePresent = React$2.useMemo(function () { return latestReactionTypes.some(function (reactionType) { return supportedReactionMap[reactionType]; }); }, [latestReactionTypes, supportedReactionMap]);
44979
44982
  var totalReactionCount = React$2.useMemo(function () {
44980
44983
  return supportedReactionsArePresent
44981
44984
  ? Object.values(reactionCounts).reduce(function (total, count) { return total + count; }, 0)
@@ -44992,9 +44995,7 @@ var StreamChatReact = (function (exports, React$2, streamChat, ReactDOM) {
44992
44995
  }, {});
44993
44996
  }, [latestReactions]);
44994
44997
  return {
44995
- additionalEmojiProps: reactionsAreCustom ? additionalEmojiProps : emojiSetDef,
44996
44998
  aggregatedUserNamesByType: aggregatedUserNamesByType,
44997
- emojiData: emojiData,
44998
44999
  getEmojiByReactionType: getEmojiByReactionType,
44999
45000
  iHaveReactedWithReaction: iHaveReactedWithReaction,
45000
45001
  latestReactions: latestReactions,
@@ -45019,9 +45020,8 @@ var StreamChatReact = (function (exports, React$2, streamChat, ReactDOM) {
45019
45020
  };
45020
45021
  var UnMemoizedReactionsList = function (props) {
45021
45022
  var onClick = props.onClick, _a = props.reverse, reverse = _a === void 0 ? false : _a, rest = __rest(props, ["onClick", "reverse"]);
45022
- var _b = useEmojiContext('ReactionsList'), Emoji = _b.Emoji, emojiConfig = _b.emojiConfig;
45023
45023
  var onReactionListClick = useMessageContext('ReactionsList').onReactionListClick;
45024
- var _c = useProcessReactions(__assign({ emojiConfig: emojiConfig }, rest)), additionalEmojiProps = _c.additionalEmojiProps, aggregatedUserNamesByType = _c.aggregatedUserNamesByType, emojiData = _c.emojiData, getEmojiByReactionType = _c.getEmojiByReactionType, iHaveReactedWithReaction = _c.iHaveReactedWithReaction, latestReactions = _c.latestReactions, latestReactionTypes = _c.latestReactionTypes, reactionCounts = _c.reactionCounts, supportedReactionsArePresent = _c.supportedReactionsArePresent, totalReactionCount = _c.totalReactionCount;
45024
+ var _b = useProcessReactions(rest), aggregatedUserNamesByType = _b.aggregatedUserNamesByType, getEmojiByReactionType = _b.getEmojiByReactionType, iHaveReactedWithReaction = _b.iHaveReactedWithReaction, latestReactions = _b.latestReactions, latestReactionTypes = _b.latestReactionTypes, reactionCounts = _b.reactionCounts, supportedReactionsArePresent = _b.supportedReactionsArePresent, totalReactionCount = _b.totalReactionCount;
45025
45025
  if (!latestReactions.length)
45026
45026
  return null;
45027
45027
  if (!supportedReactionsArePresent)
@@ -45031,17 +45031,16 @@ var StreamChatReact = (function (exports, React$2, streamChat, ReactDOM) {
45031
45031
  }), "data-testid": 'reaction-list', onClick: onClick || onReactionListClick, onKeyUp: onClick || onReactionListClick, role: 'figure' },
45032
45032
  React__default["default"].createElement("ul", { className: 'str-chat__message-reactions' },
45033
45033
  latestReactionTypes.map(function (reactionType) {
45034
- var emojiObject = getEmojiByReactionType(reactionType);
45034
+ var ReactionOption = getEmojiByReactionType(reactionType);
45035
45035
  var isOwnReaction = iHaveReactedWithReaction(reactionType);
45036
- return emojiObject ? (React__default["default"].createElement("li", { className: clsx('str-chat__message-reaction', {
45036
+ return (ReactionOption && (React__default["default"].createElement("li", { className: clsx('str-chat__message-reaction', {
45037
45037
  'str-chat__message-reaction-own': isOwnReaction,
45038
- }), key: emojiObject.id },
45039
- React__default["default"].createElement(ButtonWithTooltip, { "aria-label": "Reactions: ".concat(reactionType), title: aggregatedUserNamesByType[reactionType].join(', '), type: 'button' },
45040
- React__default["default"].createElement(React$2.Suspense, { fallback: null },
45041
- React__default["default"].createElement("span", { className: 'str-chat__message-reaction-emoji' },
45042
- React__default["default"].createElement(Emoji, __assign({ data: emojiData, emoji: emojiObject, size: 16 }, additionalEmojiProps)))),
45038
+ }), key: reactionType },
45039
+ React__default["default"].createElement(ButtonWithTooltip, { "aria-label": "Reactions: ".concat(reactionType), "data-testid": "reactions-list-button-".concat(reactionType), title: aggregatedUserNamesByType[reactionType].join(', '), type: 'button' },
45040
+ React__default["default"].createElement("span", { className: 'str-chat__message-reaction-emoji' },
45041
+ React__default["default"].createElement(ReactionOption.Component, null)),
45043
45042
  "\u00A0",
45044
- React__default["default"].createElement("span", { className: 'str-chat__message-reaction-count', "data-testclass": 'reaction-list-reaction-count' }, reactionCounts[reactionType])))) : null;
45043
+ React__default["default"].createElement("span", { className: 'str-chat__message-reaction-count', "data-testclass": 'reaction-list-reaction-count' }, reactionCounts[reactionType])))));
45045
45044
  }),
45046
45045
  React__default["default"].createElement("li", null,
45047
45046
  React__default["default"].createElement("span", { className: 'str-chat__reaction-list--counter' }, totalReactionCount)))));
@@ -45067,10 +45066,9 @@ var StreamChatReact = (function (exports, React$2, streamChat, ReactDOM) {
45067
45066
  };
45068
45067
  var UnMemoizedSimpleReactionsList = function (props) {
45069
45068
  var propHandleReaction = props.handleReaction, rest = __rest(props, ["handleReaction"]);
45070
- var _a = useEmojiContext('SimpleReactionsList'), Emoji = _a.Emoji, emojiConfig = _a.emojiConfig;
45071
45069
  var contextHandleReaction = useMessageContext('SimpleReactionsList').handleReaction;
45072
- var _b = useProcessReactions(__assign({ emojiConfig: emojiConfig }, rest)), additionalEmojiProps = _b.additionalEmojiProps, emojiData = _b.emojiData, getEmojiByReactionType = _b.getEmojiByReactionType, iHaveReactedWithReaction = _b.iHaveReactedWithReaction, latestReactions = _b.latestReactions, latestReactionTypes = _b.latestReactionTypes, supportedReactionsArePresent = _b.supportedReactionsArePresent, totalReactionCount = _b.totalReactionCount;
45073
- var _c = React$2.useState(undefined), tooltipReactionType = _c[0], setTooltipReactionType = _c[1];
45070
+ var _a = useProcessReactions(rest), getEmojiByReactionType = _a.getEmojiByReactionType, iHaveReactedWithReaction = _a.iHaveReactedWithReaction, latestReactions = _a.latestReactions, latestReactionTypes = _a.latestReactionTypes, supportedReactionsArePresent = _a.supportedReactionsArePresent, totalReactionCount = _a.totalReactionCount;
45071
+ var _b = React$2.useState(undefined), tooltipReactionType = _b[0], setTooltipReactionType = _b[1];
45074
45072
  var themeVersion = useChatContext('SimpleReactionsList').themeVersion;
45075
45073
  var handleReaction = propHandleReaction || contextHandleReaction;
45076
45074
  if (!latestReactions.length)
@@ -45090,27 +45088,77 @@ var StreamChatReact = (function (exports, React$2, streamChat, ReactDOM) {
45090
45088
  };
45091
45089
  return (React__default["default"].createElement("div", { className: 'str-chat__message-reactions-container' },
45092
45090
  React__default["default"].createElement("ul", { className: 'str-chat__simple-reactions-list str-chat__message-reactions', "data-testid": 'simple-reaction-list', onMouseLeave: function () { return setTooltipReactionType(undefined); } },
45093
- latestReactionTypes.map(function (reactionType, i) {
45091
+ latestReactionTypes.map(function (reactionType) {
45094
45092
  var _a;
45095
- var emojiObject = getEmojiByReactionType(reactionType);
45093
+ var ReactionOption = getEmojiByReactionType(reactionType);
45096
45094
  var isOwnReaction = iHaveReactedWithReaction(reactionType);
45097
- var tooltipVisible = emojiObject && tooltipReactionType === (emojiObject === null || emojiObject === void 0 ? void 0 : emojiObject.id);
45095
+ var tooltipVisible = tooltipReactionType === reactionType;
45098
45096
  var tooltipContent = (_a = getUsersPerReactionType(tooltipReactionType)) === null || _a === void 0 ? void 0 : _a.join(', ');
45099
- return emojiObject ? (React__default["default"].createElement("li", { className: clsx('str-chat__simple-reactions-list-item', {
45097
+ return (ReactionOption && (React__default["default"].createElement("li", { className: clsx('str-chat__simple-reactions-list-item', {
45100
45098
  'str-chat__message-reaction-own': isOwnReaction,
45101
- }), key: "".concat(emojiObject.id, "-").concat(i), onClick: function (event) { return handleReaction(reactionType, event); }, onKeyUp: function (event) { return handleReaction(reactionType, event); } },
45099
+ }), key: reactionType, onClick: function (event) { return handleReaction(reactionType, event); }, onKeyUp: function (event) { return handleReaction(reactionType, event); } },
45102
45100
  React__default["default"].createElement(WithTooltip, { onMouseEnter: function () { return setTooltipReactionType(reactionType); }, onMouseLeave: function () { return setTooltipReactionType(undefined); }, title: tooltipContent },
45103
- React__default["default"].createElement(React$2.Suspense, { fallback: null },
45104
- React__default["default"].createElement(Emoji, __assign({ data: emojiData, emoji: emojiObject, size: 13 }, additionalEmojiProps))),
45101
+ React__default["default"].createElement(ReactionOption.Component, null),
45105
45102
  "\u00A0",
45106
45103
  tooltipVisible && themeVersion === '1' && (React__default["default"].createElement("div", { className: 'str-chat__simple-reactions-list-tooltip' },
45107
45104
  React__default["default"].createElement("div", { className: 'arrow' }),
45108
- tooltipContent))))) : null;
45105
+ tooltipContent))))));
45109
45106
  }),
45110
45107
  React__default["default"].createElement("li", { className: 'str-chat__simple-reactions-list-item--last-number' }, totalReactionCount))));
45111
45108
  };
45112
45109
  var SimpleReactionsList = React__default["default"].memo(UnMemoizedSimpleReactionsList);
45113
45110
 
45111
+ window.StreamChat.StreamChat=StreamChat;window.StreamChat.logChatPromiseExecution=logChatPromiseExecution;window.StreamChat.Channel=Channel;window.ICAL=window.ICAL||{};var SpriteImage = function (_a) {
45112
+ var columns = _a.columns, fallback = _a.fallback, height = _a.height, position = _a.position, rows = _a.rows, spriteUrl = _a.spriteUrl, width = _a.width;
45113
+ var _b = React$2.useState([0, 0]), _c = _b[0], spriteWidth = _c[0], spriteHeight = _c[1], setSpriteDimensions = _b[1];
45114
+ React$2.useEffect(function () {
45115
+ getImageDimensions(spriteUrl).then(setSpriteDimensions).catch(console.error);
45116
+ }, [spriteUrl]);
45117
+ var x = position[0], y = position[1];
45118
+ var spriteItemWidth = spriteWidth / columns;
45119
+ var spriteItemHeight = spriteHeight / rows;
45120
+ var resizeRatio = 1;
45121
+ if (!width && height)
45122
+ resizeRatio = height / spriteItemHeight;
45123
+ if (width && !height)
45124
+ resizeRatio = width / spriteItemWidth;
45125
+ if (resizeRatio === Infinity)
45126
+ resizeRatio = 1;
45127
+ if (!spriteHeight || !spriteWidth)
45128
+ return React__default["default"].createElement(React__default["default"].Fragment, null, fallback);
45129
+ return (React__default["default"].createElement("div", { "data-testid": 'sprite-image', style: {
45130
+ backgroundImage: "url('".concat(spriteUrl, "')"),
45131
+ backgroundPosition: "".concat(x * (100 / (columns - 1)), "% ").concat(y * (100 / (rows - 1)), "%"),
45132
+ backgroundSize: "".concat(columns * 100, "% ").concat(rows * 100, "%"),
45133
+ height: height !== null && height !== void 0 ? height : spriteItemHeight * resizeRatio,
45134
+ width: width !== null && width !== void 0 ? width : spriteItemWidth * resizeRatio,
45135
+ } }));
45136
+ };
45137
+
45138
+ window.StreamChat.StreamChat=StreamChat;window.StreamChat.logChatPromiseExecution=logChatPromiseExecution;window.StreamChat.Channel=Channel;window.ICAL=window.ICAL||{};var StreamSpriteEmojiPositions = {
45139
+ angry: [1, 1],
45140
+ haha: [1, 0],
45141
+ like: [0, 0],
45142
+ love: [1, 2],
45143
+ sad: [0, 1],
45144
+ wow: [0, 2],
45145
+ };
45146
+ var STREAM_SPRITE_URL = 'https://getstream.imgix.net/images/emoji-sprite.png';
45147
+ var StreamEmoji = function (_a) {
45148
+ var fallback = _a.fallback, type = _a.type;
45149
+ var position = StreamSpriteEmojiPositions[type];
45150
+ return (React__default["default"].createElement(SpriteImage, { columns: 2, fallback: fallback, height: 18, position: position, rows: 3, spriteUrl: STREAM_SPRITE_URL }));
45151
+ };
45152
+
45153
+ window.StreamChat.StreamChat=StreamChat;window.StreamChat.logChatPromiseExecution=logChatPromiseExecution;window.StreamChat.Channel=Channel;window.ICAL=window.ICAL||{};/* eslint-disable sort-keys */
45154
+ var defaultReactionOptions = [
45155
+ { type: 'haha', Component: function () { return React__default["default"].createElement(StreamEmoji, { fallback: '\uD83D\uDE02', type: 'haha' }); }, name: 'Joy' },
45156
+ { type: 'like', Component: function () { return React__default["default"].createElement(StreamEmoji, { fallback: '\uD83D\uDC4D', type: 'like' }); }, name: 'Thumbs up' },
45157
+ { type: 'love', Component: function () { return React__default["default"].createElement(StreamEmoji, { fallback: '\u2764\uFE0F', type: 'love' }); }, name: 'Heart' },
45158
+ { type: 'sad', Component: function () { return React__default["default"].createElement(StreamEmoji, { fallback: '\uD83D\uDE14', type: 'sad' }); }, name: 'Sad' },
45159
+ { type: 'wow', Component: function () { return React__default["default"].createElement(StreamEmoji, { fallback: '\uD83D\uDE32', type: 'wow' }); }, name: 'Astonished' },
45160
+ ];
45161
+
45114
45162
  window.StreamChat.StreamChat=StreamChat;window.StreamChat.logChatPromiseExecution=logChatPromiseExecution;window.StreamChat.Channel=Channel;window.ICAL=window.ICAL||{};
45115
45163
 
45116
45164
  window.StreamChat.StreamChat=StreamChat;window.StreamChat.logChatPromiseExecution=logChatPromiseExecution;window.StreamChat.Channel=Channel;window.ICAL=window.ICAL||{};var MessageSimpleWithContext = function (props) {
@@ -46169,49 +46217,52 @@ var StreamChatReact = (function (exports, React$2, streamChat, ReactDOM) {
46169
46217
  jumpToMessage,
46170
46218
  jumpToLatestMessage,
46171
46219
  ]);
46172
- var componentContextValue = React$2.useMemo(function () { return ({
46173
- Attachment: props.Attachment || Attachment,
46174
- AttachmentPreviewList: props.AttachmentPreviewList,
46175
- AutocompleteSuggestionHeader: props.AutocompleteSuggestionHeader,
46176
- AutocompleteSuggestionItem: props.AutocompleteSuggestionItem,
46177
- AutocompleteSuggestionList: props.AutocompleteSuggestionList,
46178
- Avatar: props.Avatar,
46179
- CooldownTimer: props.CooldownTimer,
46180
- DateSeparator: props.DateSeparator,
46181
- EditMessageInput: props.EditMessageInput,
46182
- EmojiIcon: props.EmojiIcon,
46183
- EmptyStateIndicator: props.EmptyStateIndicator,
46184
- FileUploadIcon: props.FileUploadIcon,
46185
- GiphyPreviewMessage: props.GiphyPreviewMessage,
46186
- HeaderComponent: props.HeaderComponent,
46187
- Input: props.Input,
46188
- LinkPreviewList: props.LinkPreviewList,
46189
- LoadingIndicator: props.LoadingIndicator,
46190
- Message: props.Message || MessageSimple,
46191
- MessageDeleted: props.MessageDeleted,
46192
- MessageListNotifications: props.MessageListNotifications,
46193
- MessageNotification: props.MessageNotification,
46194
- MessageOptions: props.MessageOptions,
46195
- MessageRepliesCountButton: props.MessageRepliesCountButton,
46196
- MessageStatus: props.MessageStatus,
46197
- MessageSystem: props.MessageSystem,
46198
- MessageTimestamp: props.MessageTimestamp,
46199
- ModalGallery: props.ModalGallery,
46200
- PinIndicator: props.PinIndicator,
46201
- QuotedMessage: props.QuotedMessage,
46202
- QuotedMessagePreview: props.QuotedMessagePreview,
46203
- ReactionSelector: props.ReactionSelector,
46204
- ReactionsList: props.ReactionsList,
46205
- SendButton: props.SendButton,
46206
- ThreadHead: props.ThreadHead,
46207
- ThreadHeader: props.ThreadHeader,
46208
- ThreadStart: props.ThreadStart,
46209
- TriggerProvider: props.TriggerProvider,
46210
- TypingIndicator: props.TypingIndicator,
46211
- VirtualMessage: props.VirtualMessage,
46212
- }); }, []);
46220
+ var componentContextValue = React$2.useMemo(function () {
46221
+ var _a;
46222
+ return ({
46223
+ Attachment: props.Attachment || Attachment,
46224
+ AttachmentPreviewList: props.AttachmentPreviewList,
46225
+ AutocompleteSuggestionHeader: props.AutocompleteSuggestionHeader,
46226
+ AutocompleteSuggestionItem: props.AutocompleteSuggestionItem,
46227
+ AutocompleteSuggestionList: props.AutocompleteSuggestionList,
46228
+ Avatar: props.Avatar,
46229
+ CooldownTimer: props.CooldownTimer,
46230
+ DateSeparator: props.DateSeparator,
46231
+ EditMessageInput: props.EditMessageInput,
46232
+ EmojiIcon: props.EmojiIcon,
46233
+ EmptyStateIndicator: props.EmptyStateIndicator,
46234
+ FileUploadIcon: props.FileUploadIcon,
46235
+ GiphyPreviewMessage: props.GiphyPreviewMessage,
46236
+ HeaderComponent: props.HeaderComponent,
46237
+ Input: props.Input,
46238
+ LinkPreviewList: props.LinkPreviewList,
46239
+ LoadingIndicator: props.LoadingIndicator,
46240
+ Message: props.Message || MessageSimple,
46241
+ MessageDeleted: props.MessageDeleted,
46242
+ MessageListNotifications: props.MessageListNotifications,
46243
+ MessageNotification: props.MessageNotification,
46244
+ MessageOptions: props.MessageOptions,
46245
+ MessageRepliesCountButton: props.MessageRepliesCountButton,
46246
+ MessageStatus: props.MessageStatus,
46247
+ MessageSystem: props.MessageSystem,
46248
+ MessageTimestamp: props.MessageTimestamp,
46249
+ ModalGallery: props.ModalGallery,
46250
+ PinIndicator: props.PinIndicator,
46251
+ QuotedMessage: props.QuotedMessage,
46252
+ QuotedMessagePreview: props.QuotedMessagePreview,
46253
+ reactionOptions: (_a = props.reactionOptions) !== null && _a !== void 0 ? _a : defaultReactionOptions,
46254
+ ReactionSelector: props.ReactionSelector,
46255
+ ReactionsList: props.ReactionsList,
46256
+ SendButton: props.SendButton,
46257
+ ThreadHead: props.ThreadHead,
46258
+ ThreadHeader: props.ThreadHeader,
46259
+ ThreadStart: props.ThreadStart,
46260
+ TriggerProvider: props.TriggerProvider,
46261
+ TypingIndicator: props.TypingIndicator,
46262
+ VirtualMessage: props.VirtualMessage,
46263
+ });
46264
+ }, [props.reactionOptions]);
46213
46265
  var emojiContextValue = React$2.useMemo(function () { return ({
46214
- Emoji: props.Emoji,
46215
46266
  emojiConfig: emojiConfig,
46216
46267
  EmojiIndex: props.EmojiIndex,
46217
46268
  EmojiPicker: props.EmojiPicker,
@@ -46707,10 +46758,19 @@ var StreamChatReact = (function (exports, React$2, streamChat, ReactDOM) {
46707
46758
  }, [customHandler]);
46708
46759
  };
46709
46760
 
46710
- window.StreamChat.StreamChat=StreamChat;window.StreamChat.logChatPromiseExecution=logChatPromiseExecution;window.StreamChat.Channel=Channel;window.ICAL=window.ICAL||{};var usePaginatedChannels = function (client, filters, sort, options, activeChannelHandler) {
46711
- var _a = useChatContext('usePaginatedChannels').channelsQueryState, setError = _a.setError, setQueryInProgress = _a.setQueryInProgress;
46761
+ window.StreamChat.StreamChat=StreamChat;window.StreamChat.logChatPromiseExecution=logChatPromiseExecution;window.StreamChat.Channel=Channel;window.ICAL=window.ICAL||{};var RECOVER_LOADED_CHANNELS_THROTTLE_INTERVAL_IN_MS = 5000;
46762
+ var MIN_RECOVER_LOADED_CHANNELS_THROTTLE_INTERVAL_IN_MS = 2000;
46763
+ var usePaginatedChannels = function (client, filters, sort, options, activeChannelHandler, recoveryThrottleIntervalMs) {
46764
+ if (recoveryThrottleIntervalMs === void 0) { recoveryThrottleIntervalMs = RECOVER_LOADED_CHANNELS_THROTTLE_INTERVAL_IN_MS; }
46765
+ var _a = useChatContext('usePaginatedChannels').channelsQueryState, error = _a.error, setError = _a.setError, setQueryInProgress = _a.setQueryInProgress;
46712
46766
  var _b = React$2.useState([]), channels = _b[0], setChannels = _b[1];
46713
46767
  var _c = React$2.useState(true), hasNextPage = _c[0], setHasNextPage = _c[1];
46768
+ var lastRecoveryTimestamp = React$2.useRef();
46769
+ var recoveryThrottleInterval = recoveryThrottleIntervalMs < MIN_RECOVER_LOADED_CHANNELS_THROTTLE_INTERVAL_IN_MS
46770
+ ? MIN_RECOVER_LOADED_CHANNELS_THROTTLE_INTERVAL_IN_MS
46771
+ : recoveryThrottleIntervalMs
46772
+ ? recoveryThrottleIntervalMs
46773
+ : RECOVER_LOADED_CHANNELS_THROTTLE_INTERVAL_IN_MS;
46714
46774
  // memoize props
46715
46775
  var filterString = React$2.useMemo(function () { return JSON.stringify(filters); }, [filters]);
46716
46776
  var sortString = React$2.useMemo(function () { return JSON.stringify(sort); }, [sort]);
@@ -46757,9 +46817,29 @@ var StreamChatReact = (function (exports, React$2, streamChat, ReactDOM) {
46757
46817
  }
46758
46818
  });
46759
46819
  }); };
46820
+ var throttleRecover = React$2.useCallback(function () {
46821
+ var now = Date.now();
46822
+ var isFirstRecovery = !lastRecoveryTimestamp.current;
46823
+ var timeElapsedSinceLastRecoveryMs = lastRecoveryTimestamp.current
46824
+ ? now - lastRecoveryTimestamp.current
46825
+ : 0;
46826
+ if (!isFirstRecovery && timeElapsedSinceLastRecoveryMs < recoveryThrottleInterval && !error) {
46827
+ return;
46828
+ }
46829
+ lastRecoveryTimestamp.current = now;
46830
+ queryChannels('reload');
46831
+ }, [error, queryChannels, recoveryThrottleInterval]);
46760
46832
  var loadNextPage = function () {
46761
46833
  queryChannels();
46762
46834
  };
46835
+ React$2.useEffect(function () {
46836
+ if (client.recoverStateOnReconnect)
46837
+ return;
46838
+ var unsubscribe = client.on('connection.recovered', throttleRecover).unsubscribe;
46839
+ return function () {
46840
+ unsubscribe();
46841
+ };
46842
+ }, [client, throttleRecover]);
46763
46843
  React$2.useEffect(function () {
46764
46844
  queryChannels('reload');
46765
46845
  }, [filterString, sortString]);
@@ -47398,7 +47478,7 @@ var StreamChatReact = (function (exports, React$2, streamChat, ReactDOM) {
47398
47478
  var DEFAULT_SORT = {};
47399
47479
  var UnMemoizedChannelList = function (props) {
47400
47480
  var _a, _b;
47401
- var additionalChannelSearchProps = props.additionalChannelSearchProps, _c = props.Avatar, Avatar$1 = _c === void 0 ? Avatar : _c, allowNewMessagesFromUnfilteredChannels = props.allowNewMessagesFromUnfilteredChannels, channelRenderFilterFn = props.channelRenderFilterFn, _d = props.ChannelSearch, ChannelSearch$1 = _d === void 0 ? ChannelSearch : _d, customActiveChannel = props.customActiveChannel, _e = props.EmptyStateIndicator, EmptyStateIndicator$1 = _e === void 0 ? EmptyStateIndicator : _e, filters = props.filters, _f = props.LoadingErrorIndicator, LoadingErrorIndicator = _f === void 0 ? ChatDown : _f, _g = props.LoadingIndicator, LoadingIndicator = _g === void 0 ? LoadingChannels : _g, _h = props.List, List = _h === void 0 ? ChannelListMessenger : _h, lockChannelOrder = props.lockChannelOrder, onAddedToChannel = props.onAddedToChannel, onChannelDeleted = props.onChannelDeleted, onChannelHidden = props.onChannelHidden, onChannelTruncated = props.onChannelTruncated, onChannelUpdated = props.onChannelUpdated, onChannelVisible = props.onChannelVisible, onMessageNew = props.onMessageNew, onRemovedFromChannel = props.onRemovedFromChannel, options = props.options, _j = props.Paginator, Paginator = _j === void 0 ? LoadMorePaginator : _j, Preview = props.Preview, renderChannels = props.renderChannels, _k = props.sendChannelsToList, sendChannelsToList = _k === void 0 ? false : _k, _l = props.setActiveChannelOnMount, setActiveChannelOnMount = _l === void 0 ? true : _l, _m = props.showChannelSearch, showChannelSearch = _m === void 0 ? false : _m, _o = props.sort, sort = _o === void 0 ? DEFAULT_SORT : _o, _p = props.watchers, watchers = _p === void 0 ? {} : _p;
47481
+ var additionalChannelSearchProps = props.additionalChannelSearchProps, _c = props.Avatar, Avatar$1 = _c === void 0 ? Avatar : _c, allowNewMessagesFromUnfilteredChannels = props.allowNewMessagesFromUnfilteredChannels, channelRenderFilterFn = props.channelRenderFilterFn, _d = props.ChannelSearch, ChannelSearch$1 = _d === void 0 ? ChannelSearch : _d, customActiveChannel = props.customActiveChannel, _e = props.EmptyStateIndicator, EmptyStateIndicator$1 = _e === void 0 ? EmptyStateIndicator : _e, filters = props.filters, _f = props.LoadingErrorIndicator, LoadingErrorIndicator = _f === void 0 ? ChatDown : _f, _g = props.LoadingIndicator, LoadingIndicator = _g === void 0 ? LoadingChannels : _g, _h = props.List, List = _h === void 0 ? ChannelListMessenger : _h, lockChannelOrder = props.lockChannelOrder, onAddedToChannel = props.onAddedToChannel, onChannelDeleted = props.onChannelDeleted, onChannelHidden = props.onChannelHidden, onChannelTruncated = props.onChannelTruncated, onChannelUpdated = props.onChannelUpdated, onChannelVisible = props.onChannelVisible, onMessageNew = props.onMessageNew, onRemovedFromChannel = props.onRemovedFromChannel, options = props.options, _j = props.Paginator, Paginator = _j === void 0 ? LoadMorePaginator : _j, Preview = props.Preview, recoveryThrottleIntervalMs = props.recoveryThrottleIntervalMs, renderChannels = props.renderChannels, _k = props.sendChannelsToList, sendChannelsToList = _k === void 0 ? false : _k, _l = props.setActiveChannelOnMount, setActiveChannelOnMount = _l === void 0 ? true : _l, _m = props.showChannelSearch, showChannelSearch = _m === void 0 ? false : _m, _o = props.sort, sort = _o === void 0 ? DEFAULT_SORT : _o, _p = props.watchers, watchers = _p === void 0 ? {} : _p;
47402
47482
  var _q = useChatContext('ChannelList'), channel = _q.channel, channelsQueryState = _q.channelsQueryState, client = _q.client, closeMobileNav = _q.closeMobileNav, customClasses = _q.customClasses, _r = _q.navOpen, navOpen = _r === void 0 ? false : _r, setActiveChannel = _q.setActiveChannel, theme = _q.theme, useImageFlagEmojisOnWindows = _q.useImageFlagEmojisOnWindows;
47403
47483
  var channelListRef = React$2.useRef(null);
47404
47484
  var _s = React$2.useState(0), channelUpdateCount = _s[0], setChannelUpdateCount = _s[1];
@@ -47462,7 +47542,7 @@ var StreamChatReact = (function (exports, React$2, streamChat, ReactDOM) {
47462
47542
  setSearchActive(false);
47463
47543
  (_a = additionalChannelSearchProps === null || additionalChannelSearchProps === void 0 ? void 0 : additionalChannelSearchProps.onSearchExit) === null || _a === void 0 ? void 0 : _a.call(additionalChannelSearchProps);
47464
47544
  }, []);
47465
- var _u = usePaginatedChannels(client, filters || DEFAULT_FILTERS, sort || DEFAULT_SORT, options || DEFAULT_OPTIONS, activeChannelHandler), channels = _u.channels, hasNextPage = _u.hasNextPage, loadNextPage = _u.loadNextPage, setChannels = _u.setChannels;
47545
+ var _u = usePaginatedChannels(client, filters || DEFAULT_FILTERS, sort || DEFAULT_SORT, options || DEFAULT_OPTIONS, activeChannelHandler, recoveryThrottleIntervalMs), channels = _u.channels, hasNextPage = _u.hasNextPage, loadNextPage = _u.loadNextPage, setChannels = _u.setChannels;
47466
47546
  var loadedChannels = channelRenderFilterFn ? channelRenderFilterFn(channels) : channels;
47467
47547
  useMobileNavigation(channelListRef, navOpen, closeMobileNav);
47468
47548
  useMessageNewListener(setChannels, lockChannelOrder, allowNewMessagesFromUnfilteredChannels);
@@ -47526,7 +47606,7 @@ var StreamChatReact = (function (exports, React$2, streamChat, ReactDOM) {
47526
47606
 
47527
47607
  window.StreamChat.StreamChat=StreamChat;window.StreamChat.logChatPromiseExecution=logChatPromiseExecution;window.StreamChat.Channel=Channel;window.ICAL=window.ICAL||{};
47528
47608
 
47529
- window.StreamChat.StreamChat=StreamChat;window.StreamChat.logChatPromiseExecution=logChatPromiseExecution;window.StreamChat.Channel=Channel;window.ICAL=window.ICAL||{};var version$1 = '10.13.1';
47609
+ window.StreamChat.StreamChat=StreamChat;window.StreamChat.logChatPromiseExecution=logChatPromiseExecution;window.StreamChat.Channel=Channel;window.ICAL=window.ICAL||{};var version$1 = '11.0.0-rc.1';
47530
47610
 
47531
47611
  window.StreamChat.StreamChat=StreamChat;window.StreamChat.logChatPromiseExecution=logChatPromiseExecution;window.StreamChat.Channel=Channel;window.ICAL=window.ICAL||{};var useChat = function (_a) {
47532
47612
  var _b, _c;
@@ -50814,421 +50894,6 @@ var StreamChatReact = (function (exports, React$2, streamChat, ReactDOM) {
50814
50894
 
50815
50895
  window.StreamChat.StreamChat=StreamChat;window.StreamChat.logChatPromiseExecution=logChatPromiseExecution;window.StreamChat.Channel=Channel;window.ICAL=window.ICAL||{};
50816
50896
 
50817
- var nimbleEmoji$1 = {};
50818
-
50819
- var sharedProps = {};
50820
-
50821
- window.StreamChat.StreamChat=StreamChat;window.StreamChat.logChatPromiseExecution=logChatPromiseExecution;window.StreamChat.Channel=Channel;window.ICAL=window.ICAL||{};
50822
- var hasRequiredSharedProps;
50823
-
50824
- function requireSharedProps () {
50825
- if (hasRequiredSharedProps) return sharedProps;
50826
- hasRequiredSharedProps = 1;
50827
-
50828
- var _interopRequireDefault = interopRequireDefault.exports;
50829
-
50830
- Object.defineProperty(sharedProps, "__esModule", {
50831
- value: true
50832
- });
50833
- sharedProps.PickerPropTypes = sharedProps.EmojiPropTypes = void 0;
50834
-
50835
- var _propTypes = _interopRequireDefault(requirePropTypes());
50836
-
50837
- var EmojiPropTypes = {
50838
- data: _propTypes["default"].object.isRequired,
50839
- onOver: _propTypes["default"].func,
50840
- onLeave: _propTypes["default"].func,
50841
- onClick: _propTypes["default"].func,
50842
- fallback: _propTypes["default"].func,
50843
- backgroundImageFn: _propTypes["default"].func,
50844
- "native": _propTypes["default"].bool,
50845
- forceSize: _propTypes["default"].bool,
50846
- tooltip: _propTypes["default"].bool,
50847
- useButton: _propTypes["default"].bool,
50848
- skin: _propTypes["default"].oneOf([1, 2, 3, 4, 5, 6]),
50849
- sheetSize: _propTypes["default"].oneOf([16, 20, 32, 64]),
50850
- sheetColumns: _propTypes["default"].number,
50851
- sheetRows: _propTypes["default"].number,
50852
- set: _propTypes["default"].oneOf(['apple', 'google', 'twitter', 'facebook']),
50853
- size: _propTypes["default"].number.isRequired,
50854
- emoji: _propTypes["default"].oneOfType([_propTypes["default"].string, _propTypes["default"].object]).isRequired
50855
- };
50856
- sharedProps.EmojiPropTypes = EmojiPropTypes;
50857
- var PickerPropTypes = {
50858
- onClick: _propTypes["default"].func,
50859
- onSelect: _propTypes["default"].func,
50860
- onSkinChange: _propTypes["default"].func,
50861
- perLine: _propTypes["default"].number,
50862
- emojiSize: _propTypes["default"].number,
50863
- i18n: _propTypes["default"].object,
50864
- style: _propTypes["default"].object,
50865
- title: _propTypes["default"].string,
50866
- emoji: _propTypes["default"].string,
50867
- color: _propTypes["default"].string,
50868
- set: EmojiPropTypes.set,
50869
- skin: EmojiPropTypes.skin,
50870
- "native": _propTypes["default"].bool,
50871
- backgroundImageFn: EmojiPropTypes.backgroundImageFn,
50872
- sheetSize: EmojiPropTypes.sheetSize,
50873
- emojisToShowFilter: _propTypes["default"].func,
50874
- showPreview: _propTypes["default"].bool,
50875
- showSkinTones: _propTypes["default"].bool,
50876
- emojiTooltip: EmojiPropTypes.tooltip,
50877
- useButton: EmojiPropTypes.useButton,
50878
- theme: _propTypes["default"].oneOf(['auto', 'light', 'dark']),
50879
- include: _propTypes["default"].arrayOf(_propTypes["default"].string),
50880
- exclude: _propTypes["default"].arrayOf(_propTypes["default"].string),
50881
- recent: _propTypes["default"].arrayOf(_propTypes["default"].string),
50882
- autoFocus: _propTypes["default"].bool,
50883
- enableFrequentEmojiSort: _propTypes["default"].bool,
50884
- custom: _propTypes["default"].arrayOf(_propTypes["default"].shape({
50885
- name: _propTypes["default"].string.isRequired,
50886
- short_names: _propTypes["default"].arrayOf(_propTypes["default"].string).isRequired,
50887
- emoticons: _propTypes["default"].arrayOf(_propTypes["default"].string),
50888
- keywords: _propTypes["default"].arrayOf(_propTypes["default"].string),
50889
- imageUrl: _propTypes["default"].string,
50890
- spriteUrl: _propTypes["default"].string,
50891
- sheet_x: _propTypes["default"].number,
50892
- sheet_y: _propTypes["default"].number,
50893
- size: _propTypes["default"].number,
50894
- sheetColumns: _propTypes["default"].number,
50895
- sheetRows: _propTypes["default"].number
50896
- })),
50897
- skinEmoji: _propTypes["default"].string,
50898
- notFound: _propTypes["default"].func,
50899
- notFoundEmoji: _propTypes["default"].string,
50900
- icons: _propTypes["default"].object
50901
- };
50902
- sharedProps.PickerPropTypes = PickerPropTypes;
50903
- return sharedProps;
50904
- }
50905
-
50906
- var sharedDefaultProps = {};
50907
-
50908
- window.StreamChat.StreamChat=StreamChat;window.StreamChat.logChatPromiseExecution=logChatPromiseExecution;window.StreamChat.Channel=Channel;window.ICAL=window.ICAL||{};
50909
- var hasRequiredSharedDefaultProps;
50910
-
50911
- function requireSharedDefaultProps () {
50912
- if (hasRequiredSharedDefaultProps) return sharedDefaultProps;
50913
- hasRequiredSharedDefaultProps = 1;
50914
-
50915
- Object.defineProperty(sharedDefaultProps, "__esModule", {
50916
- value: true
50917
- });
50918
- sharedDefaultProps.EmojiDefaultProps = sharedDefaultProps.PickerDefaultProps = void 0;
50919
- var EmojiDefaultProps = {
50920
- skin: 1,
50921
- set: 'apple',
50922
- sheetSize: 64,
50923
- sheetColumns: 57,
50924
- sheetRows: 57,
50925
- "native": false,
50926
- forceSize: false,
50927
- tooltip: false,
50928
- useButton: true,
50929
- backgroundImageFn: function backgroundImageFn(set, sheetSize) {
50930
- return "https://unpkg.com/emoji-datasource-".concat(set, "@").concat("5.0.1", "/img/").concat(set, "/sheets-256/").concat(sheetSize, ".png");
50931
- }
50932
- };
50933
- sharedDefaultProps.EmojiDefaultProps = EmojiDefaultProps;
50934
- var PickerDefaultProps = {
50935
- onClick: function onClick() {},
50936
- onSelect: function onSelect() {},
50937
- onSkinChange: function onSkinChange() {},
50938
- emojiSize: 24,
50939
- perLine: 9,
50940
- i18n: {},
50941
- style: {},
50942
- title: 'Emoji Mart™',
50943
- emoji: 'department_store',
50944
- color: '#ae65c5',
50945
- set: EmojiDefaultProps.set,
50946
- theme: 'light',
50947
- skin: null,
50948
- defaultSkin: EmojiDefaultProps.skin,
50949
- "native": EmojiDefaultProps["native"],
50950
- sheetSize: EmojiDefaultProps.sheetSize,
50951
- backgroundImageFn: EmojiDefaultProps.backgroundImageFn,
50952
- emojisToShowFilter: null,
50953
- showPreview: true,
50954
- showSkinTones: true,
50955
- emojiTooltip: EmojiDefaultProps.tooltip,
50956
- useButton: EmojiDefaultProps.useButton,
50957
- autoFocus: false,
50958
- enableFrequentEmojiSort: false,
50959
- custom: [],
50960
- skinEmoji: '',
50961
- notFound: function notFound() {},
50962
- notFoundEmoji: 'sleuth_or_spy',
50963
- icons: {}
50964
- };
50965
- sharedDefaultProps.PickerDefaultProps = PickerDefaultProps;
50966
- return sharedDefaultProps;
50967
- }
50968
-
50969
- window.StreamChat.StreamChat=StreamChat;window.StreamChat.logChatPromiseExecution=logChatPromiseExecution;window.StreamChat.Channel=Channel;window.ICAL=window.ICAL||{};
50970
- (function (exports) {
50971
-
50972
- var _interopRequireDefault = interopRequireDefault.exports;
50973
-
50974
- Object.defineProperty(exports, "__esModule", {
50975
- value: true
50976
- });
50977
- exports["default"] = void 0;
50978
-
50979
- var _extends2 = _interopRequireDefault(_extends$3.exports);
50980
-
50981
- var _defineProperty2 = _interopRequireDefault(defineProperty$1.exports);
50982
-
50983
- var _react = _interopRequireDefault(React__default["default"]);
50984
-
50985
- var _propTypes = _interopRequireDefault(requirePropTypes());
50986
-
50987
- var _utils = requireUtils();
50988
-
50989
- var _data = requireData();
50990
-
50991
- var _sharedProps = requireSharedProps();
50992
-
50993
- var _sharedDefaultProps = requireSharedDefaultProps();
50994
-
50995
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
50996
-
50997
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
50998
-
50999
- var _getData = function _getData(props) {
51000
- var emoji = props.emoji,
51001
- skin = props.skin,
51002
- set = props.set,
51003
- data = props.data;
51004
- return (0, _utils.getData)(emoji, skin, set, data);
51005
- };
51006
-
51007
- var _getPosition = function _getPosition(props) {
51008
- var _getData2 = _getData(props),
51009
- sheet_x = _getData2.sheet_x,
51010
- sheet_y = _getData2.sheet_y,
51011
- multiplyX = 100 / (props.sheetColumns - 1),
51012
- multiplyY = 100 / (props.sheetRows - 1);
51013
-
51014
- return "".concat(multiplyX * sheet_x, "% ").concat(multiplyY * sheet_y, "%");
51015
- };
51016
-
51017
- var _getSanitizedData = function _getSanitizedData(props) {
51018
- var emoji = props.emoji,
51019
- skin = props.skin,
51020
- set = props.set,
51021
- data = props.data;
51022
- return (0, _utils.getSanitizedData)(emoji, skin, set, data);
51023
- };
51024
-
51025
- var _handleClick = function _handleClick(e, props) {
51026
- if (!props.onClick) {
51027
- return;
51028
- }
51029
-
51030
- var onClick = props.onClick,
51031
- emoji = _getSanitizedData(props);
51032
-
51033
- onClick(emoji, e);
51034
- };
51035
-
51036
- var _handleOver = function _handleOver(e, props) {
51037
- if (!props.onOver) {
51038
- return;
51039
- }
51040
-
51041
- var onOver = props.onOver,
51042
- emoji = _getSanitizedData(props);
51043
-
51044
- onOver(emoji, e);
51045
- };
51046
-
51047
- var _handleLeave = function _handleLeave(e, props) {
51048
- if (!props.onLeave) {
51049
- return;
51050
- }
51051
-
51052
- var onLeave = props.onLeave,
51053
- emoji = _getSanitizedData(props);
51054
-
51055
- onLeave(emoji, e);
51056
- };
51057
-
51058
- var _isNumeric = function _isNumeric(value) {
51059
- return !isNaN(value - parseFloat(value));
51060
- };
51061
-
51062
- var _convertStyleToCSS = function _convertStyleToCSS(style) {
51063
- var div = document.createElement('div');
51064
-
51065
- for (var key in style) {
51066
- var value = style[key];
51067
-
51068
- if (_isNumeric(value)) {
51069
- value += 'px';
51070
- }
51071
-
51072
- div.style[key] = value;
51073
- }
51074
-
51075
- return div.getAttribute('style');
51076
- };
51077
-
51078
- var NimbleEmoji = function NimbleEmoji(props) {
51079
- if (props.data.compressed) {
51080
- (0, _data.uncompress)(props.data);
51081
- }
51082
-
51083
- for (var k in NimbleEmoji.defaultProps) {
51084
- if (props[k] == undefined && NimbleEmoji.defaultProps[k] != undefined) {
51085
- props[k] = NimbleEmoji.defaultProps[k];
51086
- }
51087
- }
51088
-
51089
- var data = _getData(props);
51090
-
51091
- if (!data) {
51092
- if (props.fallback) {
51093
- return props.fallback(null, props);
51094
- } else {
51095
- return null;
51096
- }
51097
- }
51098
-
51099
- var unified = data.unified,
51100
- custom = data.custom,
51101
- short_names = data.short_names,
51102
- imageUrl = data.imageUrl,
51103
- style = {},
51104
- children = props.children,
51105
- className = 'emoji-mart-emoji',
51106
- nativeEmoji = unified && (0, _utils.unifiedToNative)(unified),
51107
- label = [nativeEmoji].concat(short_names).filter(Boolean).join(', '),
51108
- title = null;
51109
-
51110
- if (!unified && !custom) {
51111
- if (props.fallback) {
51112
- return props.fallback(data, props);
51113
- } else {
51114
- return null;
51115
- }
51116
- }
51117
-
51118
- if (props.tooltip) {
51119
- title = short_names[0];
51120
- }
51121
-
51122
- if (props["native"] && unified) {
51123
- className += ' emoji-mart-emoji-native';
51124
- style = {
51125
- fontSize: props.size
51126
- };
51127
- children = nativeEmoji;
51128
-
51129
- if (props.forceSize) {
51130
- style.display = 'inline-block';
51131
- style.width = props.size;
51132
- style.height = props.size;
51133
- style.wordBreak = 'keep-all';
51134
- }
51135
- } else if (custom) {
51136
- className += ' emoji-mart-emoji-custom';
51137
- style = {
51138
- width: props.size,
51139
- height: props.size,
51140
- display: 'inline-block'
51141
- };
51142
-
51143
- if (data.spriteUrl) {
51144
- style = _objectSpread({}, style, {
51145
- backgroundImage: "url(".concat(data.spriteUrl, ")"),
51146
- backgroundSize: "".concat(100 * props.sheetColumns, "% ").concat(100 * props.sheetRows, "%"),
51147
- backgroundPosition: _getPosition(props)
51148
- });
51149
- } else {
51150
- style = _objectSpread({}, style, {
51151
- backgroundImage: "url(".concat(imageUrl, ")"),
51152
- backgroundSize: 'contain',
51153
- backgroundRepeat: 'no-repeat',
51154
- backgroundPosition: 'center'
51155
- });
51156
- }
51157
- } else {
51158
- var setHasEmoji = data["has_img_".concat(props.set)] == undefined || data["has_img_".concat(props.set)];
51159
-
51160
- if (!setHasEmoji) {
51161
- if (props.fallback) {
51162
- return props.fallback(data, props);
51163
- } else {
51164
- return null;
51165
- }
51166
- } else {
51167
- style = {
51168
- width: props.size,
51169
- height: props.size,
51170
- display: 'inline-block',
51171
- backgroundImage: "url(".concat(props.backgroundImageFn(props.set, props.sheetSize), ")"),
51172
- backgroundSize: "".concat(100 * props.sheetColumns, "% ").concat(100 * props.sheetRows, "%"),
51173
- backgroundPosition: _getPosition(props)
51174
- };
51175
- }
51176
- }
51177
-
51178
- var Tag = {
51179
- name: 'span',
51180
- props: {}
51181
- };
51182
-
51183
- if (props.onClick && props.useButton) {
51184
- Tag.name = 'button';
51185
- Tag.props = {
51186
- type: 'button'
51187
- };
51188
- }
51189
-
51190
- if (props.html) {
51191
- style = _convertStyleToCSS(style);
51192
- return "<".concat(Tag.name, " style='").concat(style, "' aria-label='").concat(label, "' ").concat(title ? "title='".concat(title, "'") : '', " class='").concat(className, "'>").concat(children || '', "</").concat(Tag.name, ">");
51193
- } else {
51194
- return _react["default"].createElement(Tag.name, (0, _extends2["default"])({
51195
- onClick: function onClick(e) {
51196
- return _handleClick(e, props);
51197
- },
51198
- onMouseEnter: function onMouseEnter(e) {
51199
- return _handleOver(e, props);
51200
- },
51201
- onMouseLeave: function onMouseLeave(e) {
51202
- return _handleLeave(e, props);
51203
- },
51204
- "aria-label": label,
51205
- title: title,
51206
- className: className
51207
- }, Tag.props), _react["default"].createElement("span", {
51208
- style: style
51209
- }, children));
51210
- }
51211
- };
51212
-
51213
- NimbleEmoji.propTypes
51214
- /* remove-proptypes */
51215
- = _objectSpread({}, _sharedProps.EmojiPropTypes, {
51216
- data: _propTypes["default"].object.isRequired
51217
- });
51218
- NimbleEmoji.defaultProps = _sharedDefaultProps.EmojiDefaultProps;
51219
- var _default = NimbleEmoji;
51220
- exports["default"] = _default;
51221
- } (nimbleEmoji$1));
51222
-
51223
- var nimbleEmoji = /*@__PURE__*/getDefaultExportFromCjs(nimbleEmoji$1);
51224
-
51225
- window.StreamChat.StreamChat=StreamChat;window.StreamChat.logChatPromiseExecution=logChatPromiseExecution;window.StreamChat.Channel=Channel;window.ICAL=window.ICAL||{};// @ts-expect-error
51226
-
51227
- var DefaultEmoji = /*#__PURE__*/Object.freeze({
51228
- __proto__: null,
51229
- 'default': nimbleEmoji
51230
- });
51231
-
51232
50897
  var nimblePicker$1 = {};
51233
50898
 
51234
50899
  var interopRequireWildcard = {exports: {}};
@@ -51548,6 +51213,93 @@ var StreamChatReact = (function (exports, React$2, streamChat, ReactDOM) {
51548
51213
  return frequently;
51549
51214
  }
51550
51215
 
51216
+ var sharedProps = {};
51217
+
51218
+ window.StreamChat.StreamChat=StreamChat;window.StreamChat.logChatPromiseExecution=logChatPromiseExecution;window.StreamChat.Channel=Channel;window.ICAL=window.ICAL||{};
51219
+ var hasRequiredSharedProps;
51220
+
51221
+ function requireSharedProps () {
51222
+ if (hasRequiredSharedProps) return sharedProps;
51223
+ hasRequiredSharedProps = 1;
51224
+
51225
+ var _interopRequireDefault = interopRequireDefault.exports;
51226
+
51227
+ Object.defineProperty(sharedProps, "__esModule", {
51228
+ value: true
51229
+ });
51230
+ sharedProps.PickerPropTypes = sharedProps.EmojiPropTypes = void 0;
51231
+
51232
+ var _propTypes = _interopRequireDefault(requirePropTypes());
51233
+
51234
+ var EmojiPropTypes = {
51235
+ data: _propTypes["default"].object.isRequired,
51236
+ onOver: _propTypes["default"].func,
51237
+ onLeave: _propTypes["default"].func,
51238
+ onClick: _propTypes["default"].func,
51239
+ fallback: _propTypes["default"].func,
51240
+ backgroundImageFn: _propTypes["default"].func,
51241
+ "native": _propTypes["default"].bool,
51242
+ forceSize: _propTypes["default"].bool,
51243
+ tooltip: _propTypes["default"].bool,
51244
+ useButton: _propTypes["default"].bool,
51245
+ skin: _propTypes["default"].oneOf([1, 2, 3, 4, 5, 6]),
51246
+ sheetSize: _propTypes["default"].oneOf([16, 20, 32, 64]),
51247
+ sheetColumns: _propTypes["default"].number,
51248
+ sheetRows: _propTypes["default"].number,
51249
+ set: _propTypes["default"].oneOf(['apple', 'google', 'twitter', 'facebook']),
51250
+ size: _propTypes["default"].number.isRequired,
51251
+ emoji: _propTypes["default"].oneOfType([_propTypes["default"].string, _propTypes["default"].object]).isRequired
51252
+ };
51253
+ sharedProps.EmojiPropTypes = EmojiPropTypes;
51254
+ var PickerPropTypes = {
51255
+ onClick: _propTypes["default"].func,
51256
+ onSelect: _propTypes["default"].func,
51257
+ onSkinChange: _propTypes["default"].func,
51258
+ perLine: _propTypes["default"].number,
51259
+ emojiSize: _propTypes["default"].number,
51260
+ i18n: _propTypes["default"].object,
51261
+ style: _propTypes["default"].object,
51262
+ title: _propTypes["default"].string,
51263
+ emoji: _propTypes["default"].string,
51264
+ color: _propTypes["default"].string,
51265
+ set: EmojiPropTypes.set,
51266
+ skin: EmojiPropTypes.skin,
51267
+ "native": _propTypes["default"].bool,
51268
+ backgroundImageFn: EmojiPropTypes.backgroundImageFn,
51269
+ sheetSize: EmojiPropTypes.sheetSize,
51270
+ emojisToShowFilter: _propTypes["default"].func,
51271
+ showPreview: _propTypes["default"].bool,
51272
+ showSkinTones: _propTypes["default"].bool,
51273
+ emojiTooltip: EmojiPropTypes.tooltip,
51274
+ useButton: EmojiPropTypes.useButton,
51275
+ theme: _propTypes["default"].oneOf(['auto', 'light', 'dark']),
51276
+ include: _propTypes["default"].arrayOf(_propTypes["default"].string),
51277
+ exclude: _propTypes["default"].arrayOf(_propTypes["default"].string),
51278
+ recent: _propTypes["default"].arrayOf(_propTypes["default"].string),
51279
+ autoFocus: _propTypes["default"].bool,
51280
+ enableFrequentEmojiSort: _propTypes["default"].bool,
51281
+ custom: _propTypes["default"].arrayOf(_propTypes["default"].shape({
51282
+ name: _propTypes["default"].string.isRequired,
51283
+ short_names: _propTypes["default"].arrayOf(_propTypes["default"].string).isRequired,
51284
+ emoticons: _propTypes["default"].arrayOf(_propTypes["default"].string),
51285
+ keywords: _propTypes["default"].arrayOf(_propTypes["default"].string),
51286
+ imageUrl: _propTypes["default"].string,
51287
+ spriteUrl: _propTypes["default"].string,
51288
+ sheet_x: _propTypes["default"].number,
51289
+ sheet_y: _propTypes["default"].number,
51290
+ size: _propTypes["default"].number,
51291
+ sheetColumns: _propTypes["default"].number,
51292
+ sheetRows: _propTypes["default"].number
51293
+ })),
51294
+ skinEmoji: _propTypes["default"].string,
51295
+ notFound: _propTypes["default"].func,
51296
+ notFoundEmoji: _propTypes["default"].string,
51297
+ icons: _propTypes["default"].object
51298
+ };
51299
+ sharedProps.PickerPropTypes = PickerPropTypes;
51300
+ return sharedProps;
51301
+ }
51302
+
51551
51303
  var anchors = {};
51552
51304
 
51553
51305
  window.StreamChat.StreamChat=StreamChat;window.StreamChat.logChatPromiseExecution=logChatPromiseExecution;window.StreamChat.Channel=Channel;window.ICAL=window.ICAL||{};
@@ -51679,6 +51431,332 @@ var StreamChatReact = (function (exports, React$2, streamChat, ReactDOM) {
51679
51431
 
51680
51432
  var category = {};
51681
51433
 
51434
+ var nimbleEmoji = {};
51435
+
51436
+ var sharedDefaultProps = {};
51437
+
51438
+ window.StreamChat.StreamChat=StreamChat;window.StreamChat.logChatPromiseExecution=logChatPromiseExecution;window.StreamChat.Channel=Channel;window.ICAL=window.ICAL||{};
51439
+ var hasRequiredSharedDefaultProps;
51440
+
51441
+ function requireSharedDefaultProps () {
51442
+ if (hasRequiredSharedDefaultProps) return sharedDefaultProps;
51443
+ hasRequiredSharedDefaultProps = 1;
51444
+
51445
+ Object.defineProperty(sharedDefaultProps, "__esModule", {
51446
+ value: true
51447
+ });
51448
+ sharedDefaultProps.EmojiDefaultProps = sharedDefaultProps.PickerDefaultProps = void 0;
51449
+ var EmojiDefaultProps = {
51450
+ skin: 1,
51451
+ set: 'apple',
51452
+ sheetSize: 64,
51453
+ sheetColumns: 57,
51454
+ sheetRows: 57,
51455
+ "native": false,
51456
+ forceSize: false,
51457
+ tooltip: false,
51458
+ useButton: true,
51459
+ backgroundImageFn: function backgroundImageFn(set, sheetSize) {
51460
+ return "https://unpkg.com/emoji-datasource-".concat(set, "@").concat("5.0.1", "/img/").concat(set, "/sheets-256/").concat(sheetSize, ".png");
51461
+ }
51462
+ };
51463
+ sharedDefaultProps.EmojiDefaultProps = EmojiDefaultProps;
51464
+ var PickerDefaultProps = {
51465
+ onClick: function onClick() {},
51466
+ onSelect: function onSelect() {},
51467
+ onSkinChange: function onSkinChange() {},
51468
+ emojiSize: 24,
51469
+ perLine: 9,
51470
+ i18n: {},
51471
+ style: {},
51472
+ title: 'Emoji Mart™',
51473
+ emoji: 'department_store',
51474
+ color: '#ae65c5',
51475
+ set: EmojiDefaultProps.set,
51476
+ theme: 'light',
51477
+ skin: null,
51478
+ defaultSkin: EmojiDefaultProps.skin,
51479
+ "native": EmojiDefaultProps["native"],
51480
+ sheetSize: EmojiDefaultProps.sheetSize,
51481
+ backgroundImageFn: EmojiDefaultProps.backgroundImageFn,
51482
+ emojisToShowFilter: null,
51483
+ showPreview: true,
51484
+ showSkinTones: true,
51485
+ emojiTooltip: EmojiDefaultProps.tooltip,
51486
+ useButton: EmojiDefaultProps.useButton,
51487
+ autoFocus: false,
51488
+ enableFrequentEmojiSort: false,
51489
+ custom: [],
51490
+ skinEmoji: '',
51491
+ notFound: function notFound() {},
51492
+ notFoundEmoji: 'sleuth_or_spy',
51493
+ icons: {}
51494
+ };
51495
+ sharedDefaultProps.PickerDefaultProps = PickerDefaultProps;
51496
+ return sharedDefaultProps;
51497
+ }
51498
+
51499
+ window.StreamChat.StreamChat=StreamChat;window.StreamChat.logChatPromiseExecution=logChatPromiseExecution;window.StreamChat.Channel=Channel;window.ICAL=window.ICAL||{};
51500
+ var hasRequiredNimbleEmoji;
51501
+
51502
+ function requireNimbleEmoji () {
51503
+ if (hasRequiredNimbleEmoji) return nimbleEmoji;
51504
+ hasRequiredNimbleEmoji = 1;
51505
+ (function (exports) {
51506
+
51507
+ var _interopRequireDefault = interopRequireDefault.exports;
51508
+
51509
+ Object.defineProperty(exports, "__esModule", {
51510
+ value: true
51511
+ });
51512
+ exports["default"] = void 0;
51513
+
51514
+ var _extends2 = _interopRequireDefault(_extends$3.exports);
51515
+
51516
+ var _defineProperty2 = _interopRequireDefault(defineProperty$1.exports);
51517
+
51518
+ var _react = _interopRequireDefault(React__default["default"]);
51519
+
51520
+ var _propTypes = _interopRequireDefault(requirePropTypes());
51521
+
51522
+ var _utils = requireUtils();
51523
+
51524
+ var _data = requireData();
51525
+
51526
+ var _sharedProps = requireSharedProps();
51527
+
51528
+ var _sharedDefaultProps = requireSharedDefaultProps();
51529
+
51530
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
51531
+
51532
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
51533
+
51534
+ var _getData = function _getData(props) {
51535
+ var emoji = props.emoji,
51536
+ skin = props.skin,
51537
+ set = props.set,
51538
+ data = props.data;
51539
+ return (0, _utils.getData)(emoji, skin, set, data);
51540
+ };
51541
+
51542
+ var _getPosition = function _getPosition(props) {
51543
+ var _getData2 = _getData(props),
51544
+ sheet_x = _getData2.sheet_x,
51545
+ sheet_y = _getData2.sheet_y,
51546
+ multiplyX = 100 / (props.sheetColumns - 1),
51547
+ multiplyY = 100 / (props.sheetRows - 1);
51548
+
51549
+ return "".concat(multiplyX * sheet_x, "% ").concat(multiplyY * sheet_y, "%");
51550
+ };
51551
+
51552
+ var _getSanitizedData = function _getSanitizedData(props) {
51553
+ var emoji = props.emoji,
51554
+ skin = props.skin,
51555
+ set = props.set,
51556
+ data = props.data;
51557
+ return (0, _utils.getSanitizedData)(emoji, skin, set, data);
51558
+ };
51559
+
51560
+ var _handleClick = function _handleClick(e, props) {
51561
+ if (!props.onClick) {
51562
+ return;
51563
+ }
51564
+
51565
+ var onClick = props.onClick,
51566
+ emoji = _getSanitizedData(props);
51567
+
51568
+ onClick(emoji, e);
51569
+ };
51570
+
51571
+ var _handleOver = function _handleOver(e, props) {
51572
+ if (!props.onOver) {
51573
+ return;
51574
+ }
51575
+
51576
+ var onOver = props.onOver,
51577
+ emoji = _getSanitizedData(props);
51578
+
51579
+ onOver(emoji, e);
51580
+ };
51581
+
51582
+ var _handleLeave = function _handleLeave(e, props) {
51583
+ if (!props.onLeave) {
51584
+ return;
51585
+ }
51586
+
51587
+ var onLeave = props.onLeave,
51588
+ emoji = _getSanitizedData(props);
51589
+
51590
+ onLeave(emoji, e);
51591
+ };
51592
+
51593
+ var _isNumeric = function _isNumeric(value) {
51594
+ return !isNaN(value - parseFloat(value));
51595
+ };
51596
+
51597
+ var _convertStyleToCSS = function _convertStyleToCSS(style) {
51598
+ var div = document.createElement('div');
51599
+
51600
+ for (var key in style) {
51601
+ var value = style[key];
51602
+
51603
+ if (_isNumeric(value)) {
51604
+ value += 'px';
51605
+ }
51606
+
51607
+ div.style[key] = value;
51608
+ }
51609
+
51610
+ return div.getAttribute('style');
51611
+ };
51612
+
51613
+ var NimbleEmoji = function NimbleEmoji(props) {
51614
+ if (props.data.compressed) {
51615
+ (0, _data.uncompress)(props.data);
51616
+ }
51617
+
51618
+ for (var k in NimbleEmoji.defaultProps) {
51619
+ if (props[k] == undefined && NimbleEmoji.defaultProps[k] != undefined) {
51620
+ props[k] = NimbleEmoji.defaultProps[k];
51621
+ }
51622
+ }
51623
+
51624
+ var data = _getData(props);
51625
+
51626
+ if (!data) {
51627
+ if (props.fallback) {
51628
+ return props.fallback(null, props);
51629
+ } else {
51630
+ return null;
51631
+ }
51632
+ }
51633
+
51634
+ var unified = data.unified,
51635
+ custom = data.custom,
51636
+ short_names = data.short_names,
51637
+ imageUrl = data.imageUrl,
51638
+ style = {},
51639
+ children = props.children,
51640
+ className = 'emoji-mart-emoji',
51641
+ nativeEmoji = unified && (0, _utils.unifiedToNative)(unified),
51642
+ label = [nativeEmoji].concat(short_names).filter(Boolean).join(', '),
51643
+ title = null;
51644
+
51645
+ if (!unified && !custom) {
51646
+ if (props.fallback) {
51647
+ return props.fallback(data, props);
51648
+ } else {
51649
+ return null;
51650
+ }
51651
+ }
51652
+
51653
+ if (props.tooltip) {
51654
+ title = short_names[0];
51655
+ }
51656
+
51657
+ if (props["native"] && unified) {
51658
+ className += ' emoji-mart-emoji-native';
51659
+ style = {
51660
+ fontSize: props.size
51661
+ };
51662
+ children = nativeEmoji;
51663
+
51664
+ if (props.forceSize) {
51665
+ style.display = 'inline-block';
51666
+ style.width = props.size;
51667
+ style.height = props.size;
51668
+ style.wordBreak = 'keep-all';
51669
+ }
51670
+ } else if (custom) {
51671
+ className += ' emoji-mart-emoji-custom';
51672
+ style = {
51673
+ width: props.size,
51674
+ height: props.size,
51675
+ display: 'inline-block'
51676
+ };
51677
+
51678
+ if (data.spriteUrl) {
51679
+ style = _objectSpread({}, style, {
51680
+ backgroundImage: "url(".concat(data.spriteUrl, ")"),
51681
+ backgroundSize: "".concat(100 * props.sheetColumns, "% ").concat(100 * props.sheetRows, "%"),
51682
+ backgroundPosition: _getPosition(props)
51683
+ });
51684
+ } else {
51685
+ style = _objectSpread({}, style, {
51686
+ backgroundImage: "url(".concat(imageUrl, ")"),
51687
+ backgroundSize: 'contain',
51688
+ backgroundRepeat: 'no-repeat',
51689
+ backgroundPosition: 'center'
51690
+ });
51691
+ }
51692
+ } else {
51693
+ var setHasEmoji = data["has_img_".concat(props.set)] == undefined || data["has_img_".concat(props.set)];
51694
+
51695
+ if (!setHasEmoji) {
51696
+ if (props.fallback) {
51697
+ return props.fallback(data, props);
51698
+ } else {
51699
+ return null;
51700
+ }
51701
+ } else {
51702
+ style = {
51703
+ width: props.size,
51704
+ height: props.size,
51705
+ display: 'inline-block',
51706
+ backgroundImage: "url(".concat(props.backgroundImageFn(props.set, props.sheetSize), ")"),
51707
+ backgroundSize: "".concat(100 * props.sheetColumns, "% ").concat(100 * props.sheetRows, "%"),
51708
+ backgroundPosition: _getPosition(props)
51709
+ };
51710
+ }
51711
+ }
51712
+
51713
+ var Tag = {
51714
+ name: 'span',
51715
+ props: {}
51716
+ };
51717
+
51718
+ if (props.onClick && props.useButton) {
51719
+ Tag.name = 'button';
51720
+ Tag.props = {
51721
+ type: 'button'
51722
+ };
51723
+ }
51724
+
51725
+ if (props.html) {
51726
+ style = _convertStyleToCSS(style);
51727
+ return "<".concat(Tag.name, " style='").concat(style, "' aria-label='").concat(label, "' ").concat(title ? "title='".concat(title, "'") : '', " class='").concat(className, "'>").concat(children || '', "</").concat(Tag.name, ">");
51728
+ } else {
51729
+ return _react["default"].createElement(Tag.name, (0, _extends2["default"])({
51730
+ onClick: function onClick(e) {
51731
+ return _handleClick(e, props);
51732
+ },
51733
+ onMouseEnter: function onMouseEnter(e) {
51734
+ return _handleOver(e, props);
51735
+ },
51736
+ onMouseLeave: function onMouseLeave(e) {
51737
+ return _handleLeave(e, props);
51738
+ },
51739
+ "aria-label": label,
51740
+ title: title,
51741
+ className: className
51742
+ }, Tag.props), _react["default"].createElement("span", {
51743
+ style: style
51744
+ }, children));
51745
+ }
51746
+ };
51747
+
51748
+ NimbleEmoji.propTypes
51749
+ /* remove-proptypes */
51750
+ = _objectSpread({}, _sharedProps.EmojiPropTypes, {
51751
+ data: _propTypes["default"].object.isRequired
51752
+ });
51753
+ NimbleEmoji.defaultProps = _sharedDefaultProps.EmojiDefaultProps;
51754
+ var _default = NimbleEmoji;
51755
+ exports["default"] = _default;
51756
+ } (nimbleEmoji));
51757
+ return nimbleEmoji;
51758
+ }
51759
+
51682
51760
  var notFound = {};
51683
51761
 
51684
51762
  window.StreamChat.StreamChat=StreamChat;window.StreamChat.logChatPromiseExecution=logChatPromiseExecution;window.StreamChat.Channel=Channel;window.ICAL=window.ICAL||{};
@@ -51712,7 +51790,7 @@ var StreamChatReact = (function (exports, React$2, streamChat, ReactDOM) {
51712
51790
 
51713
51791
  var _propTypes = _interopRequireDefault(requirePropTypes());
51714
51792
 
51715
- var _nimbleEmoji = _interopRequireDefault(nimbleEmoji$1);
51793
+ var _nimbleEmoji = _interopRequireDefault(requireNimbleEmoji());
51716
51794
 
51717
51795
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
51718
51796
 
@@ -51806,7 +51884,7 @@ var StreamChatReact = (function (exports, React$2, streamChat, ReactDOM) {
51806
51884
 
51807
51885
  var _utils = requireUtils();
51808
51886
 
51809
- var _nimbleEmoji = _interopRequireDefault(nimbleEmoji$1);
51887
+ var _nimbleEmoji = _interopRequireDefault(requireNimbleEmoji());
51810
51888
 
51811
51889
  var _notFound = _interopRequireDefault(requireNotFound());
51812
51890
 
@@ -52200,7 +52278,7 @@ var StreamChatReact = (function (exports, React$2, streamChat, ReactDOM) {
52200
52278
 
52201
52279
  var _propTypes = _interopRequireDefault(requirePropTypes());
52202
52280
 
52203
- var _nimbleEmoji = _interopRequireDefault(nimbleEmoji$1);
52281
+ var _nimbleEmoji = _interopRequireDefault(requireNimbleEmoji());
52204
52282
 
52205
52283
  var _skins = _interopRequireDefault(requireSkins());
52206
52284
 
@@ -52437,7 +52515,7 @@ var StreamChatReact = (function (exports, React$2, streamChat, ReactDOM) {
52437
52515
 
52438
52516
  var _utils = requireUtils();
52439
52517
 
52440
- var _nimbleEmoji = _interopRequireDefault(nimbleEmoji$1);
52518
+ var _nimbleEmoji = _interopRequireDefault(requireNimbleEmoji());
52441
52519
 
52442
52520
  var _skinsEmoji = _interopRequireDefault(requireSkinsEmoji());
52443
52521
 
@@ -76590,7 +76668,7 @@ var StreamChatReact = (function (exports, React$2, streamChat, ReactDOM) {
76590
76668
  }, error);
76591
76669
  };
76592
76670
 
76593
- var Image = function Image(_ref) {
76671
+ var Image$1 = function Image(_ref) {
76594
76672
  var src = _ref.src,
76595
76673
  _ref$alt = _ref.alt,
76596
76674
  alt = _ref$alt === void 0 ? '' : _ref$alt,
@@ -77238,7 +77316,7 @@ var StreamChatReact = (function (exports, React$2, streamChat, ReactDOM) {
77238
77316
  }));
77239
77317
  },
77240
77318
  image: function image(tag) {
77241
- return React__default["default"].createElement(Image, Object.assign({}, tag.attributes, {
77319
+ return React__default["default"].createElement(Image$1, Object.assign({}, tag.attributes, {
77242
77320
  key: tag.key,
77243
77321
  src: tag.attributes.src
77244
77322
  }));
@@ -77534,7 +77612,7 @@ var StreamChatReact = (function (exports, React$2, streamChat, ReactDOM) {
77534
77612
  Col: Col,
77535
77613
  Error: Error$1,
77536
77614
  Icon: Icon,
77537
- Image: Image,
77615
+ Image: Image$1,
77538
77616
  Input: Input,
77539
77617
  Loading: Loading,
77540
77618
  MD: MD,
@@ -77676,6 +77754,8 @@ var StreamChatReact = (function (exports, React$2, streamChat, ReactDOM) {
77676
77754
  exports.SendIconV1 = SendIconV1;
77677
77755
  exports.SendIconV2 = SendIconV2;
77678
77756
  exports.SimpleReactionsList = SimpleReactionsList;
77757
+ exports.SpriteImage = SpriteImage;
77758
+ exports.StreamEmoji = StreamEmoji;
77679
77759
  exports.Streami18n = Streami18n;
77680
77760
  exports.Thread = Thread;
77681
77761
  exports.ThreadHeader = ThreadHeader;
@@ -77702,6 +77782,7 @@ var StreamChatReact = (function (exports, React$2, streamChat, ReactDOM) {
77702
77782
  exports.deTranslations = deTranslations;
77703
77783
  exports.defaultDateTimeParser = defaultDateTimeParser;
77704
77784
  exports.defaultPinPermissions = defaultPinPermissions;
77785
+ exports.defaultReactionOptions = defaultReactionOptions;
77705
77786
  exports.defaultScrollToItem = defaultScrollToItem;
77706
77787
  exports.defaultTimestampFormat = defaultTimestampFormat;
77707
77788
  exports.defaultTranslatorFunction = defaultTranslatorFunction;