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: add general purpose search components #2588

Merged
merged 55 commits into from
Feb 12, 2025

Conversation

MartinCupela
Copy link
Contributor

@MartinCupela MartinCupela commented Dec 20, 2024

🎯 Goal

Provide general purpose search components and controller. Allow for absolute search customization.

Fixes React-24

Closes #1412

Depends on

🛠 Implementation details

Search controller

Coordinates search execution among individual search sources. Allows to combine unknown search sources defined by the integrator. Implements the search state machine.

Base search source

Takes care of common search source task like:

  • debounced execution of the query logic defined by every search source
  • keep the activity, pagination and loading state.

Search source

Class that takes advantage of inheriting from BaseSearchSource. Each search source should defined integrators or the default one is responsible for:

  • custom search query composition and execution,
  • additional query results filtering
  • search filters / sort / options override

React components

The new components live in experimental/Search folder. This allows for component name duplication compared to ChannelSearch components.

An important change is the ability to jump from a message search result to that message in the parent channel. Currently the information about the jumped-to-message is stored in the SearchController state, but this should be moved to a future message list controller state.

The searchController instance has been added to the ChatContext.

ChannelList allows to override the ChannelSearch component with the experimental Search component as

<WithComponents overrides={{ Search }}>
 <ChannelList/>
</WithComponents>

Also ChannelAvatar has been added to the component context value as a separate key and is prioritized in ChannelHeader and ChannelPreview,

Out of scope

  • search for replies - we cannot jump to a message in a thread message list and implementing this would extend the scope of the PR
  • showing search querying errors - we do not have a general purpose notification service implementation of which would extend the scope
  • keeping the search string history in SearchController - missing clear specs / exploration on how this should work
  • ability to add custom search source state properties
  • removing messages that were truncated - this should be handled by the back-end, but is not at the moment and so the results will contain messages to which it will not be possible jump

🎨 UI Changes

  1. Search inactive
image
  1. Search active (all sources active)
image
  1. Search active (single source active)
image
  1. Quick overview of state changes
VO0L.webm

@MartinCupela MartinCupela marked this pull request as ready for review January 17, 2025 17:06
@GetStream GetStream deleted a comment from github-actions bot Jan 31, 2025
Copy link

github-actions bot commented Jan 31, 2025

Size Change: +146 kB (+12.11%) ⚠️

Total Size: 1.35 MB

Filename Size Change
./dist/components/Channel/Channel.js 8.93 kB +191 B (+2.18%)
./dist/components/Channel/channelState.js 938 B +13 B (+1.41%)
./dist/components/ChannelList/ChannelList.js 2.68 kB +243 B (+9.97%) ⚠️
./dist/components/ChannelPreview/ChannelPreview.js 950 B -13 B (-1.35%)
./dist/components/ChannelSearch/SearchBar.js 1.08 kB -19 B (-1.73%)
./dist/components/ChannelSearch/SearchResults.js 1.29 kB -25 B (-1.91%)
./dist/components/Chat/Chat.js 754 B +135 B (+21.81%) 🚨
./dist/components/Chat/hooks/useCreateChatContext.js 557 B +16 B (+2.96%)
./dist/components/InfiniteScrollPaginator/InfiniteScroll.js 1.61 kB +11 B (+0.69%)
./dist/components/InfiniteScrollPaginator/InfiniteScrollPaginator.js 996 B +28 B (+2.89%)
./dist/experimental/index.browser.cjs 70.4 kB +60.1 kB (+585.91%) 🆘
./dist/experimental/index.js 66 B +12 B (+22.22%) 🚨
./dist/experimental/index.node.cjs 82.6 kB +72.2 kB (+698.66%) 🆘
./dist/i18n/de.json 3.82 kB +137 B (+3.72%)
./dist/i18n/en.json 2.52 kB +104 B (+4.31%)
./dist/i18n/es.json 3.81 kB +141 B (+3.84%)
./dist/i18n/fr.json 3.93 kB +139 B (+3.67%)
./dist/i18n/hi.json 4.39 kB +140 B (+3.29%)
./dist/i18n/it.json 3.84 kB +136 B (+3.67%)
./dist/i18n/ja.json 4.16 kB +149 B (+3.72%)
./dist/i18n/ko.json 4.08 kB +143 B (+3.63%)
./dist/i18n/nl.json 3.73 kB +127 B (+3.53%)
./dist/i18n/pt.json 3.82 kB +145 B (+3.95%)
./dist/i18n/ru.json 4.68 kB +145 B (+3.2%)
./dist/i18n/tr.json 3.77 kB +137 B (+3.77%)
./dist/index.browser.cjs 387 kB +1.82 kB (+0.47%)
./dist/index.node.cjs 424 kB +1.89 kB (+0.45%)
./dist/experimental/Search/hooks/index.js 86 B +86 B (new file) 🆕
./dist/experimental/Search/hooks/useSearchFocusedMessage.js 224 B +224 B (new file) 🆕
./dist/experimental/Search/hooks/useSearchQueriesInProgress.js 388 B +388 B (new file) 🆕
./dist/experimental/Search/index.js 83 B +83 B (new file) 🆕
./dist/experimental/Search/Search.js 485 B +485 B (new file) 🆕
./dist/experimental/Search/SearchBar/index.js 49 B +49 B (new file) 🆕
./dist/experimental/Search/SearchBar/SearchBar.js 852 B +852 B (new file) 🆕
./dist/experimental/Search/SearchContext.js 244 B +244 B (new file) 🆕
./dist/experimental/Search/SearchResults/index.js 128 B +128 B (new file) 🆕
./dist/experimental/Search/SearchResults/SearchResultItem.js 1.11 kB +1.11 kB (new file) 🆕
./dist/experimental/Search/SearchResults/SearchResults.js 520 B +520 B (new file) 🆕
./dist/experimental/Search/SearchResults/SearchResultsHeader.js 599 B +599 B (new file) 🆕
./dist/experimental/Search/SearchResults/SearchResultsPresearch.js 213 B +213 B (new file) 🆕
./dist/experimental/Search/SearchResults/SearchSourceResultList.js 563 B +563 B (new file) 🆕
./dist/experimental/Search/SearchResults/SearchSourceResultListFooter.js 426 B +426 B (new file) 🆕
./dist/experimental/Search/SearchResults/SearchSourceResults.js 461 B +461 B (new file) 🆕
./dist/experimental/Search/SearchResults/SearchSourceResultsEmpty.js 215 B +215 B (new file) 🆕
./dist/experimental/Search/SearchResults/SearchSourceResultsHeader.js 73 B +73 B (new file) 🆕
./dist/experimental/Search/SearchResults/SearchSourceResultsLoadingIndicator.js 275 B +275 B (new file) 🆕
./dist/experimental/Search/SearchSourceResultsContext.js 255 B +255 B (new file) 🆕
ℹ️ View Unchanged
Filename Size
./dist/components/AIStateIndicator/AIStateIndicator.js 367 B
./dist/components/AIStateIndicator/hooks/useAIState.js 524 B
./dist/components/AIStateIndicator/index.js 73 B
./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.5 kB
./dist/components/Attachment/components/DownloadButton.js 241 B
./dist/components/Attachment/components/FileSizeIndicator.js 291 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 278 B
./dist/components/Attachment/components/WaveProgressBar.js 1.4 kB
./dist/components/Attachment/FileAttachment.js 367 B
./dist/components/Attachment/hooks/useAudioController.js 1.38 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 750 B
./dist/components/Attachment/VoiceRecording.js 944 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.04 kB
./dist/components/AutoCompleteTextarea/types.js 31 B
./dist/components/AutoCompleteTextarea/utils.js 737 B
./dist/components/Avatar/Avatar.js 621 B
./dist/components/Avatar/ChannelAvatar.js 221 B
./dist/components/Avatar/GroupAvatar.js 351 B
./dist/components/Avatar/index.js 65 B
./dist/components/Channel/constants.js 77 B
./dist/components/Channel/hooks/useChannelContainerClasses.js 312 B
./dist/components/Channel/hooks/useCreateChannelStateContext.js 1.19 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 376 B
./dist/components/Channel/index.js 118 B
./dist/components/Channel/LoadingChannel.js 342 B
./dist/components/Channel/utils.js 734 B
./dist/components/ChannelHeader/ChannelHeader.js 740 B
./dist/components/ChannelHeader/icons.js 440 B
./dist/components/ChannelHeader/index.js 53 B
./dist/components/ChannelList/ChannelListMessenger.js 430 B
./dist/components/ChannelList/hooks/index.js 205 B
./dist/components/ChannelList/hooks/useChannelDeletedListener.js 383 B
./dist/components/ChannelList/hooks/useChannelHiddenListener.js 385 B
./dist/components/ChannelList/hooks/useChannelListShape.js 2.68 kB
./dist/components/ChannelList/hooks/useChannelMembershipState.js 188 B
./dist/components/ChannelList/hooks/useChannelTruncatedListener.js 314 B
./dist/components/ChannelList/hooks/useChannelUpdatedListener.js 454 B
./dist/components/ChannelList/hooks/useChannelVisibleListener.js 406 B
./dist/components/ChannelList/hooks/useConnectionRecoveredListener.js 244 B
./dist/components/ChannelList/hooks/useMessageNewListener.js 529 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.26 kB
./dist/components/ChannelList/hooks/useSelectedChannelState.js 385 B
./dist/components/ChannelList/hooks/useUserPresenceChangedListener.js 369 B
./dist/components/ChannelList/index.js 78 B
./dist/components/ChannelList/utils.js 1.37 kB
./dist/components/ChannelPreview/ChannelPreviewActionButtons.js 477 B
./dist/components/ChannelPreview/ChannelPreviewMessenger.js 884 B
./dist/components/ChannelPreview/hooks/index.js 97 B
./dist/components/ChannelPreview/hooks/useChannelPreviewInfo.js 445 B
./dist/components/ChannelPreview/hooks/useIsChannelMuted.js 299 B
./dist/components/ChannelPreview/hooks/useMessageDeliveryStatus.js 744 B
./dist/components/ChannelPreview/icons.js 573 B
./dist/components/ChannelPreview/index.js 95 B
./dist/components/ChannelPreview/utils.js 1.1 kB
./dist/components/ChannelSearch/ChannelSearch.js 815 B
./dist/components/ChannelSearch/hooks/useChannelSearch.js 1.73 kB
./dist/components/ChannelSearch/icons.js 684 B
./dist/components/ChannelSearch/index.js 85 B
./dist/components/ChannelSearch/SearchInput.js 295 B
./dist/components/ChannelSearch/utils.js 72 B
./dist/components/Chat/hooks/useChannelsQueryState.js 181 B
./dist/components/Chat/hooks/useChat.js 1.22 kB
./dist/components/Chat/hooks/useCreateChatClient.js 482 B
./dist/components/Chat/index.js 71 B
./dist/components/ChatAutoComplete/ChatAutoComplete.js 981 B
./dist/components/ChatAutoComplete/index.js 56 B
./dist/components/ChatView/ChatView.js 1.33 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 1.12 kB
./dist/components/Dialog/DialogMenu.js 212 B
./dist/components/Dialog/DialogPortal.js 450 B
./dist/components/Dialog/FormDialog.js 1.02 kB
./dist/components/Dialog/hooks/index.js 49 B
./dist/components/Dialog/hooks/useDialog.js 537 B
./dist/components/Dialog/index.js 79 B
./dist/components/Dialog/PromptDialog.js 283 B
./dist/components/DragAndDrop/DragAndDropContainer.js 1.11 kB
./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 736 B
./dist/components/EventComponent/index.js 54 B
./dist/components/Form/FieldError.js 171 B
./dist/components/Form/SwitchField.js 459 B
./dist/components/Gallery/BaseImage.js 412 B
./dist/components/Gallery/Gallery.js 1.02 kB
./dist/components/Gallery/Image.js 593 B
./dist/components/Gallery/index.js 70 B
./dist/components/Gallery/ModalGallery.js 676 B
./dist/components/index.js 329 B
./dist/components/InfiniteScrollPaginator/hooks/useCursorPaginator.js 526 B
./dist/components/InfiniteScrollPaginator/index.js 54 B
./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 443 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.66 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.51 kB
./dist/components/Message/hooks/index.js 160 B
./dist/components/Message/hooks/useActionHandler.js 562 B
./dist/components/Message/hooks/useDeleteHandler.js 396 B
./dist/components/Message/hooks/useEditHandler.js 243 B
./dist/components/Message/hooks/useFlagHandler.js 515 B
./dist/components/Message/hooks/useMarkUnreadHandler.js 501 B
./dist/components/Message/hooks/useMentionsHandler.js 334 B
./dist/components/Message/hooks/useMessageTextStreaming.js 650 B
./dist/components/Message/hooks/useMuteHandler.js 666 B
./dist/components/Message/hooks/useOpenThreadHandler.js 265 B
./dist/components/Message/hooks/usePinHandler.js 649 B
./dist/components/Message/hooks/useReactionHandler.js 1.47 kB
./dist/components/Message/hooks/useReactionsFetcher.js 513 B
./dist/components/Message/hooks/useRetryHandler.js 206 B
./dist/components/Message/hooks/useUserHandler.js 193 B
./dist/components/Message/hooks/useUserRole.js 664 B
./dist/components/Message/icons.js 1.25 kB
./dist/components/Message/index.js 167 B
./dist/components/Message/Message.js 1.93 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/MessageOptions.js 824 B
./dist/components/Message/MessageRepliesCountButton.js 415 B
./dist/components/Message/MessageSimple.js 2.21 kB
./dist/components/Message/MessageStatus.js 1.11 kB
./dist/components/Message/MessageText.js 868 B
./dist/components/Message/MessageTimestamp.js 281 B
./dist/components/Message/QuotedMessage.js 823 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.67 kB
./dist/components/Message/renderText/types.js 31 B
./dist/components/Message/StreamedMessageText.js 309 B
./dist/components/Message/Timestamp.js 435 B
./dist/components/Message/types.js 31 B
./dist/components/Message/utils.js 2.87 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/MessageActions.js 1.16 kB
./dist/components/MessageActions/MessageActionsBox.js 1.04 kB
./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 599 B
./dist/components/MessageInput/AttachmentPreviewList/FileAttachmentPreview.js 689 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 662 B
./dist/components/MessageInput/AttachmentPreviewList/VoiceRecordingPreview.js 731 B
./dist/components/MessageInput/AttachmentSelector.js 1.9 kB
./dist/components/MessageInput/CooldownTimer.js 230 B
./dist/components/MessageInput/DefaultTriggerProvider.js 410 B
./dist/components/MessageInput/DropzoneProvider.js 491 B
./dist/components/MessageInput/EditMessageForm.js 486 B
./dist/components/MessageInput/hooks/index.js 79 B
./dist/components/MessageInput/hooks/useAttachments.js 2.07 kB
./dist/components/MessageInput/hooks/useCommandTrigger.js 779 B
./dist/components/MessageInput/hooks/useCooldownTimer.js 640 B
./dist/components/MessageInput/hooks/useCreateMessageInputContext.js 1.01 kB
./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 889 B
./dist/components/MessageInput/hooks/usePasteHandler.js 659 B
./dist/components/MessageInput/hooks/useSubmitHandler.js 1.75 kB
./dist/components/MessageInput/hooks/useTimeElapsed.js 354 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.73 kB
./dist/components/MessageInput/icons.js 2.42 kB
./dist/components/MessageInput/index.js 188 B
./dist/components/MessageInput/LinkPreviewList.js 727 B
./dist/components/MessageInput/MessageInput.js 640 B
./dist/components/MessageInput/MessageInputFlat.js 2.38 kB
./dist/components/MessageInput/QuotedMessagePreview.js 785 B
./dist/components/MessageInput/SendButton.js 226 B
./dist/components/MessageInput/StopAIGenerationButton.js 261 B
./dist/components/MessageInput/types.js 387 B
./dist/components/MessageList/ConnectionStatus.js 426 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 534 B
./dist/components/MessageList/hooks/MessageList/useMessageListScrollManager.js 873 B
./dist/components/MessageList/hooks/MessageList/useScrollLocationLogic.js 797 B
./dist/components/MessageList/hooks/MessageList/useUnreadMessagesNotification.js 993 B
./dist/components/MessageList/hooks/useLastReadData.js 207 B
./dist/components/MessageList/hooks/useMarkRead.js 1.1 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 326 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 425 B
./dist/components/MessageList/hooks/VirtualizedMessageList/useShouldForceScrollToBottom.js 387 B
./dist/components/MessageList/hooks/VirtualizedMessageList/useUnreadMessagesNotificationVirtualized.js 638 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 444 B
./dist/components/MessageList/MessageNotification.js 268 B
./dist/components/MessageList/renderMessages.js 981 B
./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.97 kB
./dist/components/MessageList/VirtualizedMessageList.js 3.82 kB
./dist/components/MessageList/VirtualizedMessageListComponents.js 1.74 kB
./dist/components/MML/index.js 43 B
./dist/components/MML/MML.js 434 B
./dist/components/Modal/icons.js 431 B
./dist/components/Modal/index.js 45 B
./dist/components/Modal/Modal.js 595 B
./dist/components/Modal/ModalHeader.js 243 B
./dist/components/Poll/constants.js 122 B
./dist/components/Poll/hooks/index.js 77 B
./dist/components/Poll/hooks/useManagePollVotesRealtime.js 637 B
./dist/components/Poll/hooks/usePollAnswerPagination.js 516 B
./dist/components/Poll/hooks/usePollOptionVotesPagination.js 520 B
./dist/components/Poll/index.js 127 B
./dist/components/Poll/Poll.js 246 B
./dist/components/Poll/PollActions/AddCommentForm.js 521 B
./dist/components/Poll/PollActions/EndPollDialog.js 396 B
./dist/components/Poll/PollActions/index.js 124 B
./dist/components/Poll/PollActions/PollAction.js 252 B
./dist/components/Poll/PollActions/PollActions.js 1.12 kB
./dist/components/Poll/PollActions/PollAnswerList.js 721 B
./dist/components/Poll/PollActions/PollOptionsFullList.js 378 B
./dist/components/Poll/PollActions/PollResults/index.js 51 B
./dist/components/Poll/PollActions/PollResults/PollOptionVotesList.js 488 B
./dist/components/Poll/PollActions/PollResults/PollOptionWithLatestVotes.js 527 B
./dist/components/Poll/PollActions/PollResults/PollOptionWithVotesHeader.js 473 B
./dist/components/Poll/PollActions/PollResults/PollResults.js 693 B
./dist/components/Poll/PollActions/SuggestPollOptionForm.js 632 B
./dist/components/Poll/PollContent.js 415 B
./dist/components/Poll/PollCreationDialog/index.js 58 B
./dist/components/Poll/PollCreationDialog/OptionFieldSet.js 1.26 kB
./dist/components/Poll/PollCreationDialog/PollCreationDialog.js 1.45 kB
./dist/components/Poll/PollCreationDialog/PollCreationDialogControls.js 784 B
./dist/components/Poll/PollCreationDialog/types.js 31 B
./dist/components/Poll/PollHeader.js 508 B
./dist/components/Poll/PollOptionList.js 428 B
./dist/components/Poll/PollOptionSelector.js 1.18 kB
./dist/components/Poll/PollVote.js 694 B
./dist/components/Poll/QuotedPoll.js 340 B
./dist/components/Portal/Portal.js 246 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 917 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 640 B
./dist/components/ReactFileUtilities/utils.js 1.17 kB
./dist/components/Reactions/hooks/useFetchReactions.js 413 B
./dist/components/Reactions/hooks/useProcessReactions.js 960 B
./dist/components/Reactions/index.js 117 B
./dist/components/Reactions/reactionOptions.js 325 B
./dist/components/Reactions/ReactionSelector.js 1.74 kB
./dist/components/Reactions/ReactionSelectorWithButton.js 644 B
./dist/components/Reactions/ReactionsList.js 1.02 kB
./dist/components/Reactions/ReactionsListModal.js 947 B
./dist/components/Reactions/SimpleReactionsList.js 779 B
./dist/components/Reactions/SpriteImage.js 645 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.46 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 850 B
./dist/components/Threads/index.js 61 B
./dist/components/Threads/ThreadContext.js 242 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 564 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 371 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/AttachmentSelectorContext.js 199 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 466 B
./dist/context/DialogManagerContext.js 297 B
./dist/context/index.js 155 B
./dist/context/MessageBounceContext.js 585 B
./dist/context/MessageContext.js 491 B
./dist/context/MessageInputContext.js 329 B
./dist/context/MessageListContext.js 356 B
./dist/context/PollContext.js 206 B
./dist/context/TranslationContext.js 558 B
./dist/context/TypingContext.js 543 B
./dist/context/utils/getDisplayName.js 83 B
./dist/context/VirtualizedMessageListContext.js 237 B
./dist/context/WithComponents.js 212 B
./dist/css/v2/emoji-mart.css 1.84 kB
./dist/css/v2/emoji-replacement.css 300 B
./dist/css/v2/index.css 36.4 kB
./dist/css/v2/index.layout.css 20.7 kB
./dist/experimental/MessageActions/defaults.js 1.07 kB
./dist/experimental/MessageActions/hooks/index.js 82 B
./dist/experimental/MessageActions/hooks/useBaseMessageActionSetFilter.js 820 B
./dist/experimental/MessageActions/hooks/useSplitMessageActionSet.js 216 B
./dist/experimental/MessageActions/index.js 72 B
./dist/experimental/MessageActions/MessageActions.js 1.13 kB
./dist/i18n/index.js 162 B
./dist/i18n/Streami18n.js 5.32 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 949 B
./dist/plugins/Emojis/icons.js 436 B
./dist/plugins/Emojis/index.browser.cjs 2.42 kB
./dist/plugins/Emojis/index.js 74 B
./dist/plugins/Emojis/index.node.cjs 2.46 kB
./dist/plugins/encoders/mp3.browser.cjs 1.67 kB
./dist/plugins/encoders/mp3.js 780 B
./dist/plugins/encoders/mp3.node.cjs 1.71 kB
./dist/store/hooks/index.js 53 B
./dist/store/hooks/useStateStore.js 600 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 884 B
./dist/utils/getWholeChar.js 415 B
./dist/utils/index.js 65 B
./dist/utils/mergeDeep.js 170 B

compressed-size-action

Copy link

codecov bot commented Jan 31, 2025

Codecov Report

Attention: Patch coverage is 88.29114% with 37 lines in your changes missing coverage. Please review.

Project coverage is 81.03%. Comparing base (1c445de) to head (422600f).
Report is 3 commits behind head on master.

Files with missing lines Patch % Lines
src/components/Channel/Channel.tsx 65.00% 6 Missing and 1 partial ⚠️
src/components/ChannelSearch/SearchResults.tsx 0.00% 5 Missing ⚠️
...imental/Search/hooks/useSearchQueriesInProgress.ts 68.75% 5 Missing ⚠️
...rimental/Search/SearchResults/SearchResultItem.tsx 93.47% 2 Missing and 1 partial ⚠️
...ental/Search/SearchResults/SearchSourceResults.tsx 82.35% 3 Missing ⚠️
...rchResults/SearchSourceResultsLoadingIndicator.tsx 57.14% 3 Missing ⚠️
...xperimental/Search/SearchResults/SearchResults.tsx 90.00% 2 Missing ⚠️
...al/Search/SearchResults/SearchSourceResultList.tsx 90.00% 2 Missing ⚠️
.../Search/SearchResults/SearchSourceResultsEmpty.tsx 60.00% 2 Missing ⚠️
...experimental/Search/SearchSourceResultsContext.tsx 71.42% 2 Missing ⚠️
... and 3 more
Additional details and impacted files
@@            Coverage Diff             @@
##           master    #2588      +/-   ##
==========================================
+ Coverage   80.84%   81.03%   +0.19%     
==========================================
  Files         450      469      +19     
  Lines        9652     9929     +277     
  Branches     2303     2348      +45     
==========================================
+ Hits         7803     8046     +243     
- Misses       1730     1762      +32     
- Partials      119      121       +2     

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

@MartinCupela MartinCupela force-pushed the feat/search-channel-by-message-text branch from fc2a860 to ed3f7da Compare February 4, 2025 13:01
@@ -380,18 +398,29 @@ const UnMemoizedChannelList = <
},
);

const showChannelList = !searchActive || additionalChannelSearchProps?.popupResults;
const showChannelList =
(!searchActive && !searchIsActive) || additionalChannelSearchProps?.popupResults;
Copy link
Contributor

Choose a reason for hiding this comment

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

Not sure what the difference between searchActive and searchIsActive is at first glance.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

One is a label to display the old ChannelSearch and the other is derived from the state of searchController to display the new Search component.

@MartinCupela MartinCupela merged commit d545207 into master Feb 12, 2025
7 checks passed
@MartinCupela MartinCupela deleted the feat/search-channel-by-message-text branch February 12, 2025 11:18
github-actions bot pushed a commit that referenced this pull request Feb 12, 2025
## [12.12.0](v12.11.1...v12.12.0) (2025-02-12)

### Bug Fixes

* determine audio recording format with MediaRecorder.isTypeSupported not userAgent ([#2639](#2639)) ([1c445de](1c445de))

### Features

* add general purpose search components ([#2588](#2588)) ([d545207](d545207))

### Chores

* **deps:** upgrade react-markdown to v9 ([#2643](#2643)) ([07812fe](07812fe))
@stream-ci-bot
Copy link

🎉 This PR is included in version 12.12.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.

MessageSearchList component
4 participants