Skip to content

refactor!: align Thread with Channel - instance prop, provider, children - #3289

Merged
MartinCupela merged 9 commits into
release-v15from
refactor/thread-instance-axis
Sep 15, 2026
Merged

MartinCupela merged 9 commits into
release-v15from
refactor/thread-instance-axis

Conversation

@MartinCupela

Copy link
Copy Markdown
Contributor

🎯 Goal

Thread was the last major component still shaped by the pre-v15 architecture. It resolved its subject from a ThreadProvider someone else had to render, composed a fixed header/list/composer, and exposed customization only through pass-through props — five of them, with each new knob needing a sixth.

This aligns it with Channel: the instance comes in as a required prop, the provider goes out to the subtree, and the composition is the caller's.

🛠 Implementation details

Thread takes the instance and renders children

<Thread thread={thread}>
  <ThreadHeader />
  <MessageList withDateSeparator={false} />
  <MessageComposer focus />
</Thread>

It keeps only what Channel keeps: loading the thread, registering it with the ThreadManager, scoping audio playback, and the container element. ThreadSlot now mirrors ChannelSlot — it resolves the slot's thread, hands it to <Thread>, and wraps its children rather than being replaced by them.

The parent message moved to the message list. It has to sit inside the scroll container, so a caller cannot place it as a sibling — both lists resolve it from thread context via useThreadHead, and the head prop is gone. This is the one thing left implicit; everything a caller can express directly (date separators, autofocus, virtualized or not) now has to be said.

ThreadHeader stands alone. closeThread and thread are removed: the parent message comes from context, and closing goes through workspace navigation, which an app customizes once via ChatView's deriveWorkspaceNavigation. New useCloseThread() gives a custom header the same behavior.

disableDateSeparatorwithDateSeparator on both lists, removing the negation that Thread had to apply on the way down and the double negative inside useEnrichedMessages.

Earlier on the branch: ThreadInner's key is gone (the thread-switch reset lives in the message list, which is what actually holds per-thread state), ThreadList flashes only threads that actually arrived rather than every item on load, LegacyThreadContext is removed, and MessageComposer imports from defining modules instead of the package root, which was leaving bindings undefined through an ESM cycle.

Finally, Thread's store subscriptions were narrowed to the booleans it branches on, so the panel no longer re-renders on unrelated thread-list activity or on every incoming reply.

🎨 UI Changes

No intended visual change, with two exceptions:

  • Date separators in threads. Thread used to suppress the in-list separators for whichever list it rendered. With no Thread prop to do that, a MessageList in a thread follows its own default and shows them — pass withDateSeparator={false} for the v14 look. The parent message still carries a separator of its own either way.
  • str-chat__thread--virtualized is no longer set on the container; Thread cannot know which list you chose.

One layout fix went in with the reparenting: a drag-and-drop wrapper now sits inside <Thread> (its useChannel() resolves the thread's own channel from thread context), and a display: block element between .str-chat__thread and its children broke the flex column. Thread.scss mirrors the rule Channel.scss already had for the same case.

💥 Breaking changes

  • Thread requires a thread prop and renders children. additionalMessageComposerProps, additionalMessageListProps, additionalParentMessageProps, additionalVirtualizedMessageListProps, autoFocus, virtualized and enableDateSeparator are removed. It provides the thread itself — no surrounding ThreadProvider.
  • disableDateSeparatorwithDateSeparator on MessageList (default true) and VirtualizedMessageList (default false); also on processMessages, useEnrichedMessages, FloatingDateSeparator and both floating-separator hooks.
  • head removed from both message lists — override via ComponentContext.ThreadHead.
  • ThreadHeaderProps is down to overrideTitle; ComponentContext.ThreadHeader removed.
  • ThreadSlot wraps its children instead of letting them replace the panel.
  • LegacyThreadContext removed.

MartinCupela and others added 9 commits September 14, 2026 18:15
…package root

`useSendMessageFn` and `useUpdateMessageFn` imported `useChannel` and friends from `'../../..'`
-- the package's own public barrel -- which closes a cycle: root barrel -> components ->
these hooks -> root barrel. Any module graph that reaches the hooks before the barrel has
finished evaluating gets `undefined` for those bindings, which surfaces as
`TypeError: useChannel is not a function` at render time rather than as an import error.

It is reproducible from a test that mounts a composer without pulling the root barrel first,
which is what turned this up.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
…e subtree

`Thread` keyed `ThreadInner` on the thread, so switching thread destroyed everything below it --
header, composer, dropzone, audio provider -- to reset the one thing that actually holds
per-thread state. That is the pattern `Channel` shed in #3286, and the same reasoning applies
one level down.

The reset moves into the message list. `getMessageSourceKey({ channel, thread })` keys on the
thread when there is one and the channel otherwise, deliberately mirroring
`useMessagePaginator()` -- `thread?.messagePaginator ?? channel.messagePaginator` -- so the list
resets exactly when the paginator it reads from changes. Keying on the channel alone could not
express this: two threads of one channel share a channel, so a thread switch reset nothing.

`channelInstanceKey.ts` becomes `MessageList/messageSourceKey.ts`. The WeakMap and counter are
unchanged; it accepts either instance now, and it is a message-list concern rather than a
channel one.

An audit of what else relied on the remount found nothing that breaks: `Thread` and
`ThreadHeader` hold no local state, only store subscriptions that re-subscribe on the thread;
`ThreadHead` is already self-keyed on the parent message; the composer swaps via
`useMessageComposerController`, whose draft-saving cleanup keys on the composer rather than on
mount; `WithAudioPlayback` takes `playbackScope`. Autofocus survives too, though incidentally --
the focus effect depends on `attachments`, and each composer carries its own array. That is thin
enough to pin with a test, since making empty attachments a shared constant would break focus
with nothing else to catch it.

With the key gone, `ThreadInner` had no reason to exist: its `repliesEnabled` gate folds into the
null return beside `!threadInstance || !parentMessage`.

BREAKING CHANGE: `Thread` no longer rebuilds its subtree when the thread changes. A custom
component rendered inside `Thread` that relied on being remounted per thread -- to reset local
state, or to re-run a mount effect -- must depend on the thread instead. The SDK's own message
list does this by keying on the thread; `WithAudioPlayback` by taking `playbackScope`.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Opening the threads view lit up every row at once. The highlight was derived by diffing the
manager's threads array by reference, and the first page landing is a transition from `[]` to N
threads -- so all of them counted as new. Scrolling did the same thing to each page it loaded.
Neither is an arrival.

`ThreadManagerState.unseenThreadIds` already carries the right signal: the manager appends to it
only when a thread the list does not hold receives a message, which is exactly the case the flash
is for.

Reading it at the moment the list changes is not enough, though -- `reload()` clears
`unseenThreadIds` in the same update that puts those threads into `threads`, so by the time they
are on screen the manager no longer calls them unseen. The ids are remembered as they are
reported and consumed when the threads they name turn up.

Also fixes two things the rewrite made visible: the effect had no dependency array and
re-subscribed on every render, and the highlight map was replaced rather than merged, so a second
arrival cut short the flash of the first.

Extracted to its own module so it can be tested directly; ThreadList.test.tsx mocks
`useStateStore` and Virtuoso wholesale, which leaves no room to exercise this.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
…d-instance-axis

# Conflicts:
#	src/components/Thread/Thread.tsx
The two message lists took `disableDateSeparator` while `Thread` took
`enableDateSeparator` for the same setting, so the value had to be negated on
the way down and read as a double negative inside -- `useEnrichedMessages`
computed `const enableDateSeparator = !disableDateSeparator` before calling
`processMessages`, which already spoke in positive terms.

Both lists now take `withDateSeparator`. The defaults are unchanged in
behavior, only in spelling.

BREAKING CHANGE: `disableDateSeparator` is renamed to `withDateSeparator` on
`MessageList` (default `true`, was `disableDateSeparator={false}`) and
`VirtualizedMessageList` (default `false`, was `disableDateSeparator={true}`).
The rename also reaches `processMessages`, `useEnrichedMessages`,
`FloatingDateSeparator`, `useFloatingDateSeparator` and
`useFloatingDateSeparatorMessageList`.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
…e Channel

`Thread` conflated three jobs: it owned the thread's lifecycle, it composed a
fixed header/list/composer, and it read its subject from a `ThreadProvider`
someone else had to render. Customizing any part of the composition meant
another pass-through prop -- there were five, and each new knob needed a
sixth.

It now matches `Channel` on both halves of the pattern: the instance comes in
as a required prop, the provider goes out to the subtree, and what renders
inside is the caller's to write.

    <Thread thread={thread}>
      <ThreadHeader />
      <MessageList withDateSeparator={false} />
      <MessageComposer focus />
    </Thread>

The parent message stays with the message list, which resolves it from thread
context: it has to sit inside the scroll container, so a caller could not
place it as a sibling. Everything the caller can express directly -- date
separators, composer autofocus, virtualized or not -- now has to be said.

BREAKING CHANGE: `Thread` requires a `thread` prop and renders `children`.
`additionalMessageComposerProps`, `additionalMessageListProps`,
`additionalParentMessageProps`, `additionalVirtualizedMessageListProps`,
`autoFocus` and `virtualized` are removed -- pass those props to the children
you render. `Thread` provides the thread itself, so it no longer needs to be
wrapped in `ThreadProvider`. The `str-chat__thread--virtualized` class is
gone; `Thread` cannot know which list you chose.

BREAKING CHANGE: `Thread.enableDateSeparator` is removed with nothing in its
place. A `MessageList` in a thread now follows its own default and shows date
separators unless you pass `withDateSeparator={false}`.

BREAKING CHANGE: the `head` prop is removed from `MessageList` and
`VirtualizedMessageList`. Both render the thread's parent message from
context; override it with a `ThreadHead` component on `ComponentContext`.

BREAKING CHANGE: `ThreadHeaderProps` is down to `overrideTitle`. `thread`
comes from the thread in context, and `closeThread` goes through workspace
navigation -- customize it centrally via `ChatView`'s
`deriveWorkspaceNavigation`, or call the new `useCloseThread()` hook from a
header of your own. `ComponentContext.ThreadHeader` is removed; compose the
header you want.

BREAKING CHANGE: `ThreadSlot` wraps its children in `<Thread>` instead of
letting them replace the whole panel, mirroring `ChannelSlot`. Markup that
must sit outside the thread container moves outside `ThreadSlot`; anything
needing thread context must sit inside.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
The example apps were the first consumers of the new `<Thread thread={...}>`,
and moving them surfaced two things worth recording.

The drag-and-drop wrapper has to sit inside `<Thread>` now, because its
`useChannel()` resolves the thread's own channel from thread context. That
reparenting put a `display: block` element between `.str-chat__thread` and
its header/list/composer, so the thread's flex column stopped reaching them
and the content overflowed its box. `Channel.scss` already had the rule for
exactly this case; `Thread.scss` now mirrors it.

The tutorial apps had been rendering `<Thread />` with no `ThreadProvider`
anywhere, so `useThreadContext()` was undefined and the panel rendered
nothing -- every tutorial's CSS reserves `.str-chat__thread { width: 45% }`
for a panel that never appeared. Steps 2 and 5 had no `ChatView` either,
which is why their threads could not open: "reply in thread" goes through
workspace navigation, and without a layout host that is a no-op. All five
now host a thread slot and render the panel through `ThreadSlot`.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
…lections

Three of `Thread`'s four store subscriptions selected more than the component
uses, so unrelated activity re-rendered the panel and re-ran its effects:

- the `ThreadManager` selector took `threads`, whose identity changes on every
  mutation of the list -- a reload, a new thread, a reorder -- when all the
  component asks is whether this thread is in it;
- the paginator selector took `items`, which changes on every incoming reply,
  when both effects only test it for `undefined`;
- the thread selector took `replyCount`, likewise only ever read as `> 0`.

Each now selects the boolean the code actually branches on, so the panel
re-renders when those answers change rather than when their inputs do. The
effect conditions read as what they mean (`if (hasLoadedReplies || isLoading)`)
instead of reaching back through optional chains.

Also drops defensive code left over from when `thread` was resolved from
context and could be undefined: `useStateStore` returns undefined only for an
undefined store, and `Thread.state`, `Thread.messagePaginator` and
`Channel.configState` are all non-optional. The `??` fallback on the manager
subscription was the misleading one -- it implied the subscription could miss
a first value, which `useSyncExternalStore` does not.

The two reload effects stay separate on purpose, and say so: the stale
catch-up depends on `isStateStale` alone, so it fires once per staleness
episode. Merged into the load effect it would also re-run whenever that one's
inputs change -- registering the thread flips `isThreadManaged`, which
requests a second reload while the first is still in flight.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@coderabbitai

coderabbitai Bot commented Sep 15, 2026

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Advanced

Run ID: 4f6aed74-bc89-4b4c-ac47-30b4b99918f2

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@github-actions

Copy link
Copy Markdown

Size Change: +3.89 kB (+0.47%)

Total Size: 827 kB

📦 View Changed
Filename Size Change
dist/cjs/channel-detail.js 24.7 kB +173 B (+0.7%)
dist/cjs/emojis.js 2.57 kB +25 B (+0.98%)
dist/cjs/index.js 145 kB +139 kB (+2296.9%) 🆘
dist/cjs/MessageComposerContext.js 929 B +929 B (new file) 🆕
dist/cjs/ReactPlayerWrapper.js 544 B +4 B (+0.74%)
dist/cjs/slot-layout.js 515 B -3 B (-0.58%)
dist/cjs/SlotLayout.js 13.1 kB +4 B (+0.03%)
dist/cjs/src.js 0 B -222 kB (removed) 🏆
dist/cjs/Thread.js 64.1 kB +64.1 kB (new file) 🆕
dist/cjs/useChannel.js 413 B -23.8 kB (-98.29%) 🏆
dist/cjs/useChannelHeaderOnlineStatus.js 21.7 kB +21.7 kB (new file) 🆕
dist/cjs/usePopoverPosition.js 23.3 kB +23.3 kB (new file) 🆕
dist/css/index.css 42.5 kB +101 B (+0.24%)
dist/es/components/Attachment/AttachmentActions.mjs 1.65 kB -3 B (-0.18%)
dist/es/components/Attachment/Audio.mjs 1.43 kB +4 B (+0.28%)
dist/es/components/Attachment/ModalGallery.mjs 2.08 kB +3 B (+0.14%)
dist/es/components/Attachment/VoiceRecording.mjs 1.7 kB +3 B (+0.18%)
dist/es/components/AudioPlayback/WithAudioPlayback.mjs 1.18 kB -1 B (-0.08%)
dist/es/components/Channel/channelInstanceKey.mjs 0 B -652 B (removed) 🏆
dist/es/components/ChannelListItem/ChannelListItemActionButtons.mjs 2.6 kB +1 B (+0.04%)
dist/es/components/ChannelListItem/utils.a11y.mjs 2.63 kB +2 B (+0.08%)
dist/es/components/ChannelListItem/utils.mjs 2.75 kB -1 B (-0.04%)
dist/es/components/Chat/Chat.mjs 1.24 kB +1 B (+0.08%)
dist/es/components/Dialog/components/ContextMenu.mjs 5.53 kB +1 B (+0.02%)
dist/es/components/Location/ShareLocationDialog.mjs 2.26 kB +1 B (+0.04%)
dist/es/components/MediaRecorder/AudioRecorder/AudioRecorderRecordingControls.mjs 1.03 kB -1 B (-0.1%)
dist/es/components/Message/Message.mjs 1.39 kB -2 B (-0.14%)
dist/es/components/Message/MessageStatus.mjs 1.26 kB -1 B (-0.08%)
dist/es/components/Message/MessageText.mjs 1.63 kB -1 B (-0.06%)
dist/es/components/Message/MessageUI.mjs 2.78 kB +6 B (+0.22%)
dist/es/components/Message/renderText/renderText.mjs 1.58 kB -1 B (-0.06%)
dist/es/components/MessageActions/MessageActions.mjs 4.22 kB +3 B (+0.07%)
dist/es/components/MessageActions/RemindMeSubmenu.mjs 999 B -1 B (-0.1%)
dist/es/components/MessageComposer/AttachmentPreviewList/AttachmentPreviewList.mjs 1.19 kB +1 B (+0.08%)
dist/es/components/MessageComposer/AttachmentPreviewList/AudioAttachmentPreview.mjs 1.81 kB +3 B (+0.17%)
dist/es/components/MessageComposer/AttachmentPreviewList/FileAttachmentPreview.mjs 1.06 kB -1 B (-0.09%)
dist/es/components/MessageComposer/AttachmentPreviewList/MediaAttachmentPreview.mjs 1.3 kB -1 B (-0.08%)
dist/es/components/MessageComposer/AttachmentSelector/AttachmentSelector.mjs 3.31 kB +1 B (+0.03%)
dist/es/components/MessageComposer/hooks/useMessageComposerController.mjs 435 B -208 B (-32.35%) 🎉
dist/es/components/MessageComposer/hooks/useSendMessageFn.mjs 1.15 kB +1 B (+0.09%)
dist/es/components/MessageComposer/MessageComposerActions.mjs 1.41 kB -2 B (-0.14%)
dist/es/components/MessageComposer/MessageComposerUI.mjs 1.43 kB +1 B (+0.07%)
dist/es/components/MessageComposer/QuotedMessagePreview.mjs 3.06 kB -2 B (-0.07%)
dist/es/components/MessageList/FloatingDateSeparator.mjs 679 B -3 B (-0.44%)
dist/es/components/MessageList/hooks/MessageList/useEnrichedMessages.mjs 629 B -14 B (-2.18%)
dist/es/components/MessageList/hooks/MessageList/useFloatingDateSeparatorMessageList.mjs 932 B -5 B (-0.53%)
dist/es/components/MessageList/hooks/useThreadHead.mjs 564 B +564 B (new file) 🆕
dist/es/components/MessageList/MessageList.mjs 3.35 kB +15 B (+0.45%)
dist/es/components/MessageList/messageSourceKey.mjs 876 B +876 B (new file) 🆕
dist/es/components/MessageList/VirtualizedMessageList.mjs 4.33 kB +2 B (+0.05%)
dist/es/components/MessageList/VirtualizedMessageListComponents.mjs 1.64 kB +1 B (+0.06%)
dist/es/components/Notifications/hooks/useNotificationTarget.mjs 377 B -33 B (-8.05%)
dist/es/components/Poll/PollActions/EndPollAlert.mjs 820 B -3 B (-0.36%)
dist/es/components/Poll/PollActions/PollActions.mjs 1.37 kB -3 B (-0.22%)
dist/es/components/Poll/PollActions/PollAnswerList.mjs 1.05 kB -2 B (-0.19%)
dist/es/components/Poll/PollActions/PollResults/PollOptionWithVotes.mjs 852 B -1 B (-0.12%)
dist/es/components/Poll/PollActions/PollResults/PollOptionWithVotesList.mjs 614 B -1 B (-0.16%)
dist/es/components/Poll/PollCreationDialog/MultipleAnswersField.mjs 1.44 kB +1 B (+0.07%)
dist/es/components/Poll/PollCreationDialog/OptionFieldSet.mjs 2.35 kB -1 B (-0.04%)
dist/es/components/Poll/PollCreationDialog/PollCreationDialogControls.mjs 815 B -1 B (-0.12%)
dist/es/components/Poll/PollOptionSelector.mjs 1.52 kB +1 B (+0.07%)
dist/es/components/TextareaComposer/SuggestionList/SuggestionList.mjs 2.42 kB +1 B (+0.04%)
dist/es/components/Thread/LegacyThreadContext.mjs 0 B -198 B (removed) 🏆
dist/es/components/Thread/Thread.mjs 1.37 kB -181 B (-11.68%) 👏
dist/es/components/Thread/ThreadHead.mjs 453 B +1 B (+0.22%)
dist/es/components/Threads/hooks/useCloseThread.mjs 428 B +428 B (new file) 🆕
dist/es/components/Threads/ThreadList/ThreadList.mjs 1.44 kB -192 B (-11.76%) 👏
dist/es/components/Threads/ThreadList/useThreadHighlighting.mjs 893 B +893 B (new file) 🆕
dist/es/context/MessageBounceContext.mjs 712 B +1 B (+0.14%)
dist/es/index.mjs 7.97 kB -61 B (-0.76%)
dist/es/plugins/ChannelDetail/Views/ChannelManagementView/ChannelManagementActions.mjs 3.91 kB -1 B (-0.03%)
dist/es/plugins/SlotLayout/hooks/useSlotEntity.mjs 1.85 kB +10 B (+0.54%)
dist/es/plugins/SlotLayout/ThreadSlot.mjs 492 B -14 B (-2.77%)
ℹ️ View Unchanged
Filename Size
dist/cjs/audioProcessing.js 1.74 kB
dist/cjs/mp3-encoder.js 814 B
dist/cjs/slot-js 2.32 kB
dist/css/channel-detail.css 2.84 kB
dist/css/emoji-picker.css 178 B
dist/css/emoji-replacement.css 456 B
dist/es/a11y/a11yUtils.mjs 630 B
dist/es/a11y/accessibleLabel.mjs 764 B
dist/es/a11y/hooks/useAriaIdentifiers.mjs 540 B
dist/es/a11y/hooks/useListboxKeyboardNavigation.mjs 1.52 kB
dist/es/a11y/hooks/useResolvedModalAriaProps.mjs 497 B
dist/es/a11y/hooks/useVirtualizedListboxKeyboardNavigation.mjs 1.39 kB
dist/es/channel-detail.mjs 802 B
dist/es/components/Accessibility/AriaLiveAnnouncerProvider.mjs 1.65 kB
dist/es/components/Accessibility/AriaLiveOutlet.mjs 964 B
dist/es/components/Accessibility/AriaLiveOutletContext.mjs 194 B
dist/es/components/Accessibility/hooks/useAudioPlaybackChangeAnnouncements.mjs 425 B
dist/es/components/Accessibility/hooks/useFocusReturn.mjs 916 B
dist/es/components/Accessibility/hooks/useIncomingMessageAnnouncements.mjs 1.26 kB
dist/es/components/Accessibility/hooks/useInertWhenHidden.mjs 1.62 kB
dist/es/components/Accessibility/hooks/useInteractionAnnouncements.mjs 3.31 kB
dist/es/components/Accessibility/NotificationAnnouncer.mjs 1.36 kB
dist/es/components/Accessibility/scheduling/useAnnouncementQueue.mjs 793 B
dist/es/components/Accessibility/scheduling/useDebouncedAnnounce.mjs 1.68 kB
dist/es/components/Accessibility/scheduling/useSettledAnnouncement.mjs 1.84 kB
dist/es/components/Accessibility/useAriaLiveAnnouncer.mjs 293 B
dist/es/components/AIStateIndicator/AIStateIndicator.mjs 475 B
dist/es/components/AIStateIndicator/hooks/useAIState.mjs 444 B
dist/es/components/Attachment/attachment-sizing.mjs 1.05 kB
dist/es/components/Attachment/Attachment.mjs 1.15 kB
dist/es/components/Attachment/AttachmentContainer.mjs 1.98 kB
dist/es/components/Attachment/audioSampling.mjs 1.29 kB
dist/es/components/Attachment/components/DownloadButton.mjs 676 B
dist/es/components/Attachment/components/FileSizeIndicator.mjs 436 B
dist/es/components/Attachment/FileAttachment.mjs 569 B
dist/es/components/Attachment/Geolocation.mjs 1.41 kB
dist/es/components/Attachment/Giphy.mjs 1.04 kB
dist/es/components/Attachment/giphyAccessibility.mjs 481 B
dist/es/components/Attachment/icons.mjs 411 B
dist/es/components/Attachment/Image.mjs 346 B
dist/es/components/Attachment/LinkPreview/Card.mjs 1.01 kB
dist/es/components/Attachment/LinkPreview/UnableToRenderCard.mjs 411 B
dist/es/components/Attachment/UnsupportedAttachment.mjs 403 B
dist/es/components/Attachment/utils.mjs 740 B
dist/es/components/Attachment/VideoAttachment.mjs 702 B
dist/es/components/Attachment/VisibilityDisclaimer.mjs 362 B
dist/es/components/AudioPlayback/AudioPlaybackArbiter.mjs 964 B
dist/es/components/AudioPlayback/AudioPlayer.mjs 3.85 kB
dist/es/components/AudioPlayback/AudioPlayerPool.mjs 815 B
dist/es/components/AudioPlayback/components/DurationDisplay.mjs 596 B
dist/es/components/AudioPlayback/components/formatTime.mjs 339 B
dist/es/components/AudioPlayback/components/keyboardSeek.mjs 524 B
dist/es/components/AudioPlayback/components/PlaybackRateButton.mjs 300 B
dist/es/components/AudioPlayback/components/ProgressBar.mjs 833 B
dist/es/components/AudioPlayback/components/progressBarA11y.mjs 484 B
dist/es/components/AudioPlayback/components/useInteractiveProgressBar.mjs 1.07 kB
dist/es/components/AudioPlayback/components/WaveProgressBar.mjs 1.74 kB
dist/es/components/AudioPlayback/plugins/AudioPlayerNotificationsPlugin.mjs 659 B
dist/es/components/Avatar/Avatar.mjs 980 B
dist/es/components/Avatar/AvatarStack.mjs 665 B
dist/es/components/Avatar/ChannelAvatar.mjs 344 B
dist/es/components/Avatar/GroupAvatar.mjs 868 B
dist/es/components/Avatar/utils.mjs 183 B
dist/es/components/Badge/Badge.mjs 470 B
dist/es/components/Badge/MediaBadge.mjs 430 B
dist/es/components/BaseImage/BaseImage.mjs 682 B
dist/es/components/BaseImage/ImagePlaceholder.mjs 404 B
dist/es/components/BaseImage/toBaseImageDescriptors.mjs 547 B
dist/es/components/Button/Button.mjs 529 B
dist/es/components/Button/PlayButton.mjs 480 B
dist/es/components/Channel/Channel.mjs 1.05 kB
dist/es/components/Channel/constants.mjs 156 B
dist/es/components/Channel/hooks/useChannelCapabilities.mjs 350 B
dist/es/components/Channel/hooks/useChannelContainerClasses.mjs 388 B
dist/es/components/ChannelHeader/ChannelHeader.mjs 1.02 kB
dist/es/components/ChannelHeader/hooks/useChannelHasMembersOnline.mjs 624 B
dist/es/components/ChannelHeader/hooks/useChannelHeaderOnlineStatus.mjs 681 B
dist/es/components/ChannelList/ChannelList.mjs 1.19 kB
dist/es/components/ChannelList/ChannelListHeader.mjs 430 B
dist/es/components/ChannelList/ChannelLists.mjs 693 B
dist/es/components/ChannelList/ChannelNavigation.mjs 684 B
dist/es/components/ChannelList/hooks/useChannelListKeyboardNavigation.mjs 1.25 kB
dist/es/components/ChannelList/hooks/useChannelMembershipState.mjs 262 B
dist/es/components/ChannelList/hooks/useChannelMembersState.mjs 300 B
dist/es/components/ChannelList/hooks/useChannelPaginatorState.mjs 540 B
dist/es/components/ChannelList/hooks/useSelectedChannelState.mjs 403 B
dist/es/components/ChannelListItem/ChannelListItem.mjs 1.23 kB
dist/es/components/ChannelListItem/ChannelListItemTimestamp.mjs 518 B
dist/es/components/ChannelListItem/ChannelListItemUI.mjs 1.52 kB
dist/es/components/ChannelListItem/hooks/useChannelDisplayName.mjs 831 B
dist/es/components/ChannelListItem/hooks/useChannelPreviewInfo.mjs 624 B
dist/es/components/ChannelListItem/hooks/useIsChannelMuted.mjs 399 B
dist/es/components/ChannelListItem/hooks/useIsUserMuted.mjs 271 B
dist/es/components/ChannelListItem/hooks/useMessageDeliveryStatus.mjs 654 B
dist/es/components/Chat/hooks/useChat.mjs 556 B
dist/es/components/Chat/hooks/useCreateChatClient.mjs 526 B
dist/es/components/Chat/hooks/useCreateChatContext.mjs 444 B
dist/es/components/Chat/hooks/useReportLostConnectionSystemNotification.mjs 709 B
dist/es/components/Chat/hooks/useSplitActionSet.mjs 317 B
dist/es/components/DateSeparator/DateSeparator.mjs 572 B
dist/es/components/Dialog/components/Alert.mjs 647 B
dist/es/components/Dialog/components/Callout.mjs 825 B
dist/es/components/Dialog/components/Prompt.mjs 1.08 kB
dist/es/components/Dialog/components/Viewer.mjs 980 B
dist/es/components/Dialog/hooks/useDialog.mjs 688 B
dist/es/components/Dialog/hooks/usePopoverPosition.mjs 925 B
dist/es/components/Dialog/service/DialogAnchor.mjs 2.06 kB
dist/es/components/Dialog/service/DialogManager.mjs 1.34 kB
dist/es/components/Dialog/service/DialogPortal.mjs 1.02 kB
dist/es/components/DragAndDrop/DragAndDropContainer.mjs 1.16 kB
dist/es/components/EmptyStateIndicator/EmptyStateIndicator.mjs 603 B
dist/es/components/EventComponent/EventComponent.mjs 462 B
dist/es/components/FileIcon/FileIconSet.mjs 6.71 kB
dist/es/components/FileIcon/iconMap.mjs 512 B
dist/es/components/FileIcon/mimeTypes.mjs 1.73 kB
dist/es/components/FileIcon/mjs 599 B
dist/es/components/Form/FieldError.mjs 261 B
dist/es/components/Form/hooks/useFormState.mjs 550 B
dist/es/components/Form/mjs 1.58 kB
dist/es/components/Form/NumericInput.mjs 1.34 kB
dist/es/components/Form/SwitchField.mjs 1.54 kB
dist/es/components/Form/TextInput.mjs 1.27 kB
dist/es/components/Form/TextInputFieldSet.mjs 376 B
dist/es/components/Gallery/Gallery.mjs 654 B
dist/es/components/Gallery/GalleryContext.mjs 335 B
dist/es/components/Gallery/GalleryHeader.mjs 1.21 kB
dist/es/components/Gallery/GalleryUI.mjs 2.02 kB
dist/es/components/Icons/createIcon.mjs 429 B
dist/es/components/Icons/icons.mjs 18.5 kB
dist/es/components/Icons/mjs 378 B
dist/es/components/InfiniteScrollPaginator/hooks/useCursorPaginator.mjs 598 B
dist/es/components/InfiniteScrollPaginator/InfiniteScroll.mjs 1.34 kB
dist/es/components/InfiniteScrollPaginator/InfiniteScrollPaginator.mjs 1.14 kB
dist/es/components/InfiniteScrollPaginator/InfiniteScrollWithComponents.mjs 826 B
dist/es/components/ListItemLayout/ListItemLayout.mjs 707 B
dist/es/components/Loading/LoadingChannel.mjs 639 B
dist/es/components/Loading/LoadingChannels.mjs 377 B
dist/es/components/Loading/LoadingErrorIndicator.mjs 405 B
dist/es/components/Loading/LoadingIndicator.mjs 247 B
dist/es/components/Loading/progress-indicators.mjs 734 B
dist/es/components/Loading/UploadedSizeIndicator.mjs 413 B
dist/es/components/Loading/UploadProgressIndicator.mjs 344 B
dist/es/components/LoadMore/LoadMoreButton.mjs 503 B
dist/es/components/LoadMore/LoadMorePaginator.mjs 378 B
dist/es/components/Location/hooks/useLiveLocationSharingManager.mjs 640 B
dist/es/components/MediaRecorder/AudioRecorder/AudioRecorder.mjs 628 B
dist/es/components/MediaRecorder/AudioRecorder/AudioRecordingButtonWithNotification.mjs 1.05 kB
dist/es/components/MediaRecorder/AudioRecorder/AudioRecordingPlayback.mjs 996 B
dist/es/components/MediaRecorder/AudioRecorder/AudioRecordingPreview.mjs 900 B
dist/es/components/MediaRecorder/AudioRecorder/hooks/useTimeElapsed.mjs 434 B
dist/es/components/MediaRecorder/AudioRecorder/recordingStateIdentity.mjs 227 B
dist/es/components/MediaRecorder/AudioRecorder/RecordingTimer.mjs 322 B
dist/es/components/MediaRecorder/classes/AmplitudeRecorder.mjs 1.07 kB
dist/es/components/MediaRecorder/classes/BrowserPermission.mjs 758 B
dist/es/components/MediaRecorder/classes/MediaRecorderController.mjs 2.58 kB
dist/es/components/MediaRecorder/hooks/useMediaRecorder.mjs 917 B
dist/es/components/MediaRecorder/observable/BehaviorSubject.mjs 353 B
dist/es/components/MediaRecorder/observable/mjs 186 B
dist/es/components/MediaRecorder/observable/Observable.mjs 315 B
dist/es/components/MediaRecorder/observable/Subject.mjs 550 B
dist/es/components/MediaRecorder/observable/Subscription.mjs 211 B
dist/es/components/MediaRecorder/RecordingPermissionDeniedNotification.mjs 503 B
dist/es/components/MediaRecorder/transcode/audioProcessing.mjs 758 B
dist/es/components/MediaRecorder/transcode/index.mjs 351 B
dist/es/components/MediaRecorder/transcode/wav.mjs 1.33 kB
dist/es/components/Message/emojiRegex.mjs 450 B
dist/es/components/Message/hooks/useActionHandler.mjs 604 B
dist/es/components/Message/hooks/useDeleteHandler.mjs 617 B
dist/es/components/Message/hooks/useFlagHandler.mjs 383 B
dist/es/components/Message/hooks/useMarkUnreadHandler.mjs 414 B
dist/es/components/Message/hooks/useMentionsHandler.mjs 377 B
dist/es/components/Message/hooks/useMessageAlsoSentInChannelNavigation.mjs 1.01 kB
dist/es/components/Message/hooks/useMessageReminder.mjs 299 B
dist/es/components/Message/hooks/useMessageTextStreaming.mjs 783 B
dist/es/components/Message/hooks/useMuteHandler.mjs 704 B
dist/es/components/Message/hooks/useOpenThreadHandler.mjs 352 B
dist/es/components/Message/hooks/usePinHandler.mjs 608 B
dist/es/components/Message/hooks/useReactionHandler.mjs 1.33 kB
dist/es/components/Message/hooks/useReactionsFetcher.mjs 498 B
dist/es/components/Message/hooks/useRetryHandler.mjs 301 B
dist/es/components/Message/hooks/useUserHandler.mjs 255 B
dist/es/components/Message/hooks/useUserRole.mjs 746 B
dist/es/components/Message/MessageAlsoSentInChannelIndicator.mjs 655 B
dist/es/components/Message/MessageBlocked.mjs 451 B
dist/es/components/Message/MessageBubble.mjs 246 B
dist/es/components/Message/MessageDeletedBubble.mjs 398 B
dist/es/components/Message/MessageEditedIndicator.mjs 722 B
dist/es/components/Message/MessageRepliesCountButton.mjs 1.08 kB
dist/es/components/Message/MessageTimestamp.mjs 383 B
dist/es/components/Message/MessageTranslationIndicator.mjs 886 B
dist/es/components/Message/PinIndicator.mjs 627 B
dist/es/components/Message/QuotedMessage.mjs 427 B
dist/es/components/Message/ReminderNotification.mjs 1.01 kB
dist/es/components/Message/renderText/componentRenderers/Anchor.mjs 406 B
dist/es/components/Message/renderText/componentRenderers/Emoji.mjs 246 B
dist/es/components/Message/renderText/componentRenderers/Mention.mjs 307 B
dist/es/components/Message/renderText/regex.mjs 440 B
dist/es/components/Message/renderText/rehypePlugins/emojiMarkdownPlugin.mjs 338 B
dist/es/components/Message/renderText/rehypePlugins/mentionsMarkdownPlugin.mjs 1.47 kB
dist/es/components/Message/renderText/remarkPlugins/htmlToTextPlugin.mjs 243 B
dist/es/components/Message/renderText/remarkPlugins/imageToLink.mjs 591 B
dist/es/components/Message/renderText/remarkPlugins/keepLineBreaksPlugin.mjs 824 B
dist/es/components/Message/renderText/remarkPlugins/plusPlusToEmphasis.mjs 962 B
dist/es/components/Message/renderText/remarkPlugins/remarkIgnoreMarkdown.mjs 337 B
dist/es/components/Message/StreamedMessageText.mjs 500 B
dist/es/components/Message/Timestamp.mjs 525 B
dist/es/components/Message/utils.mjs 2.15 kB
dist/es/components/MessageActions/DeleteMessageAlert.mjs 616 B
dist/es/components/MessageActions/DownloadSubmenu.mjs 843 B
dist/es/components/MessageActions/downloadUtils.mjs 980 B
dist/es/components/MessageActions/hooks/useBaseMessageActionSetFilter.mjs 1.29 kB
dist/es/components/MessageActions/QuickMessageActionButton.mjs 359 B
dist/es/components/MessageBounce/MessageBounceModal.mjs 347 B
dist/es/components/MessageBounce/MessageBouncePrompt.mjs 805 B
dist/es/components/MessageComposer/AttachmentPreviewList/AttachmentUploadedSizeIndicator.mjs 655 B
dist/es/components/MessageComposer/AttachmentPreviewList/GeolocationPreview.mjs 758 B
dist/es/components/MessageComposer/AttachmentPreviewList/UnsupportedAttachmentPreview.mjs 534 B
dist/es/components/MessageComposer/AttachmentPreviewList/utils/AttachmentPreviewRoot.mjs 919 B
dist/es/components/MessageComposer/AttachmentPreviewList/VoiceRecordingPreviewSlot.mjs 545 B
dist/es/components/MessageComposer/AttachmentSelector/CommandsMenu.mjs 1.39 kB
dist/es/components/MessageComposer/CommandChip.mjs 563 B
dist/es/components/MessageComposer/CooldownTimer.mjs 294 B
dist/es/components/MessageComposer/EditedMessagePreview.mjs 334 B
dist/es/components/MessageComposer/hooks/useAttachmentManagerState.mjs 542 B
dist/es/components/MessageComposer/hooks/useAttachmentsForPreview.mjs 362 B
dist/es/components/MessageComposer/hooks/useCanCreatePoll.mjs 285 B
dist/es/components/MessageComposer/hooks/useCooldownRemaining.mjs 429 B
dist/es/components/MessageComposer/hooks/useCreateMessageComposerContext.mjs 419 B
dist/es/components/MessageComposer/hooks/useIsCooldownActive.mjs 274 B
dist/es/components/MessageComposer/hooks/useMessageComposerBindings.mjs 348 B
dist/es/components/MessageComposer/hooks/useMessageComposerCommands.mjs 414 B
dist/es/components/MessageComposer/hooks/useMessageComposerHasSendableData.mjs 274 B
dist/es/components/MessageComposer/hooks/useMessageContentIsEmpty.mjs 274 B
dist/es/components/MessageComposer/hooks/usePasteHandler.mjs 579 B
dist/es/components/MessageComposer/hooks/useTextareaRef.mjs 252 B
dist/es/components/MessageComposer/hooks/useUpdateMessageFn.mjs 620 B
dist/es/components/MessageComposer/hooks/utils.mjs 324 B
dist/es/components/MessageComposer/icons.mjs 1.28 kB
dist/es/components/MessageComposer/LinkPreviewList.mjs 1.06 kB
dist/es/components/MessageComposer/MessageComposer.mjs 854 B
dist/es/components/MessageComposer/preEditSnapshot.mjs 575 B
dist/es/components/MessageComposer/QuotedMessageIndicator.mjs 263 B
dist/es/components/MessageComposer/RemoveAttachmentPreviewButton.mjs 474 B
dist/es/components/MessageComposer/SendButton.mjs 488 B
dist/es/components/MessageComposer/SendToChannelCheckbox.mjs 764 B
dist/es/components/MessageComposer/StopAIGenerationButton.mjs 373 B
dist/es/components/MessageComposer/WithDragAndDropUpload.mjs 1.57 kB
dist/es/components/MessageList/GiphyPreviewMessage.mjs 278 B
dist/es/components/MessageList/hooks/MessageList/useMessageListElements.mjs 624 B
dist/es/components/MessageList/hooks/MessageList/useMessageListScrollManager.mjs 1.72 kB
dist/es/components/MessageList/hooks/MessageList/useScrollLocationLogic.mjs 980 B
dist/es/components/MessageList/hooks/MessageList/useUnreadMessagesNotification.mjs 1.21 kB
dist/es/components/MessageList/hooks/useCanPaginateReplies.mjs 1.26 kB
dist/es/components/MessageList/hooks/useLastDeliveredData.mjs 418 B
dist/es/components/MessageList/hooks/useLastOwnMessage.mjs 249 B
dist/es/components/MessageList/hooks/useLastReadData.mjs 411 B
dist/es/components/MessageList/hooks/useMarkRead.mjs 1.26 kB
dist/es/components/MessageList/hooks/VirtualizedMessageList/useFloatingDateSeparator.mjs 969 B
dist/es/components/MessageList/hooks/VirtualizedMessageList/useGiphyPreview.mjs 434 B
dist/es/components/MessageList/hooks/VirtualizedMessageList/useMessageSetKey.mjs 396 B
dist/es/components/MessageList/hooks/VirtualizedMessageList/useNewMessageNotification.mjs 636 B
dist/es/components/MessageList/hooks/VirtualizedMessageList/usePrependMessagesCount.mjs 647 B
dist/es/components/MessageList/hooks/VirtualizedMessageList/useScrollToBottomOnNewMessage.mjs 499 B
dist/es/components/MessageList/hooks/VirtualizedMessageList/useShouldForceScrollToBottom.mjs 422 B
dist/es/components/MessageList/hooks/VirtualizedMessageList/useUnreadMessagesNotificationVirtualized.mjs 808 B
dist/es/components/MessageList/MessageListMainPanel.mjs 284 B
dist/es/components/MessageList/NewMessageNotification.mjs 561 B
dist/es/components/MessageList/renderMessages.mjs 1.1 kB
dist/es/components/MessageList/ScrollToLatestMessageButton.mjs 1.17 kB
dist/es/components/MessageList/UnreadMessagesNotification.mjs 850 B
dist/es/components/MessageList/UnreadMessagesSeparator.mjs 744 B
dist/es/components/MessageList/utils.mjs 2.26 kB
dist/es/components/Modal/GlobalModal.mjs 1.81 kB
dist/es/components/Notifications/hooks/useNotificationApi.mjs 1.26 kB
dist/es/components/Notifications/hooks/useNotifications.mjs 569 B
dist/es/components/Notifications/hooks/useSystemNotifications.mjs 457 B
dist/es/components/Notifications/Notification.mjs 1.23 kB
dist/es/components/Notifications/NotificationConfigurationContext.mjs 386 B
dist/es/components/Notifications/NotificationList.mjs 3.18 kB
dist/es/components/Notifications/notificationTarget.mjs 636 B
dist/es/components/Poll/hooks/useManagePollVotesRealtime.mjs 686 B
dist/es/components/Poll/hooks/usePollAnswerPagination.mjs 586 B
dist/es/components/Poll/hooks/usePollOptionVotesPagination.mjs 601 B
dist/es/components/Poll/mjs 926 B
dist/es/components/Poll/Poll.mjs 302 B
dist/es/components/Poll/PollActions/AddCommentPrompt.mjs 1.32 kB
dist/es/components/Poll/PollActions/PollAction.mjs 492 B
dist/es/components/Poll/PollActions/PollOptionsFullList.mjs 583 B
dist/es/components/Poll/PollActions/PollQuestion.mjs 346 B
dist/es/components/Poll/PollActions/PollResults/PollOptionWithVotesHeader.mjs 709 B
dist/es/components/Poll/PollActions/PollResults/PollResults.mjs 1.11 kB
dist/es/components/Poll/PollActions/SuggestPollOptionPrompt.mjs 1.31 kB
dist/es/components/Poll/PollContent.mjs 489 B
dist/es/components/Poll/PollCreationDialog/NameField.mjs 761 B
dist/es/components/Poll/PollCreationDialog/PollCreationDialog.mjs 1.1 kB
dist/es/components/Poll/PollCreationDialog/PollOptionReorderHandle.mjs 1.01 kB
dist/es/components/Poll/PollHeader.mjs 683 B
dist/es/components/Poll/PollOptionList.mjs 845 B
dist/es/components/Portal/Portal.mjs 300 B
dist/es/components/ReactFileUtilities/UploadButton.mjs 813 B
dist/es/components/ReactFileUtilities/utils.mjs 1.06 kB
dist/es/components/Reactions/hooks/useFetchReactions.mjs 714 B
dist/es/components/Reactions/hooks/useProcessReactions.mjs 1.25 kB
dist/es/components/Reactions/MessageReactions.mjs 2.08 kB
dist/es/components/Reactions/MessageReactionsDetail.mjs 1.98 kB
dist/es/components/Reactions/reactionOptions.mjs 1.11 kB
dist/es/components/Reactions/ReactionSelector.mjs 1.56 kB
dist/es/components/Reactions/ReactionSelectorWithButton.mjs 873 B
dist/es/components/Reactions/SpriteImage.mjs 727 B
dist/es/components/Reactions/utils/utils.mjs 284 B
dist/es/components/SafeAnchor/SafeAnchor.mjs 336 B
dist/es/components/Search/hooks/useAnnounceSearchResultCount.mjs 1.31 kB
dist/es/components/Search/hooks/useSearchQueriesInProgress.mjs 450 B
dist/es/components/Search/hooks/useSearchResultsKeyboardNavigation.mjs 721 B
dist/es/components/Search/Search.mjs 642 B
dist/es/components/Search/SearchBar/SearchBar.mjs 1.34 kB
dist/es/components/Search/SearchContext.mjs 331 B
dist/es/components/Search/SearchResults/SearchResultItem.mjs 1.39 kB
dist/es/components/Search/SearchResults/SearchResults.mjs 716 B
dist/es/components/Search/SearchResults/SearchResultsHeader.mjs 910 B
dist/es/components/Search/SearchResults/SearchResultsPresearch.mjs 322 B
dist/es/components/Search/SearchResults/SearchSourceResultList.mjs 649 B
dist/es/components/Search/SearchResults/SearchSourceResultListFooter.mjs 562 B
dist/es/components/Search/SearchResults/SearchSourceResults.mjs 561 B
dist/es/components/Search/SearchResults/SearchSourceResultsEmpty.mjs 326 B
dist/es/components/Search/SearchResults/SearchSourceResultsHeader.mjs 148 B
dist/es/components/Search/SearchResults/SearchSourceResultsLoadingIndicator.mjs 390 B
dist/es/components/Search/SearchSourceResultsContext.mjs 344 B
dist/es/components/SkipNavigation/SkipNavigation.mjs 1.01 kB
dist/es/components/SummarizedMessagePreview/hooks/useLatestMessagePreview.mjs 1.52 kB
dist/es/components/SummarizedMessagePreview/SummarizedMessagePreview.mjs 799 B
dist/es/components/TextareaComposer/hooks/useTextareaPlaceholder.mjs 685 B
dist/es/components/TextareaComposer/SuggestionList/CommandItem.mjs 480 B
dist/es/components/TextareaComposer/SuggestionList/EmoticonItem.mjs 508 B
dist/es/components/TextareaComposer/SuggestionList/MentionItem/BroadcastMentionItem.mjs 632 B
dist/es/components/TextareaComposer/SuggestionList/MentionItem/MentionItem.mjs 439 B
dist/es/components/TextareaComposer/SuggestionList/MentionItem/MentionSuggestionTitle.mjs 236 B
dist/es/components/TextareaComposer/SuggestionList/MentionItem/mjs 775 B
dist/es/components/TextareaComposer/SuggestionList/MentionItem/SpecialMentionItem.mjs 161 B
dist/es/components/TextareaComposer/SuggestionList/MentionItem/UserGroupItem.mjs 566 B
dist/es/components/TextareaComposer/SuggestionList/SuggestionListItem.mjs 649 B
dist/es/components/TextareaComposer/SuggestionList/TokenizedSuggestionParts.mjs 608 B
dist/es/components/TextareaComposer/TextareaComposer.mjs 3.78 kB
dist/es/components/Thread/ThreadHeader.mjs 1.48 kB
dist/es/components/Thread/ThreadStart.mjs 458 B
dist/es/components/Threads/ThreadContext.mjs 265 B
dist/es/components/Threads/ThreadList/ThreadListEmptyPlaceholder.mjs 385 B
dist/es/components/Threads/ThreadList/ThreadListHeader.mjs 428 B
dist/es/components/Threads/ThreadList/ThreadListItem.mjs 351 B
dist/es/components/Threads/ThreadList/ThreadListItemUI.mjs 1.87 kB
dist/es/components/Threads/ThreadList/ThreadListLoadingIndicator.mjs 441 B
dist/es/components/Threads/ThreadList/ThreadListUnseenThreadsBanner.mjs 661 B
dist/es/components/Threads/ThreadList/utils.a11y.mjs 1.83 kB
dist/es/components/Threads/UnreadCountBadge.mjs 332 B
dist/es/components/Tooltip/hooks/useEnterLeaveHandlers.mjs 296 B
dist/es/components/Tooltip/Tooltip.mjs 556 B
dist/es/components/TypingIndicator/hooks/useDebouncedTypingActive.mjs 974 B
dist/es/components/TypingIndicator/TypingIndicator.mjs 1.35 kB
dist/es/components/TypingIndicator/TypingIndicatorDots.mjs 411 B
dist/es/components/TypingIndicator/TypingIndicatorHeader.mjs 946 B
dist/es/components/TypingIndicator/utils/getTypingStatusMessage.mjs 442 B
dist/es/components/UtilityComponents/ErrorBoundary.mjs 313 B
dist/es/components/UtilityComponents/hooks/useMutationObserver.mjs 798 B
dist/es/components/UtilityComponents/useStableId.mjs 455 B
dist/es/components/VideoPlayer/ReactPlayerWrapper.mjs 475 B
dist/es/components/VideoPlayer/VideoPlayer.mjs 445 B
dist/es/components/VideoPlayer/VideoThumbnail.mjs 556 B
dist/es/components/VisuallyHidden/VisuallyHidden.mjs 397 B
dist/es/constants/messageTypes.mjs 173 B
dist/es/context/AttachmentContext.mjs 344 B
dist/es/context/AttachmentSelectorContext.mjs 272 B
dist/es/context/ChannelInstanceContext.mjs 385 B
dist/es/context/ChannelListContext.mjs 369 B
dist/es/context/ChatContext.mjs 282 B
dist/es/context/ComponentContext.mjs 257 B
dist/es/context/DialogManagerContext.mjs 1.42 kB
dist/es/context/MessageComposerContext.mjs 408 B
dist/es/context/MessageContext.mjs 285 B
dist/es/context/MessageListContext.mjs 325 B
dist/es/context/MessageTranslationViewContext.mjs 1.53 kB
dist/es/context/ModalContext.mjs 403 B
dist/es/context/PollContext.mjs 300 B
dist/es/context/requireContext.mjs 440 B
dist/es/context/TranslationContext.mjs 425 B
dist/es/context/useChannel.mjs 333 B
dist/es/context/VirtualizedMessageListContext.mjs 338 B
dist/es/context/WithComponents.mjs 311 B
dist/es/context/WorkspaceNavigationContext.mjs 492 B
dist/es/emojis.mjs 126 B
dist/es/hooks/useIsDmChannel.mjs 503 B
dist/es/hooks/useMessagePaginator.mjs 275 B
dist/es/i18n/runtimeDefaults.mjs 1.1 kB
dist/es/i18n/Streami18n.mjs 1.01 kB
dist/es/i18n/TranslationBuilder/index.mjs 122 B
dist/es/i18n/TranslationBuilder/notifications/NotificationTranslationTopic.mjs 563 B
dist/es/i18n/TranslationBuilder/notifications/translators.mjs 669 B
dist/es/i18n/TranslationBuilder/notifications/translatorsByNotificationType.mjs 1.19 kB
dist/es/i18n/useStreami18n.mjs 708 B
dist/es/i18n/utils.mjs 466 B
dist/es/mp3-encoder.mjs 778 B
dist/es/plugins/ChannelDetail/AvatarWithChannelDetail.mjs 726 B
dist/es/plugins/ChannelDetail/ChannelDetail.mjs 920 B
dist/es/plugins/ChannelDetail/ChannelDetailContext.mjs 373 B
dist/es/plugins/ChannelDetail/ChannelDetailEmptyList.mjs 307 B
dist/es/plugins/ChannelDetail/ChannelDetailListLoadingIndicator.mjs 419 B
dist/es/plugins/ChannelDetail/ChannelDetailNavButton.mjs 505 B
dist/es/plugins/ChannelDetail/ChannelDetailSearchInput.mjs 574 B
dist/es/plugins/ChannelDetail/SectionNavigator/SectionNavigator.mjs 1.79 kB
dist/es/plugins/ChannelDetail/SectionNavigator/SectionNavigatorHeader.mjs 831 B
dist/es/plugins/ChannelDetail/Views/ChannelFilesView/ChannelFilesEmptyList.mjs 455 B
dist/es/plugins/ChannelDetail/Views/ChannelFilesView/ChannelFilesView.mjs 1.5 kB
dist/es/plugins/ChannelDetail/Views/ChannelFilesView/ChannelFilesView.utils.mjs 1.22 kB
dist/es/plugins/ChannelDetail/Views/ChannelFilesView/useChannelFilesSearch.mjs 723 B
dist/es/plugins/ChannelDetail/Views/ChannelManagementView/ChannelManagementView.mjs 3.67 kB
dist/es/plugins/ChannelDetail/Views/ChannelMediaView/ChannelMediaEmptyList.mjs 471 B
dist/es/plugins/ChannelDetail/Views/ChannelMediaView/ChannelMediaView.mjs 2.33 kB
dist/es/plugins/ChannelDetail/Views/ChannelMediaView/ChannelMediaView.utils.mjs 726 B
dist/es/plugins/ChannelDetail/Views/ChannelMediaView/useChannelMediaSearch.mjs 720 B
dist/es/plugins/ChannelDetail/Views/ChannelMemberDetailView/ChannelMemberActions.mjs 3.47 kB
dist/es/plugins/ChannelDetail/Views/ChannelMemberDetailView/ChannelMemberDetail.mjs 1.08 kB
dist/es/plugins/ChannelDetail/Views/ChannelMembersView/ChannelMembersAddView.mjs 2.3 kB
dist/es/plugins/ChannelDetail/Views/ChannelMembersView/ChannelMembersBrowseView.mjs 1.65 kB
dist/es/plugins/ChannelDetail/Views/ChannelMembersView/ChannelMembersHeaderActions.mjs 1.65 kB
dist/es/plugins/ChannelDetail/Views/ChannelMembersView/ChannelMembersView.mjs 1.31 kB
dist/es/plugins/ChannelDetail/Views/ChannelMembersView/ChannelMembersView.utils.mjs 369 B
dist/es/plugins/ChannelDetail/Views/ChannelMembersView/useChannelMemberCount.mjs 408 B
dist/es/plugins/ChannelDetail/Views/ChannelMembersView/useChannelMemberIds.mjs 430 B
dist/es/plugins/ChannelDetail/Views/ChannelMembersView/useChannelMembersSearch.mjs 744 B
dist/es/plugins/ChannelDetail/Views/PinnedMessagesView/PinnedMessagesEmptyList.mjs 466 B
dist/es/plugins/ChannelDetail/Views/PinnedMessagesView/PinnedMessagesView.mjs 1.85 kB
dist/es/plugins/ChannelDetail/Views/PinnedMessagesView/usePinnedMessagesCount.mjs 404 B
dist/es/plugins/ChannelDetail/Views/PinnedMessagesView/usePinnedMessagesSearch.mjs 879 B
dist/es/plugins/ChannelDetail/VirtualizedList/VirtualizedList.mjs 670 B
dist/es/plugins/Emojis/EmojiPicker.mjs 1.3 kB
dist/es/plugins/Emojis/middleware/textComposerEmojiMiddleware.mjs 1.38 kB
dist/es/plugins/SlotGeometry/SlotGeometry.mjs 2.26 kB
dist/es/plugins/SlotLayout/a11y.utility.mjs 295 B
dist/es/plugins/SlotLayout/ChannelSlot.mjs 569 B
dist/es/plugins/SlotLayout/ChatViewNavigationContext.mjs 2.4 kB
dist/es/plugins/SlotLayout/hooks/useLayoutViewState.mjs 470 B
dist/es/plugins/SlotLayout/layout/Slot.mjs 725 B
dist/es/plugins/SlotLayout/layout/WorkspaceLayout.mjs 394 B
dist/es/plugins/SlotLayout/layoutController/LayoutController.mjs 2.96 kB
dist/es/plugins/SlotLayout/layoutController/serialization.mjs 805 B
dist/es/plugins/SlotLayout/mjs 3.65 kB
dist/es/plugins/SlotLayout/slotBinding.mjs 331 B
dist/es/plugins/SlotLayout/slotRegistry.mjs 1.09 kB
dist/es/plugins/SlotLayout/ThreadListSlot.mjs 680 B
dist/es/plugins/SlotLayout/ThreadSlotContext.mjs 190 B
dist/es/plugins/SlotLayout/workspaceNavigationAdapter.mjs 1.28 kB
dist/es/slot-layout.mjs 499 B
dist/es/slot-mjs 125 B
dist/es/store/hooks/useStateStore.mjs 484 B
dist/es/utils/findReverse.mjs 188 B
dist/es/utils/getChannel.mjs 720 B
dist/es/utils/getTextareaCaretRect.mjs 856 B
dist/es/utils/getWholeChar.mjs 368 B
dist/es/utils/isDmChannel.mjs 247 B
dist/es/utils/mergeDeep.mjs 197 B
dist/es/utils/useStableCallback.mjs 831 B

compressed-size-action

@MartinCupela MartinCupela changed the title # refactor(Thread)!: align Thread with Channel - instance prop, provider, children refactor!: align Thread with Channel - instance prop, provider, children Sep 15, 2026
@codecov

codecov Bot commented Sep 15, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
⚠️ Please upload report for BASE (release-v15@b541c45). Learn more about missing BASE report.

Additional details and impacted files
@@              Coverage Diff               @@
##             release-v15    #3289   +/-   ##
==============================================
  Coverage               ?   84.98%           
==============================================
  Files                  ?      524           
  Lines                  ?    15287           
  Branches               ?     4861           
==============================================
  Hits                   ?    12991           
  Misses                 ?     2296           
  Partials               ?        0           

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

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@MartinCupela
MartinCupela merged commit c2136f3 into release-v15 Sep 15, 2026
10 of 11 checks passed
@MartinCupela
MartinCupela deleted the refactor/thread-instance-axis branch September 15, 2026 13:48

This branch was successfully deployed

2 active deployments
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.

1 participant