stream-chat-react 14.9.0 → 14.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (40) hide show
  1. package/dist/cjs/channel-detail.js +30 -22
  2. package/dist/cjs/channel-detail.js.map +1 -1
  3. package/dist/cjs/index.js +51 -57
  4. package/dist/cjs/index.js.map +1 -1
  5. package/dist/cjs/{useChannelHeaderOnlineStatus.72753090.js → useChannelHeaderOnlineStatus.6ace991c.js} +42 -26
  6. package/dist/cjs/useChannelHeaderOnlineStatus.6ace991c.js.map +1 -0
  7. package/dist/cjs/useNotificationApi.bf76a16b.js.map +1 -1
  8. package/dist/es/channel-detail.mjs +30 -22
  9. package/dist/es/channel-detail.mjs.map +1 -1
  10. package/dist/es/index.mjs +51 -57
  11. package/dist/es/index.mjs.map +1 -1
  12. package/dist/es/{useChannelHeaderOnlineStatus.c86db868.mjs → useChannelHeaderOnlineStatus.d6065c22.mjs} +37 -27
  13. package/dist/es/useChannelHeaderOnlineStatus.d6065c22.mjs.map +1 -0
  14. package/dist/es/useNotificationApi.ed6bff88.mjs.map +1 -1
  15. package/dist/types/components/Avatar/Avatar.d.ts +7 -2
  16. package/dist/types/components/Avatar/Avatar.d.ts.map +1 -1
  17. package/dist/types/components/Avatar/utils.d.ts +3 -0
  18. package/dist/types/components/Avatar/utils.d.ts.map +1 -0
  19. package/dist/types/components/ChannelListItem/utils.d.ts.map +1 -1
  20. package/dist/types/components/Dialog/components/ContextMenu.d.ts.map +1 -1
  21. package/dist/types/components/Message/MessageRepliesCountButton.d.ts.map +1 -1
  22. package/dist/types/components/Message/MessageUI.d.ts.map +1 -1
  23. package/dist/types/components/Poll/PollOptionSelector.d.ts.map +1 -1
  24. package/dist/types/components/Poll/PollVote.d.ts.map +1 -1
  25. package/dist/types/components/Reactions/MessageReactionsDetail.d.ts.map +1 -1
  26. package/dist/types/components/Search/SearchResults/SearchResultItem.d.ts.map +1 -1
  27. package/dist/types/components/TextareaComposer/SuggestionList/MentionItem/UserItem.d.ts.map +1 -1
  28. package/dist/types/components/Threads/ThreadList/ThreadListItemUI.d.ts.map +1 -1
  29. package/dist/types/components/TypingIndicator/TypingIndicator.d.ts.map +1 -1
  30. package/dist/types/components/TypingIndicator/hooks/useDebouncedTypingActive.d.ts +2 -8
  31. package/dist/types/components/TypingIndicator/hooks/useDebouncedTypingActive.d.ts.map +1 -1
  32. package/dist/types/context/ComponentContext.d.ts +4 -0
  33. package/dist/types/context/ComponentContext.d.ts.map +1 -1
  34. package/dist/types/plugins/ChannelDetail/Views/ChannelMediaView/ChannelMediaView.d.ts.map +1 -1
  35. package/dist/types/plugins/ChannelDetail/Views/ChannelMembersView/ChannelMembersAddView.d.ts.map +1 -1
  36. package/dist/types/plugins/ChannelDetail/Views/ChannelMembersView/ChannelMembersBrowseView.d.ts.map +1 -1
  37. package/dist/types/plugins/ChannelDetail/Views/PinnedMessagesView/PinnedMessagesView.d.ts.map +1 -1
  38. package/package.json +1 -1
  39. package/dist/cjs/useChannelHeaderOnlineStatus.72753090.js.map +0 -1
  40. package/dist/es/useChannelHeaderOnlineStatus.c86db868.mjs.map +0 -1
@@ -535,16 +535,19 @@ var getInitials = (name) => {
535
535
  /**
536
536
  * A round avatar image with fallback to username's first letter
537
537
  */
538
- var Avatar = ({ className, FallbackIcon = require_useNotificationApi.IconUser, imageUrl, isOnline, size, userName, ...rest }) => {
538
+ var Avatar = ({ className, FallbackIcon = require_useNotificationApi.IconUser, imageUrl, initials: customInitials, isOnline, size, userName, ...rest }) => {
539
539
  const [error, setError] = (0, react.useState)(false);
540
540
  (0, react.useEffect)(() => () => setError(false), [imageUrl]);
541
- const nameString = userName?.toString() || "";
542
- const avatarImageAlt = nameString.trim();
541
+ const nameString = userName?.toString().trim() || "";
543
542
  const sizeAwareInitials = (0, react.useMemo)(() => {
544
- const initials = getInitials(nameString);
543
+ const initials = customInitials || getInitials(nameString);
545
544
  if (size === "sm" || size === "xs") return initials.charAt(0);
546
545
  return initials;
547
- }, [nameString, size]);
546
+ }, [
547
+ nameString,
548
+ size,
549
+ customInitials
550
+ ]);
548
551
  const showImage = typeof imageUrl === "string" && imageUrl && !error;
549
552
  return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
550
553
  className: (0, clsx.default)(`str-chat__avatar`, className, {
@@ -561,7 +564,7 @@ var Avatar = ({ className, FallbackIcon = require_useNotificationApi.IconUser, i
561
564
  "str-chat__avatar-status-badge--offline": !isOnline,
562
565
  "str-chat__avatar-status-badge--online": isOnline
563
566
  }) }), showImage ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)("img", {
564
- alt: avatarImageAlt,
567
+ alt: nameString,
565
568
  className: "str-chat__avatar-image",
566
569
  "data-testid": "avatar-img",
567
570
  onError: () => setError(true),
@@ -719,21 +722,24 @@ var BaseContextMenuButton = ({ children, className, details, hasSubMenu, Icon, l
719
722
  !!hasSubMenu && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(SubmenuIcon, { className: "str-chat__context-menu__button__submenu-icon" })
720
723
  ]
721
724
  });
722
- var UserContextMenuButton = ({ children, className, imageUrl, role = "menuitem", userName, ...props }) => /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("button", {
723
- ...props,
724
- className: (0, clsx.default)("str-chat__context-menu__button str-chat__user-context-menu__button", className),
725
- role,
726
- type: "button",
727
- children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(Avatar, {
728
- "aria-hidden": true,
729
- imageUrl,
730
- size: "sm",
731
- userName
732
- }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
733
- className: "str-chat__context-menu__button__label",
734
- children: children ?? userName
735
- })]
736
- });
725
+ var UserContextMenuButton = ({ children, className, imageUrl, role = "menuitem", userName, ...props }) => {
726
+ const { Avatar: Avatar$1 = Avatar } = require_useNotificationApi.useComponentContext();
727
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("button", {
728
+ ...props,
729
+ className: (0, clsx.default)("str-chat__context-menu__button str-chat__user-context-menu__button", className),
730
+ role,
731
+ type: "button",
732
+ children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(Avatar$1, {
733
+ "aria-hidden": true,
734
+ imageUrl,
735
+ size: "sm",
736
+ userName
737
+ }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
738
+ className: "str-chat__context-menu__button__label",
739
+ children: children ?? userName
740
+ })]
741
+ });
742
+ };
737
743
  var EmojiContextMenuButton = ({ children, className, emoji, label, role = "menuitem", ...props }) => /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("button", {
738
744
  ...props,
739
745
  className: (0, clsx.default)("str-chat__context-menu__button str-chat__emoji-context-menu__button", className),
@@ -1489,6 +1495,13 @@ var GlobalModal = ({ "aria-describedby": ariaDescribedby, "aria-label": ariaLabe
1489
1495
  });
1490
1496
  };
1491
1497
  //#endregion
1498
+ //#region src/components/Avatar/utils.ts
1499
+ var extractDisplayInfo = ({ user }) => ({
1500
+ id: user?.id,
1501
+ imageUrl: user?.image,
1502
+ userName: user?.name
1503
+ });
1504
+ //#endregion
1492
1505
  //#region src/components/Message/renderText/remarkPlugins/htmlToTextPlugin.ts
1493
1506
  var visitor = (node) => {
1494
1507
  if (node.type !== "html") return;
@@ -3265,10 +3278,7 @@ var getGroupChannelDisplayInfo = (channel) => {
3265
3278
  for (const member of members) {
3266
3279
  const { user } = member;
3267
3280
  if (!user?.name && !user?.image) continue;
3268
- memberList.push({
3269
- imageUrl: user.image,
3270
- userName: user.name
3271
- });
3281
+ memberList.push(extractDisplayInfo(member));
3272
3282
  }
3273
3283
  return { members: memberList };
3274
3284
  };
@@ -4255,6 +4265,12 @@ Object.defineProperty(exports, "createRovingFocusKeyDownHandler", {
4255
4265
  return createRovingFocusKeyDownHandler;
4256
4266
  }
4257
4267
  });
4268
+ Object.defineProperty(exports, "extractDisplayInfo", {
4269
+ enumerable: true,
4270
+ get: function() {
4271
+ return extractDisplayInfo;
4272
+ }
4273
+ });
4258
4274
  Object.defineProperty(exports, "formatTime", {
4259
4275
  enumerable: true,
4260
4276
  get: function() {
@@ -4466,4 +4482,4 @@ Object.defineProperty(exports, "useStableCallback", {
4466
4482
  }
4467
4483
  });
4468
4484
 
4469
- //# sourceMappingURL=useChannelHeaderOnlineStatus.72753090.js.map
4485
+ //# sourceMappingURL=useChannelHeaderOnlineStatus.6ace991c.js.map