stream-chat-react 11.23.8 → 11.23.10

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.
@@ -1 +1 @@
1
- {"version":3,"file":"useCreateChannelStateContext.d.ts","sourceRoot":"","sources":["../../../../src/components/Channel/hooks/useCreateChannelStateContext.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,sCAAsC,CAAC;AAErF,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAC;AAEtE,eAAO,MAAM,4BAA4B;8BAIX,MAAM,EAAE;;kDAkKrC,CAAC"}
1
+ {"version":3,"file":"useCreateChannelStateContext.d.ts","sourceRoot":"","sources":["../../../../src/components/Channel/hooks/useCreateChannelStateContext.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,sCAAsC,CAAC;AAErF,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAC;AAEtE,eAAO,MAAM,4BAA4B;8BAIX,MAAM,EAAE;;kDAmKrC,CAAC"}
@@ -1,8 +1,8 @@
1
1
  import { useMemo } from 'react';
2
2
  import { isDate, isDayOrMoment } from '../../../context/TranslationContext';
3
3
  export var useCreateChannelStateContext = function (value) {
4
- var _a;
5
- var acceptedFiles = value.acceptedFiles, channel = value.channel, _b = value.channelCapabilitiesArray, channelCapabilitiesArray = _b === void 0 ? [] : _b, channelConfig = value.channelConfig, debounceURLEnrichmentMs = value.debounceURLEnrichmentMs, dragAndDropWindow = value.dragAndDropWindow, enrichURLForPreview = value.enrichURLForPreview, giphyVersion = value.giphyVersion, error = value.error, findURLFn = value.findURLFn, hasMore = value.hasMore, hasMoreNewer = value.hasMoreNewer, imageAttachmentSizeHandler = value.imageAttachmentSizeHandler, suppressAutoscroll = value.suppressAutoscroll, highlightedMessageId = value.highlightedMessageId, loading = value.loading, loadingMore = value.loadingMore, maxNumberOfFiles = value.maxNumberOfFiles, members = value.members, _c = value.messages, messages = _c === void 0 ? [] : _c, multipleUploads = value.multipleUploads, mutes = value.mutes, notifications = value.notifications, onLinkPreviewDismissed = value.onLinkPreviewDismissed, pinnedMessages = value.pinnedMessages, quotedMessage = value.quotedMessage, _d = value.read, read = _d === void 0 ? {} : _d, shouldGenerateVideoThumbnail = value.shouldGenerateVideoThumbnail, skipMessageDataMemoization = value.skipMessageDataMemoization, thread = value.thread, threadHasMore = value.threadHasMore, threadLoadingMore = value.threadLoadingMore, _e = value.threadMessages, threadMessages = _e === void 0 ? [] : _e, channelUnreadUiState = value.channelUnreadUiState, videoAttachmentSizeHandler = value.videoAttachmentSizeHandler, watcherCount = value.watcherCount, watcher_count = value.watcher_count, watchers = value.watchers;
4
+ var _a, _b;
5
+ var acceptedFiles = value.acceptedFiles, channel = value.channel, _c = value.channelCapabilitiesArray, channelCapabilitiesArray = _c === void 0 ? [] : _c, channelConfig = value.channelConfig, debounceURLEnrichmentMs = value.debounceURLEnrichmentMs, dragAndDropWindow = value.dragAndDropWindow, enrichURLForPreview = value.enrichURLForPreview, giphyVersion = value.giphyVersion, error = value.error, findURLFn = value.findURLFn, hasMore = value.hasMore, hasMoreNewer = value.hasMoreNewer, imageAttachmentSizeHandler = value.imageAttachmentSizeHandler, suppressAutoscroll = value.suppressAutoscroll, highlightedMessageId = value.highlightedMessageId, loading = value.loading, loadingMore = value.loadingMore, maxNumberOfFiles = value.maxNumberOfFiles, members = value.members, _d = value.messages, messages = _d === void 0 ? [] : _d, multipleUploads = value.multipleUploads, mutes = value.mutes, notifications = value.notifications, onLinkPreviewDismissed = value.onLinkPreviewDismissed, pinnedMessages = value.pinnedMessages, quotedMessage = value.quotedMessage, _e = value.read, read = _e === void 0 ? {} : _e, shouldGenerateVideoThumbnail = value.shouldGenerateVideoThumbnail, skipMessageDataMemoization = value.skipMessageDataMemoization, thread = value.thread, threadHasMore = value.threadHasMore, threadLoadingMore = value.threadLoadingMore, _f = value.threadMessages, threadMessages = _f === void 0 ? [] : _f, channelUnreadUiState = value.channelUnreadUiState, videoAttachmentSizeHandler = value.videoAttachmentSizeHandler, watcherCount = value.watcherCount, watcher_count = value.watcher_count, watchers = value.watchers;
6
6
  var channelId = channel.cid;
7
7
  var lastRead = channel.initialized && ((_a = channel.lastRead()) === null || _a === void 0 ? void 0 : _a.getTime());
8
8
  var membersLength = Object.keys(members || []).length;
@@ -83,6 +83,7 @@ export var useCreateChannelStateContext = function (value) {
83
83
  }); },
84
84
  // eslint-disable-next-line react-hooks/exhaustive-deps
85
85
  [
86
+ (_b = channel.data) === null || _b === void 0 ? void 0 : _b.name,
86
87
  channelId,
87
88
  channelUnreadUiState,
88
89
  debounceURLEnrichmentMs,
@@ -1 +1 @@
1
- {"version":3,"file":"ChannelHeader.d.ts","sourceRoot":"","sources":["../../../src/components/ChannelHeader/ChannelHeader.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAI1B,OAAO,EAAE,WAAW,EAA2B,MAAM,WAAW,CAAC;AAOjE,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAC;AAEnE,MAAM,MAAM,kBAAkB,GAAG;IAC/B,4LAA4L;IAC5L,MAAM,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;IAC1C,sEAAsE;IACtE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,iEAAiE;IACjE,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,0KAA0K;IAC1K,QAAQ,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IAC/B,yBAAyB;IACzB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAiEF;;GAEG;AACH,eAAO,MAAM,aAAa,4FA/DjB,kBAAkB,sBA+DuE,CAAC"}
1
+ {"version":3,"file":"ChannelHeader.d.ts","sourceRoot":"","sources":["../../../src/components/ChannelHeader/ChannelHeader.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAI1B,OAAO,EAAE,WAAW,EAA2B,MAAM,WAAW,CAAC;AAOjE,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAC;AAEnE,MAAM,MAAM,kBAAkB,GAAG;IAC/B,4LAA4L;IAC5L,MAAM,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;IAC1C,sEAAsE;IACtE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,iEAAiE;IACjE,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,0KAA0K;IAC1K,QAAQ,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IAC/B,yBAAyB;IACzB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,aAAa,4FAGjB,kBAAkB,sBA0D1B,CAAC"}
@@ -5,7 +5,10 @@ import { useChannelPreviewInfo } from '../ChannelPreview/hooks/useChannelPreview
5
5
  import { useChannelStateContext } from '../../context/ChannelStateContext';
6
6
  import { useChatContext } from '../../context/ChatContext';
7
7
  import { useTranslationContext } from '../../context/TranslationContext';
8
- var UnMemoizedChannelHeader = function (props) {
8
+ /**
9
+ * The ChannelHeader component renders some basic information about a Channel.
10
+ */
11
+ export var ChannelHeader = function (props) {
9
12
  var _a = props.Avatar, Avatar = _a === void 0 ? DefaultAvatar : _a, _b = props.MenuIcon, MenuIcon = _b === void 0 ? DefaultMenuIcon : _b, overrideImage = props.image, live = props.live, overrideTitle = props.title;
10
13
  var _c = useChannelStateContext('ChannelHeader'), channel = _c.channel, watcher_count = _c.watcher_count;
11
14
  var openMobileNav = useChatContext('ChannelHeader').openMobileNav;
@@ -35,7 +38,3 @@ var UnMemoizedChannelHeader = function (props) {
35
38
  ' ')),
36
39
  t('{{ watcherCount }} online', { watcherCount: watcher_count })))));
37
40
  };
38
- /**
39
- * The ChannelHeader component renders some basic information about a Channel.
40
- */
41
- export var ChannelHeader = React.memo(UnMemoizedChannelHeader);
@@ -1 +1 @@
1
- {"version":3,"file":"useChannelPreviewInfo.d.ts","sourceRoot":"","sources":["../../../../src/components/ChannelPreview/hooks/useChannelPreviewInfo.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAG3C,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAC;AAItE,MAAM,MAAM,wBAAwB,CAAC,kBAAkB,SAAS,yBAAyB,IAAI;IAC3F,OAAO,EAAE,OAAO,CAAC,kBAAkB,CAAC,CAAC;IACrC,sEAAsE;IACtE,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,yBAAyB;IACzB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF,eAAO,MAAM,qBAAqB;;;CAkCjC,CAAC"}
1
+ {"version":3,"file":"useChannelPreviewInfo.d.ts","sourceRoot":"","sources":["../../../../src/components/ChannelPreview/hooks/useChannelPreviewInfo.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAG3C,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAC;AAItE,MAAM,MAAM,wBAAwB,CAAC,kBAAkB,SAAS,yBAAyB,IAAI;IAC3F,OAAO,EAAE,OAAO,CAAC,kBAAkB,CAAC,CAAC;IACrC,sEAAsE;IACtE,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,yBAAyB;IACzB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF,eAAO,MAAM,qBAAqB;;;CAmCjC,CAAC"}
@@ -3,26 +3,24 @@ import { getDisplayImage, getDisplayTitle } from '../utils';
3
3
  import { useChatContext } from '../../../context';
4
4
  export var useChannelPreviewInfo = function (props) {
5
5
  var channel = props.channel, overrideImage = props.overrideImage, overrideTitle = props.overrideTitle;
6
- var client = useChatContext('ChannelPreview').client;
7
- var _a = useState(getDisplayTitle(channel, client.user)), displayTitle = _a[0], setDisplayTitle = _a[1];
8
- var _b = useState(getDisplayImage(channel, client.user)), displayImage = _b[0], setDisplayImage = _b[1];
6
+ var client = useChatContext('useChannelPreviewInfo').client;
7
+ var _a = useState(function () { return overrideTitle || getDisplayTitle(channel, client.user); }), displayTitle = _a[0], setDisplayTitle = _a[1];
8
+ var _b = useState(function () { return overrideImage || getDisplayImage(channel, client.user); }), displayImage = _b[0], setDisplayImage = _b[1];
9
9
  useEffect(function () {
10
- var handleEvent = function () {
11
- setDisplayTitle(function (displayTitle) {
12
- var newDisplayTitle = getDisplayTitle(channel, client.user);
13
- return displayTitle !== newDisplayTitle ? newDisplayTitle : displayTitle;
14
- });
15
- setDisplayImage(function (displayImage) {
16
- var newDisplayImage = getDisplayImage(channel, client.user);
17
- return displayImage !== newDisplayImage ? newDisplayImage : displayImage;
18
- });
10
+ if (overrideTitle && overrideImage)
11
+ return;
12
+ var updateTitles = function () {
13
+ if (!overrideTitle)
14
+ setDisplayTitle(getDisplayTitle(channel, client.user));
15
+ if (!overrideImage)
16
+ setDisplayImage(getDisplayImage(channel, client.user));
19
17
  };
20
- client.on('user.updated', handleEvent);
18
+ updateTitles();
19
+ client.on('user.updated', updateTitles);
21
20
  return function () {
22
- client.off('user.updated', handleEvent);
21
+ client.off('user.updated', updateTitles);
23
22
  };
24
- // eslint-disable-next-line react-hooks/exhaustive-deps
25
- }, []);
23
+ }, [channel, channel.data, client, overrideImage, overrideTitle]);
26
24
  return {
27
25
  displayImage: overrideImage || displayImage,
28
26
  displayTitle: overrideTitle || displayTitle,
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/components/ChannelPreview/utils.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAI1B,OAAO,KAAK,EAAE,OAAO,EAAwB,YAAY,EAAE,MAAM,aAAa,CAAC;AAE/E,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,kCAAkC,CAAC;AAEhF,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAC;AAEnE,eAAO,MAAM,iBAAiB,SAAU,MAAM,sBAAmD,CAAC;AAElG,eAAO,MAAM,uBAAuB,8HAI/B,uBAAuB,CAAC,GAAG,CAAC,iBACjB,uBAAuB,CAAC,cAAc,CAAC,KACpD,MAAM,GAAG,WA6BX,CAAC;AAEF,eAAO,MAAM,eAAe,4MAiB3B,CAAC;AAEF,eAAO,MAAM,eAAe,4MAiB3B,CAAC"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/components/ChannelPreview/utils.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAI1B,OAAO,KAAK,EAAE,OAAO,EAAwB,YAAY,EAAE,MAAM,aAAa,CAAC;AAE/E,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,kCAAkC,CAAC;AAEhF,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAC;AAEnE,eAAO,MAAM,iBAAiB,SAAU,MAAM,sBAAmD,CAAC;AAElG,eAAO,MAAM,uBAAuB,8HAI/B,uBAAuB,CAAC,GAAG,CAAC,iBACjB,uBAAuB,CAAC,cAAc,CAAC,KACpD,MAAM,GAAG,WA6BX,CAAC;AAgBF,eAAO,MAAM,eAAe,4MAK4B,CAAC;AAEzD,eAAO,MAAM,eAAe,4MAK6B,CAAC"}
@@ -25,27 +25,15 @@ export var getLatestMessagePreview = function (channel, t, userLanguage) {
25
25
  }
26
26
  return t('Empty message...');
27
27
  };
28
- export var getDisplayTitle = function (channel, currentUser) {
28
+ var getChannelDisplayInfo = function (info, channel, currentUser) {
29
29
  var _a, _b;
30
- var title = (_a = channel.data) === null || _a === void 0 ? void 0 : _a.name;
30
+ if ((_a = channel.data) === null || _a === void 0 ? void 0 : _a[info])
31
+ return channel.data[info];
31
32
  var members = Object.values(channel.state.members);
32
- if (!title && members.length === 2) {
33
- var otherMember = members.find(function (member) { var _a; return ((_a = member.user) === null || _a === void 0 ? void 0 : _a.id) !== (currentUser === null || currentUser === void 0 ? void 0 : currentUser.id); });
34
- if ((_b = otherMember === null || otherMember === void 0 ? void 0 : otherMember.user) === null || _b === void 0 ? void 0 : _b.name) {
35
- title = otherMember.user.name;
36
- }
37
- }
38
- return title;
39
- };
40
- export var getDisplayImage = function (channel, currentUser) {
41
- var _a, _b;
42
- var image = (_a = channel.data) === null || _a === void 0 ? void 0 : _a.image;
43
- var members = Object.values(channel.state.members);
44
- if (!image && members.length === 2) {
45
- var otherMember = members.find(function (member) { var _a; return ((_a = member.user) === null || _a === void 0 ? void 0 : _a.id) !== (currentUser === null || currentUser === void 0 ? void 0 : currentUser.id); });
46
- if ((_b = otherMember === null || otherMember === void 0 ? void 0 : otherMember.user) === null || _b === void 0 ? void 0 : _b.image) {
47
- image = otherMember.user.image;
48
- }
49
- }
50
- return image;
33
+ if (members.length !== 2)
34
+ return;
35
+ var otherMember = members.find(function (member) { var _a; return ((_a = member.user) === null || _a === void 0 ? void 0 : _a.id) !== (currentUser === null || currentUser === void 0 ? void 0 : currentUser.id); });
36
+ return (_b = otherMember === null || otherMember === void 0 ? void 0 : otherMember.user) === null || _b === void 0 ? void 0 : _b[info];
51
37
  };
38
+ export var getDisplayTitle = function (channel, currentUser) { return getChannelDisplayInfo('name', channel, currentUser); };
39
+ export var getDisplayImage = function (channel, currentUser) { return getChannelDisplayInfo('image', channel, currentUser); };
@@ -2,7 +2,7 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var Window = require('../../Window-60c672e3.js');
5
+ var Window = require('../../Window-2ad58fe5.js');
6
6
  var React = require('react');
7
7
  var Picker = require('@emoji-mart/react');
8
8
  require('dayjs');
@@ -1 +1 @@
1
- {"version":3,"file":"MessageOptions.d.ts","sourceRoot":"","sources":["../../../src/components/Message/MessageOptions.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAW1B,OAAO,EAAE,mBAAmB,EAAqB,MAAM,8BAA8B,CAAC;AAEtF,OAAO,KAAK,EAAE,yBAAyB,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAG9E,MAAM,MAAM,mBAAmB,CAC7B,kBAAkB,SAAS,yBAAyB,GAAG,yBAAyB,IAC9E,OAAO,CAAC,IAAI,CAAC,mBAAmB,CAAC,kBAAkB,CAAC,EAAE,kBAAkB,CAAC,CAAC,GAAG;IAE/E,WAAW,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;IAE7C,cAAc,CAAC,EAAE,OAAO,CAAC;IAEzB,iBAAiB,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;IAEpD,YAAY,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;IAE9C,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,UAAU,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;CAC7C,CAAC;AAoFF,eAAO,MAAM,cAAc,gKAES,CAAC"}
1
+ {"version":3,"file":"MessageOptions.d.ts","sourceRoot":"","sources":["../../../src/components/Message/MessageOptions.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAW1B,OAAO,EAAE,mBAAmB,EAAqB,MAAM,8BAA8B,CAAC;AAEtF,OAAO,KAAK,EAAE,yBAAyB,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAG9E,MAAM,MAAM,mBAAmB,CAC7B,kBAAkB,SAAS,yBAAyB,GAAG,yBAAyB,IAC9E,OAAO,CAAC,IAAI,CAAC,mBAAmB,CAAC,kBAAkB,CAAC,EAAE,kBAAkB,CAAC,CAAC,GAAG;IAE/E,WAAW,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;IAE7C,cAAc,CAAC,EAAE,OAAO,CAAC;IAEzB,iBAAiB,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;IAEpD,YAAY,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;IAE9C,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,UAAU,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;CAC7C,CAAC;AA+EF,eAAO,MAAM,cAAc,gKAES,CAAC"}
@@ -1,16 +1,15 @@
1
1
  import React from 'react';
2
2
  import { ActionsIcon as DefaultActionsIcon, ReactionIcon as DefaultReactionIcon, ThreadIcon as DefaultThreadIcon, } from './icons';
3
- import { MESSAGE_ACTIONS, showMessageActionsBox } from './utils';
3
+ import { MESSAGE_ACTIONS } from './utils';
4
4
  import { MessageActions } from '../MessageActions';
5
5
  import { useMessageContext } from '../../context/MessageContext';
6
6
  import { useTranslationContext } from '../../context';
7
7
  var UnMemoizedMessageOptions = function (props) {
8
8
  var _a = props.ActionsIcon, ActionsIcon = _a === void 0 ? DefaultActionsIcon : _a, _b = props.displayReplies, displayReplies = _b === void 0 ? true : _b, propHandleOpenThread = props.handleOpenThread, messageWrapperRef = props.messageWrapperRef, _c = props.ReactionIcon, ReactionIcon = _c === void 0 ? DefaultReactionIcon : _c, _d = props.theme, theme = _d === void 0 ? 'simple' : _d, _e = props.ThreadIcon, ThreadIcon = _e === void 0 ? DefaultThreadIcon : _e;
9
- var _f = useMessageContext('MessageOptions'), customMessageActions = _f.customMessageActions, getMessageActions = _f.getMessageActions, contextHandleOpenThread = _f.handleOpenThread, initialMessage = _f.initialMessage, message = _f.message, onReactionListClick = _f.onReactionListClick, showDetailedReactions = _f.showDetailedReactions, threadList = _f.threadList;
9
+ var _f = useMessageContext('MessageOptions'), getMessageActions = _f.getMessageActions, contextHandleOpenThread = _f.handleOpenThread, initialMessage = _f.initialMessage, message = _f.message, onReactionListClick = _f.onReactionListClick, showDetailedReactions = _f.showDetailedReactions, threadList = _f.threadList;
10
10
  var t = useTranslationContext('MessageOptions').t;
11
11
  var handleOpenThread = propHandleOpenThread || contextHandleOpenThread;
12
12
  var messageActions = getMessageActions();
13
- var showActionsBox = showMessageActionsBox(messageActions, threadList) || !!customMessageActions;
14
13
  var shouldShowReactions = messageActions.indexOf(MESSAGE_ACTIONS.react) > -1;
15
14
  var shouldShowReplies = messageActions.indexOf(MESSAGE_ACTIONS.reply) > -1 && displayReplies && !threadList;
16
15
  if (!message.type ||
@@ -24,7 +23,7 @@ var UnMemoizedMessageOptions = function (props) {
24
23
  }
25
24
  var rootClassName = "str-chat__message-".concat(theme, "__actions str-chat__message-options");
26
25
  return (React.createElement("div", { className: rootClassName, "data-testid": 'message-options' },
27
- showActionsBox && (React.createElement(MessageActions, { ActionsIcon: ActionsIcon, messageWrapperRef: messageWrapperRef })),
26
+ React.createElement(MessageActions, { ActionsIcon: ActionsIcon, messageWrapperRef: messageWrapperRef }),
28
27
  shouldShowReplies && (React.createElement("button", { "aria-label": t('aria/Open Thread'), className: "str-chat__message-".concat(theme, "__actions__action str-chat__message-").concat(theme, "__actions__action--thread str-chat__message-reply-in-thread-button"), "data-testid": 'thread-action', onClick: handleOpenThread },
29
28
  React.createElement(ThreadIcon, { className: 'str-chat__message-action-icon' }))),
30
29
  shouldShowReactions && (React.createElement("button", { "aria-expanded": showDetailedReactions, "aria-label": t('aria/Open Reaction Selector'), className: "str-chat__message-".concat(theme, "__actions__action str-chat__message-").concat(theme, "__actions__action--reactions str-chat__message-reactions-button"), "data-testid": 'message-reaction-action', onClick: onReactionListClick },
@@ -2,7 +2,7 @@ import type { TFunction } from 'i18next';
2
2
  import type { MessageResponse, Mute, StreamChat, UserResponse } from 'stream-chat';
3
3
  import type { PinPermissions } from './hooks';
4
4
  import type { MessageProps } from './types';
5
- import type { MessageContextValue, StreamMessage } from '../../context';
5
+ import type { ComponentContextValue, CustomMessageActions, MessageContextValue, StreamMessage } from '../../context';
6
6
  import type { DefaultStreamChatGenerics } from '../../types/types';
7
7
  /**
8
8
  * Following function validates a function which returns notification message.
@@ -39,7 +39,16 @@ export type Capabilities = {
39
39
  };
40
40
  export declare const getMessageActions: (actions: MessageActionsArray | boolean, { canDelete, canEdit, canFlag, canMarkUnread, canMute, canPin, canQuote, canReact, canReply, }: Capabilities) => MessageActionsArray<string>;
41
41
  export declare const ACTIONS_NOT_WORKING_IN_THREAD: string[];
42
+ /**
43
+ * @deprecated use `shouldRenderMessageActions` instead
44
+ */
42
45
  export declare const showMessageActionsBox: (actions: MessageActionsArray<string>, inThread?: boolean | undefined) => boolean;
46
+ export declare const shouldRenderMessageActions: <SCG extends DefaultStreamChatGenerics = DefaultStreamChatGenerics>({ customMessageActions, CustomMessageActionsList, inThread, messageActions, }: {
47
+ messageActions: MessageActionsArray<string>;
48
+ customMessageActions?: CustomMessageActions<SCG> | undefined;
49
+ CustomMessageActionsList?: import("react").ComponentType<import("..").CustomMessageActionsListProps<SCG>> | undefined;
50
+ inThread?: boolean | undefined;
51
+ }) => boolean;
43
52
  export declare const areMessagePropsEqual: <StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics>(prevProps: MessageProps<StreamChatGenerics, import("../../types/types").CustomTrigger> & {
44
53
  mutes?: Mute<StreamChatGenerics>[] | undefined;
45
54
  showDetailedReactions?: boolean | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/components/Message/utils.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,KAAK,EAAE,eAAe,EAAE,IAAI,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AACnF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAC9C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAC5C,OAAO,KAAK,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AACxE,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAC;AAEnE;;;GAGG;AACH,eAAO,MAAM,qBAAqB,8CACV,OAAO,2BAiB9B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,WAAW,2LAUvB,CAAC;AAEF,eAAO,MAAM,eAAe;;;;;;;;;;CAU3B,CAAC;AAEF,MAAM,MAAM,mBAAmB,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,IAAI,KAAK,CAChE,QAAQ,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,KAAK,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,GAAG,CAAC,CAC9E,CAAC;AAGF,eAAO,MAAM,qBAAqB,EAAE,cAwDnC,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACzB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF,eAAO,MAAM,iBAAiB,YACnB,mBAAmB,GAAG,OAAO,kGAWnC,YAAY,gCAmDhB,CAAC;AAEF,eAAO,MAAM,6BAA6B,UAKzC,CAAC;AAEF,eAAO,MAAM,qBAAqB,oDAErB,OAAO,GAAG,SAAS,YAsB/B,CAAC;AA4BF,eAAO,MAAM,oBAAoB;;;;;;aAsChC,CAAC;AAEF,eAAO,MAAM,sBAAsB;;;;aAgClC,CAAC;AAEF,eAAO,MAAM,mBAAmB,wJAIiD,CAAC;AAElF,eAAO,MAAM,qBAAqB,wJAIyB,CAAC;AAE5D,eAAO,MAAM,SAAS,yMASrB,CAAC;AAEF,eAAO,MAAM,sBAAsB,yMASlC,CAAC;AAEF,MAAM,WAAW,qBAAqB;IACpC,CAAC,kBAAkB,SAAS,yBAAyB,GAAG,yBAAyB,EAC/E,IAAI,EAAE,YAAY,CAAC,kBAAkB,CAAC,GACrC,MAAM,CAAC;CACX;AAED;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,EAAE,qBAAsD,CAAC;AAEvF,eAAO,MAAM,oBAAoB,mIAI5B,SAAS,iEAEW,qBAAqB,WAiD7C,CAAC;AAEF,eAAO,MAAM,YAAY,UAAW,MAAM,YAOzC,CAAC;AAEF,eAAO,MAAM,gBAAgB,gLAM4C,CAAC;AAE1E,eAAO,MAAM,eAAe,4KAIU,CAAC"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/components/Message/utils.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,KAAK,EAAE,eAAe,EAAE,IAAI,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AACnF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAC9C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAC5C,OAAO,KAAK,EACV,qBAAqB,EACrB,oBAAoB,EACpB,mBAAmB,EACnB,aAAa,EACd,MAAM,eAAe,CAAC;AACvB,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAC;AAEnE;;;GAGG;AACH,eAAO,MAAM,qBAAqB,8CACV,OAAO,2BAiB9B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,WAAW,2LAUvB,CAAC;AAEF,eAAO,MAAM,eAAe;;;;;;;;;;CAU3B,CAAC;AAEF,MAAM,MAAM,mBAAmB,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,IAAI,KAAK,CAChE,QAAQ,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,KAAK,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,GAAG,CAAC,CAC9E,CAAC;AAGF,eAAO,MAAM,qBAAqB,EAAE,cAwDnC,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACzB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF,eAAO,MAAM,iBAAiB,YACnB,mBAAmB,GAAG,OAAO,kGAWnC,YAAY,gCAmDhB,CAAC;AAEF,eAAO,MAAM,6BAA6B,UAKzC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,qBAAqB,oDAErB,OAAO,GAAG,SAAS,YACsC,CAAC;AAEvE,eAAO,MAAM,0BAA0B;;;;;aA6CtC,CAAC;AA4BF,eAAO,MAAM,oBAAoB;;;;;;aAsChC,CAAC;AAEF,eAAO,MAAM,sBAAsB;;;;aAgClC,CAAC;AAEF,eAAO,MAAM,mBAAmB,wJAIiD,CAAC;AAElF,eAAO,MAAM,qBAAqB,wJAIyB,CAAC;AAE5D,eAAO,MAAM,SAAS,yMASrB,CAAC;AAEF,eAAO,MAAM,sBAAsB,yMASlC,CAAC;AAEF,MAAM,WAAW,qBAAqB;IACpC,CAAC,kBAAkB,SAAS,yBAAyB,GAAG,yBAAyB,EAC/E,IAAI,EAAE,YAAY,CAAC,kBAAkB,CAAC,GACrC,MAAM,CAAC;CACX;AAED;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,EAAE,qBAAsD,CAAC;AAEvF,eAAO,MAAM,oBAAoB,mIAI5B,SAAS,iEAEW,qBAAqB,WAiD7C,CAAC;AAEF,eAAO,MAAM,YAAY,UAAW,MAAM,YAOzC,CAAC;AAEF,eAAO,MAAM,gBAAgB,gLAM4C,CAAC;AAE1E,eAAO,MAAM,eAAe,4KAIU,CAAC"}
@@ -146,18 +146,29 @@ export var ACTIONS_NOT_WORKING_IN_THREAD = [
146
146
  MESSAGE_ACTIONS.reply,
147
147
  MESSAGE_ACTIONS.markUnread,
148
148
  ];
149
- export var showMessageActionsBox = function (actions, inThread) {
150
- if (actions.length === 0) {
149
+ /**
150
+ * @deprecated use `shouldRenderMessageActions` instead
151
+ */
152
+ export var showMessageActionsBox = function (actions, inThread) { return shouldRenderMessageActions({ inThread: inThread, messageActions: actions }); };
153
+ export var shouldRenderMessageActions = function (_a) {
154
+ var customMessageActions = _a.customMessageActions, CustomMessageActionsList = _a.CustomMessageActionsList, inThread = _a.inThread, messageActions = _a.messageActions;
155
+ if (typeof CustomMessageActionsList !== 'undefined' ||
156
+ typeof customMessageActions !== 'undefined')
157
+ return true;
158
+ if (!messageActions.length)
151
159
  return false;
152
- }
153
160
  if (inThread &&
154
- actions.filter(function (action) { return !ACTIONS_NOT_WORKING_IN_THREAD.includes(action); }).length === 0) {
161
+ messageActions.filter(function (action) { return !ACTIONS_NOT_WORKING_IN_THREAD.includes(action); }).length === 0) {
155
162
  return false;
156
163
  }
157
- if (actions.length === 1 && (actions.includes('react') || actions.includes('reply'))) {
164
+ if (messageActions.length === 1 &&
165
+ (messageActions.includes(MESSAGE_ACTIONS.react) ||
166
+ messageActions.includes(MESSAGE_ACTIONS.reply))) {
158
167
  return false;
159
168
  }
160
- if (actions.length === 2 && actions.includes('react') && actions.includes('reply')) {
169
+ if (messageActions.length === 2 &&
170
+ messageActions.includes(MESSAGE_ACTIONS.react) &&
171
+ messageActions.includes(MESSAGE_ACTIONS.reply)) {
161
172
  return false;
162
173
  }
163
174
  return true;
@@ -1 +1 @@
1
- {"version":3,"file":"MessageActions.d.ts","sourceRoot":"","sources":["../../../src/components/MessageActions/MessageActions.tsx"],"names":[],"mappings":"AAAA,OAAO,KAON,MAAM,OAAO,CAAC;AAQf,OAAO,EAAE,mBAAmB,EAAqB,MAAM,8BAA8B,CAAC;AAEtF,OAAO,KAAK,EAAE,yBAAyB,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAI9E,KAAK,yBAAyB,GAC1B,mBAAmB,GACnB,cAAc,GACd,YAAY,GACZ,kBAAkB,GAClB,YAAY,GACZ,WAAW,GACX,SAAS,CAAC;AAEd,MAAM,MAAM,mBAAmB,CAC7B,kBAAkB,SAAS,yBAAyB,GAAG,yBAAyB,IAC9E,OAAO,CAAC,IAAI,CAAC,mBAAmB,CAAC,kBAAkB,CAAC,EAAE,yBAAyB,CAAC,CAAC,GAAG;IAEtF,WAAW,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;IAE7C,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAE5B,MAAM,CAAC,EAAE,OAAO,CAAC;IAEjB,iBAAiB,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;IAEpD,IAAI,CAAC,EAAE,MAAM,OAAO,CAAC;CACtB,CAAC;AAEF,eAAO,MAAM,cAAc,gKA4H1B,CAAC;AAEF,MAAM,MAAM,0BAA0B,GAAG;IACvC,iBAAiB,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC;IACjE,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB,CAAC"}
1
+ {"version":3,"file":"MessageActions.d.ts","sourceRoot":"","sources":["../../../src/components/MessageActions/MessageActions.tsx"],"names":[],"mappings":"AAAA,OAAO,KAON,MAAM,OAAO,CAAC;AASf,OAAO,EAAE,mBAAmB,EAAqB,MAAM,8BAA8B,CAAC;AAEtF,OAAO,KAAK,EAAE,yBAAyB,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAI9E,KAAK,yBAAyB,GAC1B,mBAAmB,GACnB,cAAc,GACd,YAAY,GACZ,kBAAkB,GAClB,YAAY,GACZ,WAAW,GACX,SAAS,CAAC;AAEd,MAAM,MAAM,mBAAmB,CAC7B,kBAAkB,SAAS,yBAAyB,GAAG,yBAAyB,IAC9E,OAAO,CAAC,IAAI,CAAC,mBAAmB,CAAC,kBAAkB,CAAC,EAAE,yBAAyB,CAAC,CAAC,GAAG;IAEtF,WAAW,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;IAE7C,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAE5B,MAAM,CAAC,EAAE,OAAO,CAAC;IAEjB,iBAAiB,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;IAEpD,IAAI,CAAC,EAAE,MAAM,OAAO,CAAC;CACtB,CAAC;AAEF,eAAO,MAAM,cAAc,gKAwI1B,CAAC;AAEF,MAAM,MAAM,0BAA0B,GAAG;IACvC,iBAAiB,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC;IACjE,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB,CAAC"}
@@ -1,16 +1,18 @@
1
1
  import { __assign } from "tslib";
2
2
  import React, { useCallback, useEffect, useRef, useState, } from 'react';
3
+ import clsx from 'clsx';
3
4
  import { MessageActionsBox } from './MessageActionsBox';
4
5
  import { ActionsIcon as DefaultActionsIcon } from '../Message/icons';
5
- import { isUserMuted } from '../Message/utils';
6
+ import { isUserMuted, shouldRenderMessageActions } from '../Message/utils';
6
7
  import { useChatContext } from '../../context/ChatContext';
7
8
  import { useMessageContext } from '../../context/MessageContext';
8
9
  import { useMessageActionsBoxPopper } from './hooks';
9
- import { useTranslationContext } from '../../context';
10
+ import { useComponentContext, useTranslationContext } from '../../context';
10
11
  export var MessageActions = function (props) {
11
12
  var _a = props.ActionsIcon, ActionsIcon = _a === void 0 ? DefaultActionsIcon : _a, _b = props.customWrapperClass, customWrapperClass = _b === void 0 ? '' : _b, propGetMessageActions = props.getMessageActions, propHandleDelete = props.handleDelete, propHandleFlag = props.handleFlag, propHandleMarkUnread = props.handleMarkUnread, propHandleMute = props.handleMute, propHandlePin = props.handlePin, inline = props.inline, propMessage = props.message, messageWrapperRef = props.messageWrapperRef, mine = props.mine;
12
13
  var mutes = useChatContext('MessageActions').mutes;
13
- var _c = useMessageContext('MessageActions'), customMessageActions = _c.customMessageActions, contextGetMessageActions = _c.getMessageActions, contextHandleDelete = _c.handleDelete, contextHandleFlag = _c.handleFlag, contextHandleMarkUnread = _c.handleMarkUnread, contextHandleMute = _c.handleMute, contextHandlePin = _c.handlePin, isMyMessage = _c.isMyMessage, contextMessage = _c.message, setEditingState = _c.setEditingState;
14
+ var _c = useMessageContext('MessageActions'), customMessageActions = _c.customMessageActions, contextGetMessageActions = _c.getMessageActions, contextHandleDelete = _c.handleDelete, contextHandleFlag = _c.handleFlag, contextHandleMarkUnread = _c.handleMarkUnread, contextHandleMute = _c.handleMute, contextHandlePin = _c.handlePin, isMyMessage = _c.isMyMessage, contextMessage = _c.message, setEditingState = _c.setEditingState, threadList = _c.threadList;
15
+ var CustomMessageActionsList = useComponentContext('MessageActions').CustomMessageActionsList;
14
16
  var t = useTranslationContext('MessageActions').t;
15
17
  var getMessageActions = propGetMessageActions || contextGetMessageActions;
16
18
  var handleDelete = propHandleDelete || contextHandleDelete;
@@ -22,13 +24,19 @@ export var MessageActions = function (props) {
22
24
  var isMine = mine ? mine() : isMyMessage();
23
25
  var _d = useState(false), actionsBoxOpen = _d[0], setActionsBoxOpen = _d[1];
24
26
  var isMuted = useCallback(function () { return isUserMuted(message, mutes); }, [message, mutes]);
27
+ var messageActions = getMessageActions();
28
+ var renderMessageActions = shouldRenderMessageActions({
29
+ customMessageActions: customMessageActions,
30
+ CustomMessageActionsList: CustomMessageActionsList,
31
+ inThread: threadList,
32
+ messageActions: messageActions,
33
+ });
25
34
  var hideOptions = useCallback(function (event) {
26
35
  if (event instanceof KeyboardEvent && event.key !== 'Escape') {
27
36
  return;
28
37
  }
29
38
  setActionsBoxOpen(false);
30
39
  }, []);
31
- var messageActions = getMessageActions();
32
40
  var messageDeletedAt = !!(message === null || message === void 0 ? void 0 : message.deleted_at);
33
41
  useEffect(function () {
34
42
  if (messageWrapperRef === null || messageWrapperRef === void 0 ? void 0 : messageWrapperRef.current) {
@@ -56,7 +64,7 @@ export var MessageActions = function (props) {
56
64
  placement: isMine ? 'top-end' : 'top-start',
57
65
  referenceElement: actionsBoxButtonRef.current,
58
66
  }), attributes = _e.attributes, popperElementRef = _e.popperElementRef, styles = _e.styles;
59
- if (!messageActions.length && !customMessageActions)
67
+ if (!renderMessageActions)
60
68
  return null;
61
69
  return (React.createElement(MessageActionsWrapper, { customWrapperClass: customWrapperClass, inline: inline, setActionsBoxOpen: setActionsBoxOpen },
62
70
  React.createElement(MessageActionsBox, __assign({}, attributes.popper, { getMessageActions: getMessageActions, handleDelete: handleDelete, handleEdit: setEditingState, handleFlag: handleFlag, handleMarkUnread: handleMarkUnread, handleMute: handleMute, handlePin: handlePin, isUserMuted: isMuted, mine: isMine, open: actionsBoxOpen, ref: popperElementRef, style: styles.popper })),
@@ -65,7 +73,7 @@ export var MessageActions = function (props) {
65
73
  };
66
74
  var MessageActionsWrapper = function (props) {
67
75
  var children = props.children, customWrapperClass = props.customWrapperClass, inline = props.inline, setActionsBoxOpen = props.setActionsBoxOpen;
68
- var defaultWrapperClass = "\n str-chat__message-simple__actions__action\n str-chat__message-simple__actions__action--options\n str-chat__message-actions-container";
76
+ var defaultWrapperClass = clsx('str-chat__message-simple__actions__action', 'str-chat__message-simple__actions__action--options', 'str-chat__message-actions-container');
69
77
  var wrapperClass = customWrapperClass || defaultWrapperClass;
70
78
  var onClickOptionsAction = function (event) {
71
79
  event.stopPropagation();
package/dist/index.cjs.js CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var Window = require('./Window-60c672e3.js');
5
+ var Window = require('./Window-2ad58fe5.js');
6
6
  var React = require('react');
7
7
  var streamChat = require('stream-chat');
8
8
  var throttle = require('lodash.throttle');
@@ -1362,7 +1362,49 @@ function VirtualizedMessageList(props) {
1362
1362
  return (React__default["default"].createElement(VirtualizedMessageListWithContext, Window.__assign({ channel: channel, channelUnreadUiState: channelUnreadUiState, hasMore: !!hasMore, hasMoreNewer: !!hasMoreNewer, highlightedMessageId: highlightedMessageId, jumpToLatestMessage: jumpToLatestMessage, loadingMore: !!loadingMore, loadingMoreNewer: !!loadingMoreNewer, loadMore: loadMore, loadMoreNewer: loadMoreNewer, messages: messages, notifications: notifications, read: read, suppressAutoscroll: suppressAutoscroll }, props)));
1363
1363
  }
1364
1364
 
1365
- var version = '11.23.8';
1365
+ var MenuIcon = function (_a) {
1366
+ var title = _a.title;
1367
+ var t = Window.useTranslationContext('MenuIcon').t;
1368
+ return (React__default["default"].createElement("svg", { "data-testid": 'menu-icon', viewBox: '0 0 448 512', xmlns: 'http://www.w3.org/2000/svg' },
1369
+ React__default["default"].createElement("title", null, title !== null && title !== void 0 ? title : t('Menu')),
1370
+ React__default["default"].createElement("path", { d: 'M0 88C0 74.75 10.75 64 24 64H424C437.3 64 448 74.75 448 88C448 101.3 437.3 112 424 112H24C10.75 112 0 101.3 0 88zM0 248C0 234.7 10.75 224 24 224H424C437.3 224 448 234.7 448 248C448 261.3 437.3 272 424 272H24C10.75 272 0 261.3 0 248zM424 432H24C10.75 432 0 421.3 0 408C0 394.7 10.75 384 24 384H424C437.3 384 448 394.7 448 408C448 421.3 437.3 432 424 432z', fill: 'currentColor' })));
1371
+ };
1372
+
1373
+ /**
1374
+ * The ChannelHeader component renders some basic information about a Channel.
1375
+ */
1376
+ var ChannelHeader = function (props) {
1377
+ var _a = props.Avatar, Avatar = _a === void 0 ? Window.Avatar : _a, _b = props.MenuIcon, MenuIcon$1 = _b === void 0 ? MenuIcon : _b, overrideImage = props.image, live = props.live, overrideTitle = props.title;
1378
+ var _c = Window.useChannelStateContext('ChannelHeader'), channel = _c.channel, watcher_count = _c.watcher_count;
1379
+ var openMobileNav = Window.useChatContext('ChannelHeader').openMobileNav;
1380
+ var t = Window.useTranslationContext('ChannelHeader').t;
1381
+ var _d = Window.useChannelPreviewInfo({
1382
+ channel: channel,
1383
+ overrideImage: overrideImage,
1384
+ overrideTitle: overrideTitle,
1385
+ }), displayImage = _d.displayImage, displayTitle = _d.displayTitle;
1386
+ var _e = (channel === null || channel === void 0 ? void 0 : channel.data) || {}, member_count = _e.member_count, subtitle = _e.subtitle;
1387
+ return (React__default["default"].createElement("div", { className: 'str-chat__header-livestream str-chat__channel-header' },
1388
+ React__default["default"].createElement("button", { "aria-label": t('aria/Menu'), className: 'str-chat__header-hamburger', onClick: openMobileNav },
1389
+ React__default["default"].createElement(MenuIcon$1, null)),
1390
+ React__default["default"].createElement(Avatar, { image: displayImage, name: displayTitle, shape: 'rounded', size: (channel === null || channel === void 0 ? void 0 : channel.type) === 'commerce' ? 60 : 40 }),
1391
+ React__default["default"].createElement("div", { className: 'str-chat__header-livestream-left str-chat__channel-header-end' },
1392
+ React__default["default"].createElement("p", { className: 'str-chat__header-livestream-left--title str-chat__channel-header-title' },
1393
+ displayTitle,
1394
+ ' ',
1395
+ live && (React__default["default"].createElement("span", { className: 'str-chat__header-livestream-left--livelabel' }, t('live')))),
1396
+ subtitle && React__default["default"].createElement("p", { className: 'str-chat__header-livestream-left--subtitle' }, subtitle),
1397
+ React__default["default"].createElement("p", { className: 'str-chat__header-livestream-left--members str-chat__channel-header-info' },
1398
+ !live && !!member_count && member_count > 0 && (React__default["default"].createElement(React__default["default"].Fragment, null,
1399
+ t('{{ memberCount }} members', {
1400
+ memberCount: member_count,
1401
+ }),
1402
+ ",",
1403
+ ' ')),
1404
+ t('{{ watcherCount }} online', { watcherCount: watcher_count })))));
1405
+ };
1406
+
1407
+ var version = '11.23.10';
1366
1408
 
1367
1409
  var useChat = function (_a) {
1368
1410
  var _b, _c;
@@ -1716,7 +1758,6 @@ exports.CardContainer = Window.CardContainer;
1716
1758
  exports.Channel = Window.Channel;
1717
1759
  exports.ChannelActionContext = Window.ChannelActionContext;
1718
1760
  exports.ChannelActionProvider = Window.ChannelActionProvider;
1719
- exports.ChannelHeader = Window.ChannelHeader;
1720
1761
  exports.ChannelList = Window.ChannelList;
1721
1762
  exports.ChannelListContext = Window.ChannelListContext;
1722
1763
  exports.ChannelListContextProvider = Window.ChannelListContextProvider;
@@ -1966,6 +2007,7 @@ exports.renderPreviewText = Window.renderPreviewText;
1966
2007
  exports.renderText = Window.renderText;
1967
2008
  exports.resampleWaveformData = Window.resampleWaveformData;
1968
2009
  exports.ruTranslations = Window.ruTranslations;
2010
+ exports.shouldRenderMessageActions = Window.shouldRenderMessageActions;
1969
2011
  exports.showMessageActionsBox = Window.showMessageActionsBox;
1970
2012
  exports.trTranslations = Window.trTranslations;
1971
2013
  exports.upSample = Window.upSample;
@@ -2021,6 +2063,7 @@ exports.withComponentContext = Window.withComponentContext;
2021
2063
  exports.withMessageContext = Window.withMessageContext;
2022
2064
  exports.withTranslationContext = Window.withTranslationContext;
2023
2065
  exports.withTypingContext = Window.withTypingContext;
2066
+ exports.ChannelHeader = ChannelHeader;
2024
2067
  exports.Chat = Chat;
2025
2068
  exports.GiphyPreviewMessage = GiphyPreviewMessage;
2026
2069
  exports.InfiniteScroll = InfiniteScroll;
package/dist/version.d.ts CHANGED
@@ -1,2 +1,2 @@
1
- export declare const version = "11.23.8";
1
+ export declare const version = "11.23.10";
2
2
  //# sourceMappingURL=version.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,OAAO,YAAY,CAAC"}
1
+ {"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,OAAO,aAAa,CAAC"}
package/dist/version.js CHANGED
@@ -1 +1 @@
1
- export var version = '11.23.8';
1
+ export var version = '11.23.10';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "stream-chat-react",
3
- "version": "11.23.8",
3
+ "version": "11.23.10",
4
4
  "description": "React components to create chat conversations or livestream style chat",
5
5
  "author": "GetStream",
6
6
  "homepage": "https://getstream.io/chat/",