Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: new MessageActions component #2543

Merged
merged 9 commits into from
Oct 29, 2024
Merged

Conversation

arnautov-anton
Copy link
Contributor

@arnautov-anton arnautov-anton commented Oct 24, 2024

The Problem(s)

MessageActions/MessageOptions/MessageActionsBox are a poorly designed set of components which we were trying to patch over the time with things like CustomMessageActionsList but with each new patchy addition, the component set got heavier and worse to navigate in when it came to customization.

  • messageActions prop on MessageList and VirtualizedMessageList components allow for key/handler customization:
    { "Custom Action": () => doThing() }
    Solution like this falls face first when integrators need to access MessageContext or use translations for different languages (the key is used as button text).
  • Solution to patch those shortcomings was to introduce CustomMessageActionsList which allows to render custom buttons within actions dropdown but... when buttons are rendered conditionally, the "..." is still rendered and upon clicking on it, it opens up an empty actions dropdown. This solution also does not allow to adjust "quick actions" (like reply or react).

Steps Taken

  1. pre-define default set of actions with buttons as components with own logic and click handlers, separate into "quick" and "dropdown" types
  2. define default filter which takes care of user capabilities and whether the actions are allowed within reply type of a message (and some other stuff based on message type or status)
  3. allow integrators to override the default set and to override the default filter function, alow reusing defaults too
access action set -> filter action set based on filter function criteria -> separate into quick and dropdown -> render

From Integrator's POV

import { Channel, } from 'stream-chat-react';
import {
  MessageActions,
  defaultMessageActionSet,
  DefaultDropdownActionButton,
} from 'stream-chat-react/experimental';

const CustomMessageActions = () => {
  const customFilter = () => {
    /*...*/
  };

  return (
    <MessageActions
      // though not recommended, it's completely possible to disable default filter...
      disableBaseMessageActionSetFilter
      messageActionSet={[
        ...defaultMessageActionSet,
        {
          type: 'myCustomTypeDropdown',
          placement: 'dropdown',
          // we could enforce non-null return type (at least through TS)
          Component: () => <DefaultDropdownActionButton>🚀 Custom</DefaultDropdownActionButton>,
        },
        {
          type: 'myCustomTypeQuick',
          placement: 'quick',
          Component: () => <button>a</button>,
        },
        // ...and apply custom filter here with access to CustomMessageActions scope (contexts + other hooks)
      ].filter(customFilter)}
    />
  );
};

<Channel MessageActions={CustomMessageActions}>...</Channel>;

image

Next Steps

  • review and release
  • allow overriding certain components within default MessageActions_UNSTABLE
  • tests

Copy link

github-actions bot commented Oct 24, 2024

Size Change: +23.7 kB (+2.25%)

Total Size: 1.08 MB

Filename Size Change
./dist/components/Channel/Channel.js 8.47 kB +9 B (+0.11%)
./dist/components/Message/MessageOptions.js 824 B -3 B (-0.36%)
./dist/components/Message/MessageSimple.js 2.06 kB +74 B (+3.73%)
./dist/components/MessageActions/MessageActions.js 1.16 kB -2 B (-0.17%)
./dist/components/Reactions/ReactionSelectorWithButton.js 643 B -27 B (-4.03%)
./dist/i18n/de.json 2.97 kB +9 B (+0.3%)
./dist/i18n/en.json 1.9 kB +7 B (+0.37%)
./dist/i18n/es.json 2.96 kB +9 B (+0.31%)
./dist/i18n/fr.json 3.05 kB +9 B (+0.3%)
./dist/i18n/hi.json 3.42 kB +10 B (+0.29%)
./dist/i18n/it.json 2.97 kB +8 B (+0.27%)
./dist/i18n/ja.json 3.28 kB +10 B (+0.31%)
./dist/i18n/ko.json 3.2 kB +7 B (+0.22%)
./dist/i18n/nl.json 2.86 kB +8 B (+0.28%)
./dist/i18n/pt.json 2.92 kB +8 B (+0.27%)
./dist/i18n/ru.json 3.61 kB +9 B (+0.25%)
./dist/i18n/tr.json 2.93 kB +9 B (+0.31%)
./dist/index.browser.cjs 355 kB +98 B (+0.03%)
./dist/index.node.cjs 390 kB +108 B (+0.03%)
./dist/experimental/index.browser.cjs 9.91 kB +9.91 kB (new file) 🆕
./dist/experimental/index.js 54 B +54 B (new file) 🆕
./dist/experimental/index.node.cjs 9.99 kB +9.99 kB (new file) 🆕
./dist/experimental/MessageActions/defaults.js 1.08 kB +1.08 kB (new file) 🆕
./dist/experimental/MessageActions/hooks/index.js 82 B +82 B (new file) 🆕
./dist/experimental/MessageActions/hooks/useBaseMessageActionSetFilter.js 820 B +820 B (new file) 🆕
./dist/experimental/MessageActions/hooks/useSplitMessageActionSet.js 216 B +216 B (new file) 🆕
./dist/experimental/MessageActions/index.js 72 B +72 B (new file) 🆕
./dist/experimental/MessageActions/MessageActions.js 1.15 kB +1.15 kB (new file) 🆕
ℹ️ View Unchanged
Filename Size
./dist/components/Attachment/attachment-sizing.js 1.07 kB
./dist/components/Attachment/Attachment.js 1.01 kB
./dist/components/Attachment/AttachmentActions.js 474 B
./dist/components/Attachment/AttachmentContainer.js 1.92 kB
./dist/components/Attachment/Audio.js 615 B
./dist/components/Attachment/audioSampling.js 1.34 kB
./dist/components/Attachment/Card.js 1.51 kB
./dist/components/Attachment/components/DownloadButton.js 241 B
./dist/components/Attachment/components/FileSizeIndicator.js 290 B
./dist/components/Attachment/components/index.js 112 B
./dist/components/Attachment/components/PlaybackRateButton.js 190 B
./dist/components/Attachment/components/PlayButton.js 252 B
./dist/components/Attachment/components/ProgressBar.js 260 B
./dist/components/Attachment/components/WaveProgressBar.js 1.4 kB
./dist/components/Attachment/FileAttachment.js 367 B
./dist/components/Attachment/hooks/useAudioController.js 1.36 kB
./dist/components/Attachment/icons.js 546 B
./dist/components/Attachment/index.js 131 B
./dist/components/Attachment/UnsupportedAttachment.js 308 B
./dist/components/Attachment/utils.js 740 B
./dist/components/Attachment/VoiceRecording.js 943 B
./dist/components/AutoCompleteTextarea/index.js 146 B
./dist/components/AutoCompleteTextarea/Item.js 379 B
./dist/components/AutoCompleteTextarea/List.js 1.32 kB
./dist/components/AutoCompleteTextarea/Textarea.js 6.09 kB
./dist/components/AutoCompleteTextarea/types.js 31 B
./dist/components/AutoCompleteTextarea/utils.js 794 B
./dist/components/Avatar/Avatar.js 621 B
./dist/components/Avatar/index.js 46 B
./dist/components/Channel/channelState.js 916 B
./dist/components/Channel/hooks/useChannelContainerClasses.js 273 B
./dist/components/Channel/hooks/useCreateChannelStateContext.js 1.18 kB
./dist/components/Channel/hooks/useCreateTypingContext.js 226 B
./dist/components/Channel/hooks/useEditMessageHandler.js 239 B
./dist/components/Channel/hooks/useIsMounted.js 165 B
./dist/components/Channel/hooks/useMentionsHandlers.js 377 B
./dist/components/Channel/index.js 118 B
./dist/components/Channel/LoadingChannel.js 342 B
./dist/components/Channel/utils.js 733 B
./dist/components/ChannelHeader/ChannelHeader.js 721 B
./dist/components/ChannelHeader/icons.js 440 B
./dist/components/ChannelHeader/index.js 53 B
./dist/components/ChannelList/ChannelList.js 2.47 kB
./dist/components/ChannelList/ChannelListMessenger.js 430 B
./dist/components/ChannelList/hooks/index.js 193 B
./dist/components/ChannelList/hooks/useChannelDeletedListener.js 383 B
./dist/components/ChannelList/hooks/useChannelHiddenListener.js 385 B
./dist/components/ChannelList/hooks/useChannelTruncatedListener.js 314 B
./dist/components/ChannelList/hooks/useChannelUpdatedListener.js 449 B
./dist/components/ChannelList/hooks/useChannelVisibleListener.js 406 B
./dist/components/ChannelList/hooks/useConnectionRecoveredListener.js 244 B
./dist/components/ChannelList/hooks/useMessageNewListener.js 525 B
./dist/components/ChannelList/hooks/useMobileNavigation.js 275 B
./dist/components/ChannelList/hooks/useNotificationAddedToChannelListener.js 542 B
./dist/components/ChannelList/hooks/useNotificationMessageNewListener.js 453 B
./dist/components/ChannelList/hooks/useNotificationRemovedFromChannelListener.js 339 B
./dist/components/ChannelList/hooks/usePaginatedChannels.js 1.25 kB
./dist/components/ChannelList/hooks/useUserPresenceChangedListener.js 369 B
./dist/components/ChannelList/index.js 78 B
./dist/components/ChannelList/utils.js 270 B
./dist/components/ChannelPreview/ChannelPreview.js 935 B
./dist/components/ChannelPreview/ChannelPreviewMessenger.js 782 B
./dist/components/ChannelPreview/hooks/index.js 97 B
./dist/components/ChannelPreview/hooks/useChannelPreviewInfo.js 394 B
./dist/components/ChannelPreview/hooks/useIsChannelMuted.js 299 B
./dist/components/ChannelPreview/hooks/useMessageDeliveryStatus.js 744 B
./dist/components/ChannelPreview/index.js 81 B
./dist/components/ChannelPreview/utils.js 556 B
./dist/components/ChannelSearch/ChannelSearch.js 816 B
./dist/components/ChannelSearch/hooks/useChannelSearch.js 1.66 kB
./dist/components/ChannelSearch/icons.js 684 B
./dist/components/ChannelSearch/index.js 85 B
./dist/components/ChannelSearch/SearchBar.js 1.1 kB
./dist/components/ChannelSearch/SearchInput.js 295 B
./dist/components/ChannelSearch/SearchResults.js 1.31 kB
./dist/components/ChannelSearch/utils.js 72 B
./dist/components/Chat/Chat.js 602 B
./dist/components/Chat/hooks/useChannelsQueryState.js 181 B
./dist/components/Chat/hooks/useChat.js 1.13 kB
./dist/components/Chat/hooks/useCreateChatClient.js 478 B
./dist/components/Chat/hooks/useCreateChatContext.js 521 B
./dist/components/Chat/index.js 71 B
./dist/components/ChatAutoComplete/ChatAutoComplete.js 973 B
./dist/components/ChatAutoComplete/index.js 56 B
./dist/components/ChatView/ChatView.js 1.35 kB
./dist/components/ChatView/index.js 48 B
./dist/components/CommandItem/CommandItem.js 263 B
./dist/components/CommandItem/index.js 51 B
./dist/components/DateSeparator/DateSeparator.js 506 B
./dist/components/DateSeparator/index.js 53 B
./dist/components/Dialog/DialogAnchor.js 990 B
./dist/components/Dialog/DialogManager.js 900 B
./dist/components/Dialog/DialogPortal.js 506 B
./dist/components/Dialog/hooks/index.js 49 B
./dist/components/Dialog/hooks/useDialog.js 386 B
./dist/components/Dialog/index.js 79 B
./dist/components/EmoticonItem/EmoticonItem.js 387 B
./dist/components/EmoticonItem/index.js 52 B
./dist/components/EmptyStateIndicator/EmptyStateIndicator.js 443 B
./dist/components/EmptyStateIndicator/icons.js 319 B
./dist/components/EmptyStateIndicator/index.js 59 B
./dist/components/EventComponent/EventComponent.js 738 B
./dist/components/EventComponent/index.js 54 B
./dist/components/Gallery/BaseImage.js 412 B
./dist/components/Gallery/Gallery.js 1 kB
./dist/components/Gallery/Image.js 595 B
./dist/components/Gallery/index.js 70 B
./dist/components/Gallery/ModalGallery.js 605 B
./dist/components/index.js 322 B
./dist/components/InfiniteScrollPaginator/index.js 54 B
./dist/components/InfiniteScrollPaginator/InfiniteScroll.js 1.28 kB
./dist/components/Loading/index.js 76 B
./dist/components/Loading/LoadingChannels.js 276 B
./dist/components/Loading/LoadingErrorIndicator.js 312 B
./dist/components/Loading/LoadingIndicator.js 641 B
./dist/components/LoadMore/index.js 69 B
./dist/components/LoadMore/LoadMoreButton.js 536 B
./dist/components/LoadMore/LoadMorePaginator.js 444 B
./dist/components/MediaRecorder/AudioRecorder/AudioRecorder.js 776 B
./dist/components/MediaRecorder/AudioRecorder/AudioRecordingButtons.js 238 B
./dist/components/MediaRecorder/AudioRecorder/AudioRecordingInProgress.js 746 B
./dist/components/MediaRecorder/AudioRecorder/AudioRecordingPreview.js 561 B
./dist/components/MediaRecorder/AudioRecorder/index.js 75 B
./dist/components/MediaRecorder/AudioRecorder/RecordingTimer.js 227 B
./dist/components/MediaRecorder/classes/AmplitudeRecorder.js 1.09 kB
./dist/components/MediaRecorder/classes/BrowserPermission.js 755 B
./dist/components/MediaRecorder/classes/index.js 86 B
./dist/components/MediaRecorder/classes/MediaRecorderController.js 2.67 kB
./dist/components/MediaRecorder/hooks/index.js 31 B
./dist/components/MediaRecorder/hooks/useMediaRecorder.js 705 B
./dist/components/MediaRecorder/index.js 150 B
./dist/components/MediaRecorder/observable/BehaviorSubject.js 286 B
./dist/components/MediaRecorder/observable/index.js 91 B
./dist/components/MediaRecorder/observable/Observable.js 243 B
./dist/components/MediaRecorder/observable/Observer.js 108 B
./dist/components/MediaRecorder/observable/Subject.js 472 B
./dist/components/MediaRecorder/observable/Subscription.js 129 B
./dist/components/MediaRecorder/RecordingPermissionDeniedNotification.js 418 B
./dist/components/MediaRecorder/transcode/audioProcessing.js 677 B
./dist/components/MediaRecorder/transcode/index.js 267 B
./dist/components/MediaRecorder/transcode/wav.js 1.8 kB
./dist/components/Message/FixedHeightMessage.js 1.54 kB
./dist/components/Message/hooks/index.js 146 B
./dist/components/Message/hooks/useActionHandler.js 561 B
./dist/components/Message/hooks/useDeleteHandler.js 396 B
./dist/components/Message/hooks/useEditHandler.js 243 B
./dist/components/Message/hooks/useFlagHandler.js 509 B
./dist/components/Message/hooks/useMarkUnreadHandler.js 497 B
./dist/components/Message/hooks/useMentionsHandler.js 334 B
./dist/components/Message/hooks/useMuteHandler.js 666 B
./dist/components/Message/hooks/useOpenThreadHandler.js 265 B
./dist/components/Message/hooks/usePinHandler.js 647 B
./dist/components/Message/hooks/useReactionHandler.js 1.46 kB
./dist/components/Message/hooks/useReactionsFetcher.js 513 B
./dist/components/Message/hooks/useRetryHandler.js 205 B
./dist/components/Message/hooks/useUserHandler.js 193 B
./dist/components/Message/hooks/useUserRole.js 646 B
./dist/components/Message/icons.js 1.25 kB
./dist/components/Message/index.js 160 B
./dist/components/Message/Message.js 1.91 kB
./dist/components/Message/MessageDeleted.js 363 B
./dist/components/Message/MessageEditedTimestamp.js 418 B
./dist/components/Message/MessageErrorText.js 366 B
./dist/components/Message/MessageRepliesCountButton.js 415 B
./dist/components/Message/MessageStatus.js 1.11 kB
./dist/components/Message/MessageText.js 863 B
./dist/components/Message/MessageTimestamp.js 281 B
./dist/components/Message/QuotedMessage.js 747 B
./dist/components/Message/renderText/componentRenderers/Anchor.js 297 B
./dist/components/Message/renderText/componentRenderers/Emoji.js 151 B
./dist/components/Message/renderText/componentRenderers/index.js 66 B
./dist/components/Message/renderText/componentRenderers/Mention.js 175 B
./dist/components/Message/renderText/index.js 135 B
./dist/components/Message/renderText/regex.js 378 B
./dist/components/Message/renderText/rehypePlugins/emojiMarkdownPlugin.js 241 B
./dist/components/Message/renderText/rehypePlugins/index.js 72 B
./dist/components/Message/renderText/rehypePlugins/mentionsMarkdownPlugin.js 972 B
./dist/components/Message/renderText/remarkPlugins/htmlToTextPlugin.js 172 B
./dist/components/Message/renderText/remarkPlugins/index.js 75 B
./dist/components/Message/renderText/remarkPlugins/keepLineBreaksPlugin.js 450 B
./dist/components/Message/renderText/renderText.js 1.65 kB
./dist/components/Message/renderText/types.js 31 B
./dist/components/Message/Timestamp.js 438 B
./dist/components/Message/types.js 31 B
./dist/components/Message/utils.js 2.88 kB
./dist/components/MessageActions/CustomMessageActionsList.js 333 B
./dist/components/MessageActions/hooks/index.js 66 B
./dist/components/MessageActions/hooks/useMessageActionsBoxPopper.js 465 B
./dist/components/MessageActions/index.js 77 B
./dist/components/MessageActions/MessageActionsBox.js 996 B
./dist/components/MessageBounce/index.js 70 B
./dist/components/MessageBounce/MessageBounceModal.js 231 B
./dist/components/MessageBounce/MessageBouncePrompt.js 453 B
./dist/components/MessageInput/AttachmentPreviewList/AttachmentPreviewList.js 597 B
./dist/components/MessageInput/AttachmentPreviewList/FileAttachmentPreview.js 679 B
./dist/components/MessageInput/AttachmentPreviewList/ImageAttachmentPreview.js 712 B
./dist/components/MessageInput/AttachmentPreviewList/index.js 61 B
./dist/components/MessageInput/AttachmentPreviewList/types.js 31 B
./dist/components/MessageInput/AttachmentPreviewList/UnsupportedAttachmentPreview.js 653 B
./dist/components/MessageInput/AttachmentPreviewList/VoiceRecordingPreview.js 731 B
./dist/components/MessageInput/CooldownTimer.js 230 B
./dist/components/MessageInput/DefaultTriggerProvider.js 409 B
./dist/components/MessageInput/DropzoneProvider.js 491 B
./dist/components/MessageInput/EditMessageForm.js 471 B
./dist/components/MessageInput/hooks/index.js 79 B
./dist/components/MessageInput/hooks/useAttachments.js 2.06 kB
./dist/components/MessageInput/hooks/useCommandTrigger.js 779 B
./dist/components/MessageInput/hooks/useCooldownTimer.js 640 B
./dist/components/MessageInput/hooks/useCreateMessageInputContext.js 994 B
./dist/components/MessageInput/hooks/useEmojiTrigger.js 498 B
./dist/components/MessageInput/hooks/useLinkPreviews.js 1.25 kB
./dist/components/MessageInput/hooks/useMessageInputState.js 2 kB
./dist/components/MessageInput/hooks/useMessageInputText.js 881 B
./dist/components/MessageInput/hooks/usePasteHandler.js 684 B
./dist/components/MessageInput/hooks/useSubmitHandler.js 1.74 kB
./dist/components/MessageInput/hooks/useTimeElapsed.js 352 B
./dist/components/MessageInput/hooks/useTimer.js 265 B
./dist/components/MessageInput/hooks/useUserTrigger.js 1.53 kB
./dist/components/MessageInput/hooks/utils.js 1.68 kB
./dist/components/MessageInput/icons.js 2.42 kB
./dist/components/MessageInput/index.js 177 B
./dist/components/MessageInput/LinkPreviewList.js 727 B
./dist/components/MessageInput/MessageInput.js 576 B
./dist/components/MessageInput/MessageInputFlat.js 2.16 kB
./dist/components/MessageInput/QuotedMessagePreview.js 701 B
./dist/components/MessageInput/SendButton.js 226 B
./dist/components/MessageInput/types.js 387 B
./dist/components/MessageList/ConnectionStatus.js 425 B
./dist/components/MessageList/CustomNotification.js 289 B
./dist/components/MessageList/GiphyPreviewMessage.js 193 B
./dist/components/MessageList/hooks/index.js 183 B
./dist/components/MessageList/hooks/MessageList/index.js 128 B
./dist/components/MessageList/hooks/MessageList/useEnrichedMessages.js 628 B
./dist/components/MessageList/hooks/MessageList/useMessageListElements.js 535 B
./dist/components/MessageList/hooks/MessageList/useMessageListScrollManager.js 866 B
./dist/components/MessageList/hooks/MessageList/useScrollLocationLogic.js 793 B
./dist/components/MessageList/hooks/MessageList/useUnreadMessagesNotification.js 984 B
./dist/components/MessageList/hooks/useLastReadData.js 207 B
./dist/components/MessageList/hooks/useMarkRead.js 1.15 kB
./dist/components/MessageList/hooks/VirtualizedMessageList/index.js 158 B
./dist/components/MessageList/hooks/VirtualizedMessageList/useGiphyPreview.js 347 B
./dist/components/MessageList/hooks/VirtualizedMessageList/useMessageSetKey.js 321 B
./dist/components/MessageList/hooks/VirtualizedMessageList/useNewMessageNotification.js 615 B
./dist/components/MessageList/hooks/VirtualizedMessageList/usePrependMessagesCount.js 1.25 kB
./dist/components/MessageList/hooks/VirtualizedMessageList/useScrollToBottomOnNewMessage.js 423 B
./dist/components/MessageList/hooks/VirtualizedMessageList/useShouldForceScrollToBottom.js 387 B
./dist/components/MessageList/hooks/VirtualizedMessageList/useUnreadMessagesNotificationVirtualized.js 633 B
./dist/components/MessageList/icons.js 591 B
./dist/components/MessageList/index.js 201 B
./dist/components/MessageList/MessageList.js 2.66 kB
./dist/components/MessageList/MessageListMainPanel.js 197 B
./dist/components/MessageList/MessageListNotifications.js 439 B
./dist/components/MessageList/MessageNotification.js 268 B
./dist/components/MessageList/renderMessages.js 1.13 kB
./dist/components/MessageList/ScrollToBottomButton.js 970 B
./dist/components/MessageList/UnreadMessagesNotification.js 396 B
./dist/components/MessageList/UnreadMessagesSeparator.js 307 B
./dist/components/MessageList/utils.js 2.8 kB
./dist/components/MessageList/VirtualizedMessageList.js 3.8 kB
./dist/components/MessageList/VirtualizedMessageListComponents.js 1.86 kB
./dist/components/MML/index.js 43 B
./dist/components/MML/MML.js 394 B
./dist/components/Modal/icons.js 431 B
./dist/components/Modal/index.js 45 B
./dist/components/Modal/Modal.js 594 B
./dist/components/ReactFileUtilities/FileIcon/FileIcon.js 362 B
./dist/components/ReactFileUtilities/FileIcon/FileIconSet.js 5.26 kB
./dist/components/ReactFileUtilities/FileIcon/iconMap.js 527 B
./dist/components/ReactFileUtilities/FileIcon/index.js 53 B
./dist/components/ReactFileUtilities/FileIcon/mimeTypes.js 833 B
./dist/components/ReactFileUtilities/ImageDropzone.js 914 B
./dist/components/ReactFileUtilities/index.js 110 B
./dist/components/ReactFileUtilities/LoadingIndicator.js 257 B
./dist/components/ReactFileUtilities/types.js 31 B
./dist/components/ReactFileUtilities/UploadButton.js 219 B
./dist/components/ReactFileUtilities/utils.js 1.17 kB
./dist/components/Reactions/hooks/useFetchReactions.js 411 B
./dist/components/Reactions/hooks/useProcessReactions.js 959 B
./dist/components/Reactions/index.js 109 B
./dist/components/Reactions/reactionOptions.js 324 B
./dist/components/Reactions/ReactionSelector.js 1.73 kB
./dist/components/Reactions/ReactionsList.js 943 B
./dist/components/Reactions/ReactionsListModal.js 946 B
./dist/components/Reactions/SimpleReactionsList.js 779 B
./dist/components/Reactions/SpriteImage.js 638 B
./dist/components/Reactions/StreamEmoji.js 379 B
./dist/components/Reactions/types.js 31 B
./dist/components/Reactions/utils/utils.js 281 B
./dist/components/SafeAnchor/index.js 74 B
./dist/components/SafeAnchor/SafeAnchor.js 327 B
./dist/components/Thread/icons.js 352 B
./dist/components/Thread/index.js 75 B
./dist/components/Thread/Thread.js 1.48 kB
./dist/components/Thread/ThreadHead.js 278 B
./dist/components/Thread/ThreadHeader.js 430 B
./dist/components/Thread/ThreadStart.js 262 B
./dist/components/Threads/hooks/useThreadManagerState.js 168 B
./dist/components/Threads/hooks/useThreadState.js 250 B
./dist/components/Threads/icons.js 880 B
./dist/components/Threads/index.js 61 B
./dist/components/Threads/ThreadContext.js 239 B
./dist/components/Threads/ThreadList/index.js 64 B
./dist/components/Threads/ThreadList/ThreadList.js 716 B
./dist/components/Threads/ThreadList/ThreadListEmptyPlaceholder.js 212 B
./dist/components/Threads/ThreadList/ThreadListItem.js 561 B
./dist/components/Threads/ThreadList/ThreadListItemUI.js 1.33 kB
./dist/components/Threads/ThreadList/ThreadListLoadingIndicator.js 347 B
./dist/components/Threads/ThreadList/ThreadListUnseenThreadsBanner.js 361 B
./dist/components/Threads/UnreadCountBadge.js 222 B
./dist/components/Tooltip/hooks/index.js 61 B
./dist/components/Tooltip/hooks/useEnterLeaveHandlers.js 234 B
./dist/components/Tooltip/index.js 47 B
./dist/components/Tooltip/Tooltip.js 372 B
./dist/components/TypingIndicator/index.js 55 B
./dist/components/TypingIndicator/TypingIndicator.js 834 B
./dist/components/UserItem/index.js 48 B
./dist/components/UserItem/UserItem.js 542 B
./dist/components/UtilityComponents/ErrorBoundary.js 252 B
./dist/components/UtilityComponents/index.js 72 B
./dist/components/UtilityComponents/NullComponent.js 61 B
./dist/components/Window/index.js 46 B
./dist/components/Window/Window.js 335 B
./dist/constants/limits.js 183 B
./dist/constants/messageTypes.js 105 B
./dist/context/ChannelActionContext.js 550 B
./dist/context/ChannelListContext.js 356 B
./dist/context/ChannelStateContext.js 548 B
./dist/context/ChatContext.js 538 B
./dist/context/ComponentContext.js 469 B
./dist/context/DialogManagerContext.js 294 B
./dist/context/index.js 149 B
./dist/context/MessageBounceContext.js 583 B
./dist/context/MessageContext.js 495 B
./dist/context/MessageInputContext.js 329 B
./dist/context/MessageListContext.js 356 B
./dist/context/TranslationContext.js 558 B
./dist/context/TypingContext.js 543 B
./dist/context/utils/getDisplayName.js 83 B
./dist/context/WithComponents.js 210 B
./dist/css/v2/emoji-mart.css 1.84 kB
./dist/css/v2/emoji-replacement.css 300 B
./dist/css/v2/index.css 28 kB
./dist/css/v2/index.layout.css 14.6 kB
./dist/i18n/index.js 162 B
./dist/i18n/Streami18n.js 5.31 kB
./dist/i18n/translations.js 172 B
./dist/i18n/types.js 31 B
./dist/i18n/utils.js 1.09 kB
./dist/index.js 85 B
./dist/plugins/Emojis/EmojiPicker.js 983 B
./dist/plugins/Emojis/icons.js 436 B
./dist/plugins/Emojis/index.browser.cjs 2.41 kB
./dist/plugins/Emojis/index.js 74 B
./dist/plugins/Emojis/index.node.cjs 2.45 kB
./dist/plugins/encoders/mp3.browser.cjs 1.67 kB
./dist/plugins/encoders/mp3.js 780 B
./dist/plugins/encoders/mp3.node.cjs 1.7 kB
./dist/store/hooks/index.js 53 B
./dist/store/hooks/useStateStore.js 232 B
./dist/store/index.js 45 B
./dist/types/index.js 31 B
./dist/types/types.js 31 B
./dist/utils/browsers.js 154 B
./dist/utils/deprecationWarning.js 294 B
./dist/utils/getChannel.js 871 B
./dist/utils/getWholeChar.js 415 B
./dist/utils/index.js 65 B
./dist/utils/mergeDeep.js 170 B
./dist/version.js 64 B

compressed-size-action

@arnautov-anton arnautov-anton force-pushed the feat/new-message-actions-api branch from 6ff40f6 to b2363e3 Compare October 25, 2024 14:40
@arnautov-anton arnautov-anton force-pushed the feat/new-message-actions-api branch from 70db932 to f154cd4 Compare October 29, 2024 11:38
@arnautov-anton arnautov-anton marked this pull request as ready for review October 29, 2024 11:38
import { defaultMessageActionSet } from './defaults';

export type MessageActionSetItem = {
Component: React.ComponentType;
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not sure if there's a good way to enforce non-null return type - any suggestions are welcome.

package.json Outdated Show resolved Hide resolved
src/components/Message/MessageOptions.tsx Outdated Show resolved Hide resolved
Copy link

codecov bot commented Oct 29, 2024

Codecov Report

All modified and coverable lines are covered by tests ✅

Project coverage is 84.79%. Comparing base (8c6bae9) to head (44ca88c).
Report is 5 commits behind head on master.

Additional details and impacted files
@@            Coverage Diff             @@
##           master    #2543      +/-   ##
==========================================
+ Coverage   84.78%   84.79%   +0.01%     
==========================================
  Files         392      392              
  Lines        8197     8196       -1     
  Branches     2040     2041       +1     
==========================================
  Hits         6950     6950              
+ Misses        960      959       -1     
  Partials      287      287              

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

@arnautov-anton arnautov-anton force-pushed the feat/new-message-actions-api branch from 300da96 to 44ca88c Compare October 29, 2024 12:15
@arnautov-anton arnautov-anton merged commit 17a1160 into master Oct 29, 2024
10 checks passed
@arnautov-anton arnautov-anton deleted the feat/new-message-actions-api branch October 29, 2024 12:34
github-actions bot pushed a commit that referenced this pull request Oct 29, 2024
## [12.4.0](v12.3.0...v12.4.0) (2024-10-29)

### Features

* new MessageActions component ([#2543](#2543)) ([17a1160](17a1160))
@stream-ci-bot
Copy link
Collaborator

🎉 This PR is included in version 12.4.0 🎉

The release is available on:

Your semantic-release bot 📦🚀

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants