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 ThreadList and ThreadProvider (Threads 2.0) #2407

Merged
merged 43 commits into from
Sep 4, 2024

Conversation

arnautov-anton
Copy link
Contributor

@arnautov-anton arnautov-anton commented May 29, 2024

🚂 GetStream/stream-chat-js#1330

This PR adds components for implementing a thread list view: ThreadList and ChatView. It also adds support for reactive state stores, like the ones that handle the thread list logic in the client.

useStateStore

Implements a binding from the reactive state store in the client to React components.

ThreadList

Implements a thread list. The component itself consists mostly of binding to the ThreadManager instance in the client.

Thread

The Thread component was modified to optionally use a reactive Thread instance from the ThreadContext. The component checks if ThreadContext is provided, and if so uses the thread instance from that context. Otherwise, it falls back to the ChannelContext as usual.

Currently, we use ThreadContext in the thread list view, where it is provided by the ChatView.ThreadAdapter component.

Note that even when ThreadContext is used, ChannelContext also must be provided. Most our components, including the ones used in threads, still expect the channel context to be there.

ChatView

A set of components implementing a simple in-memory router to switch between channel view and thread list view. Using it is totally optional. Most integrations will probably use their own router instead. Still, nice to have something out-of-the-box.

WithComponents

A new way to provide component overrides. Previously we allowed passing component overrides as props to Channel component, and then in some nested components as well, although not consistently.

WithComponents is a new recommended way to provide component overrides, which requires far less prop drilling and nests nicely.

BREAKING CHANGE: ComponentContext no longer provides any defaults

@arnautov-anton arnautov-anton force-pushed the feat/threads-v2 branch 2 times, most recently from d60dd9b to ffc1389 Compare June 11, 2024 11:59
@arnautov-anton arnautov-anton force-pushed the feat/threads-v2 branch 2 times, most recently from cb06b65 to e5e0cd9 Compare June 15, 2024 09:29
@MartinCupela MartinCupela force-pushed the master branch 2 times, most recently from 295c64b to cd5542d Compare July 1, 2024 09:39
@arnautov-anton arnautov-anton force-pushed the feat/threads-v2 branch 3 times, most recently from 7be0df7 to a624062 Compare July 16, 2024 23:34
VirtualMessage: props.VirtualMessage,
}),
// eslint-disable-next-line react-hooks/exhaustive-deps
[props.reactionOptions],
Copy link
Contributor

Choose a reason for hiding this comment

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

I think this was by design, changing overrides "in runtime" is not a good idea.

Copy link

github-actions bot commented Sep 4, 2024

Size Change: +18.8 kB (+1.82%)

Total Size: 1.05 MB

Filename Size Change
./dist/components/Avatar/Avatar.js 621 B +73 B (+13.32%) ⚠️
./dist/components/Channel/Channel.js 8.46 kB +90 B (+1.07%)
./dist/components/Chat/hooks/useChat.js 1.13 kB +19 B (+1.71%)
./dist/components/index.js 315 B +7 B (+2.27%)
./dist/components/Message/hooks/useReactionHandler.js 1.91 kB +111 B (+6.17%) 🔍
./dist/components/Message/Message.js 2 kB +26 B (+1.32%)
./dist/components/Message/MessageSimple.js 2.23 kB +13 B (+0.59%)
./dist/components/Message/QuotedMessage.js 747 B +16 B (+2.19%)
./dist/components/Message/utils.js 2.85 kB -5 B (-0.18%)
./dist/components/MessageInput/QuotedMessagePreview.js 701 B +14 B (+2.04%)
./dist/components/MessageList/MessageList.js 2.6 kB -29 B (-1.11%)
./dist/components/MessageList/renderMessages.js 1.13 kB +50 B (+4.64%) 🔍
./dist/components/MessageList/VirtualizedMessageList.js 3.7 kB +56 B (+1.54%)
./dist/components/MessageList/VirtualizedMessageListComponents.js 1.85 kB -8 B (-0.43%)
./dist/components/Reactions/hooks/useProcessReactions.js 959 B +12 B (+1.27%)
./dist/components/Reactions/ReactionSelector.js 1.65 kB +15 B (+0.92%)
./dist/components/Thread/Thread.js 1.47 kB +283 B (+23.94%) 🚨
./dist/context/ComponentContext.js 469 B -73 B (-13.47%) 👏
./dist/context/index.js 139 B +8 B (+6.11%) 🔍
./dist/context/MessageContext.js 495 B -48 B (-8.84%)
./dist/css/v2/index.css 27.8 kB +1.22 kB (+4.6%) 🔍
./dist/css/v2/index.layout.css 14.4 kB +710 B (+5.19%) 🔍
./dist/index.browser.cjs 353 kB +4.38 kB (+1.25%)
./dist/index.node.cjs 389 kB +4.57 kB (+1.19%)
./dist/components/ChatView/ChatView.js 1.32 kB +1.32 kB (new file) 🆕
./dist/components/ChatView/index.js 48 B +48 B (new file) 🆕
./dist/components/Threads/hooks/useStateStore.js 232 B +232 B (new file) 🆕
./dist/components/Threads/hooks/useThreadManagerState.js 164 B +164 B (new file) 🆕
./dist/components/Threads/hooks/useThreadState.js 248 B +248 B (new file) 🆕
./dist/components/Threads/icons.js 880 B +880 B (new file) 🆕
./dist/components/Threads/index.js 83 B +83 B (new file) 🆕
./dist/components/Threads/ThreadContext.js 239 B +239 B (new file) 🆕
./dist/components/Threads/ThreadList/index.js 64 B +64 B (new file) 🆕
./dist/components/Threads/ThreadList/ThreadList.js 718 B +718 B (new file) 🆕
./dist/components/Threads/ThreadList/ThreadListEmptyPlaceholder.js 212 B +212 B (new file) 🆕
./dist/components/Threads/ThreadList/ThreadListItem.js 561 B +561 B (new file) 🆕
./dist/components/Threads/ThreadList/ThreadListItemUI.js 1.4 kB +1.4 kB (new file) 🆕
./dist/components/Threads/ThreadList/ThreadListLoadingIndicator.js 348 B +348 B (new file) 🆕
./dist/components/Threads/ThreadList/ThreadListUnseenThreadsBanner.js 359 B +359 B (new file) 🆕
./dist/components/Threads/UnreadCountBadge.js 222 B +222 B (new file) 🆕
./dist/context/WithComponents.js 210 B +210 B (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/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.14 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 748 B
./dist/components/ChannelHeader/icons.js 440 B
./dist/components/ChannelHeader/index.js 53 B
./dist/components/ChannelList/ChannelList.js 2.44 kB
./dist/components/ChannelList/ChannelListMessenger.js 430 B
./dist/components/ChannelList/hooks/index.js 193 B
./dist/components/ChannelList/hooks/useChannelDeletedListener.js 421 B
./dist/components/ChannelList/hooks/useChannelHiddenListener.js 422 B
./dist/components/ChannelList/hooks/useChannelTruncatedListener.js 348 B
./dist/components/ChannelList/hooks/useChannelUpdatedListener.js 484 B
./dist/components/ChannelList/hooks/useChannelVisibleListener.js 442 B
./dist/components/ChannelList/hooks/useConnectionRecoveredListener.js 278 B
./dist/components/ChannelList/hooks/useMessageNewListener.js 546 B
./dist/components/ChannelList/hooks/useMobileNavigation.js 275 B
./dist/components/ChannelList/hooks/useNotificationAddedToChannelListener.js 572 B
./dist/components/ChannelList/hooks/useNotificationMessageNewListener.js 486 B
./dist/components/ChannelList/hooks/useNotificationRemovedFromChannelListener.js 374 B
./dist/components/ChannelList/hooks/usePaginatedChannels.js 1.25 kB
./dist/components/ChannelList/hooks/useUserPresenceChangedListener.js 403 B
./dist/components/ChannelList/index.js 78 B
./dist/components/ChannelList/utils.js 270 B
./dist/components/ChannelPreview/ChannelPreview.js 889 B
./dist/components/ChannelPreview/ChannelPreviewMessenger.js 780 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/index.js 81 B
./dist/components/ChannelPreview/utils.js 580 B
./dist/components/ChannelSearch/ChannelSearch.js 816 B
./dist/components/ChannelSearch/hooks/useChannelSearch.js 1.64 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/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/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/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/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/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/MessageDeleted.js 363 B
./dist/components/Message/MessageEditedTimestamp.js 418 B
./dist/components/Message/MessageErrorText.js 366 B
./dist/components/Message/MessageOptions.js 800 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/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/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.43 kB
./dist/components/MessageActions/MessageActionsBox.js 1.01 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 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.54 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/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 988 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 445 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/MessageListMainPanel.js 187 B
./dist/components/MessageList/MessageListNotifications.js 439 B
./dist/components/MessageList/MessageNotification.js 268 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.8 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/index.js 109 B
./dist/components/Reactions/reactionOptions.js 324 B
./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/ThreadHead.js 278 B
./dist/components/Thread/ThreadHeader.js 430 B
./dist/components/Thread/ThreadStart.js 262 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/MessageBounceContext.js 583 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/css/v2/emoji-mart.css 1.84 kB
./dist/css/v2/emoji-replacement.css 300 B
./dist/i18n/de.json 2.96 kB
./dist/i18n/en.json 1.89 kB
./dist/i18n/es.json 2.95 kB
./dist/i18n/fr.json 3.04 kB
./dist/i18n/hi.json 3.41 kB
./dist/i18n/index.js 162 B
./dist/i18n/it.json 2.96 kB
./dist/i18n/ja.json 3.27 kB
./dist/i18n/ko.json 3.2 kB
./dist/i18n/nl.json 2.85 kB
./dist/i18n/pt.json 2.91 kB
./dist/i18n/ru.json 3.6 kB
./dist/i18n/Streami18n.js 5.31 kB
./dist/i18n/tr.json 2.92 kB
./dist/i18n/translations.js 172 B
./dist/i18n/types.js 31 B
./dist/i18n/utils.js 1.09 kB
./dist/index.js 78 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/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

Copy link

codecov bot commented Sep 4, 2024

Codecov Report

Attention: Patch coverage is 57.09343% with 124 lines in your changes missing coverage. Please review.

Project coverage is 84.50%. Comparing base (a39ceda) to head (ad615d4).
Report is 1 commits behind head on master.

Files with missing lines Patch % Lines
src/components/ChatView/ChatView.tsx 35.71% 36 Missing ⚠️
...components/Threads/ThreadList/ThreadListItemUI.tsx 29.54% 31 Missing ⚠️
src/components/Threads/ThreadList/ThreadList.tsx 34.28% 23 Missing ⚠️
src/components/Thread/Thread.tsx 64.28% 3 Missing and 2 partials ⚠️
.../Threads/ThreadList/ThreadListLoadingIndicator.tsx 54.54% 5 Missing ⚠️
...reads/ThreadList/ThreadListUnseenThreadsBanner.tsx 54.54% 5 Missing ⚠️
src/components/Threads/UnreadCountBadge.tsx 50.00% 3 Missing ⚠️
src/components/Threads/hooks/useStateStore.ts 70.00% 3 Missing ⚠️
src/components/Threads/icons.tsx 50.00% 3 Missing ⚠️
...c/components/Threads/ThreadList/ThreadListItem.tsx 75.00% 2 Missing ⚠️
... and 8 more
Additional details and impacted files
@@            Coverage Diff             @@
##           master    #2407      +/-   ##
==========================================
- Coverage   85.52%   84.50%   -1.03%     
==========================================
  Files         369      384      +15     
  Lines        7864     8105     +241     
  Branches     1908     1955      +47     
==========================================
+ Hits         6726     6849     +123     
- Misses       1046     1165     +119     
+ Partials       92       91       -1     

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

@myandrienko myandrienko marked this pull request as ready for review September 4, 2024 00:58
@arnautov-anton arnautov-anton merged commit 7869ca6 into master Sep 4, 2024
8 checks passed
@arnautov-anton arnautov-anton deleted the feat/threads-v2 branch September 4, 2024 12:06
arnautov-anton added a commit that referenced this pull request Sep 4, 2024
🚂 GetStream/stream-chat-js#1330

This PR adds components for implementing a thread list view: ThreadList
and ChatView. It also adds support for reactive state stores, like the
ones that handle the thread list logic in the client.

Implements a binding from the reactive state store in the client to
React components.

Implements a thread list. The component itself consists mostly of
binding to the `ThreadManager` instance in the client.

The Thread component was modified to optionally use a reactive `Thread`
instance from the `ThreadContext`. The component checks if
`ThreadContext` is provided, and if so uses the thread instance from
that context. Otherwise, it falls back to the `ChannelContext` as usual.

Currently, we use `ThreadContext` in the thread list view, where it is
provided by the `ChatView.ThreadAdapter` component.

Note that even when `ThreadContext` is used, `ChannelContext` also must
be provided. Most our components, including the ones used in threads,
still expect the channel context to be there.

A set of components implementing a simple in-memory router to switch
between channel view and thread list view. Using it is totally optional.
Most integrations will probably use their own router instead. Still,
nice to have something out-of-the-box.

A new way to provide component overrides. Previously we allowed passing
component overrides as props to `Channel` component, and then in some
nested components as well, although not consistently.

`WithComponents` is a new recommended way to provide component
overrides, which requires far less prop drilling and nests nicely.

---------

Co-authored-by: Matvei Andrienko <m.y.andrienko@outlook.com>

BREAKING CHANGE: ComponentContext no longer provides any defaults
@arnautov-anton arnautov-anton changed the title feat: ThreadList and ThreadProvider (v2) feat: add ThreadList and ThreadProvider (Threads 2.0) Sep 4, 2024
arnautov-anton added a commit that referenced this pull request Sep 4, 2024
🚂 GetStream/stream-chat-js#1330

This PR adds components for implementing a thread list view: ThreadList
and ChatView. It also adds support for reactive state stores, like the
ones that handle the thread list logic in the client.

Implements a binding from the reactive state store in the client to
React components.

Implements a thread list. The component itself consists mostly of
binding to the `ThreadManager` instance in the client.

The Thread component was modified to optionally use a reactive `Thread`
instance from the `ThreadContext`. The component checks if
`ThreadContext` is provided, and if so uses the thread instance from
that context. Otherwise, it falls back to the `ChannelContext` as usual.

Currently, we use `ThreadContext` in the thread list view, where it is
provided by the `ChatView.ThreadAdapter` component.

Note that even when `ThreadContext` is used, `ChannelContext` also must
be provided. Most our components, including the ones used in threads,
still expect the channel context to be there.

A set of components implementing a simple in-memory router to switch
between channel view and thread list view. Using it is totally optional.
Most integrations will probably use their own router instead. Still,
nice to have something out-of-the-box.

A new way to provide component overrides. Previously we allowed passing
component overrides as props to `Channel` component, and then in some
nested components as well, although not consistently.

`WithComponents` is a new recommended way to provide component
overrides, which requires far less prop drilling and nests nicely.

BREAKING CHANGE: ComponentContext no longer provides any defaults

---------

Co-authored-by: Matvei Andrienko <m.y.andrienko@outlook.com>
github-actions bot pushed a commit that referenced this pull request Sep 4, 2024
## [12.0.0-rc.11](v12.0.0-rc.10...v12.0.0-rc.11) (2024-09-04)

### ⚠ BREAKING CHANGES

* ComponentContext no longer provides any defaults

### Bug Fixes

* MessageActions adjustments ([#2472](#2472)) ([fbd1b6f](fbd1b6f))
* quote replies in threads ([#2487](#2487)) ([0e4a6f1](0e4a6f1))

### Features

* add ThreadList and ThreadProvider (Threads 2.0) ([#2407](#2407)) ([941707d](941707d))

### Chores

* **deps:** bump version of stream-chat in peerDeps ([#2481](#2481)) ([466385d](466385d))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants