Skip to content

Releases: GetStream/stream-chat-react

v14.4.1

05 Jun 15:30

Choose a tag to compare

14.4.1 (2026-06-05)

Bug Fixes

  • only run husky in a git checkout so npm consumers don't break (#3211) (640bf4b)

v14.4.0

05 Jun 15:13

Choose a tag to compare

14.4.0 (2026-06-05)

Bug Fixes

  • compat: restore React 17/18 compatibility in certain components (#3197) (b513b69)
  • general performance and bug fixes (#3201) (57c5795)
  • interop: unwrap CJS default exports (react-player, @emoji-mart/react) (#3199) (4cddb02)
  • maintain topmost modal non-inert (#3206) (7ad98fa)

Features

  • allow to stack modals on top of each other (#3203) (4c934ae)
  • display notifications above modals (#3200) (0433090)
  • Reactions: send emoji_code with reactions for push notification rendering (#3209) (2faa620)

Performance Improvements

  • Message: hoist regex compilation in message text rendering (#3202) (8c018a4)
  • VideoPlayer: lazy-load react-player to keep it out of the main bundle (#3204) (18dc966)

v14.3.0

26 May 15:52

Choose a tag to compare

14.3.0 (2026-05-26)

Bug Fixes

  • ContextMenu: show focus outline for auto-focused context menu items (#3193) (237b139)
  • extended reactions buttonΒ visibility adjustments in MessageReactionsDetail (#3186) (52b0b59), closes #3172

Features

  • Notifications: swap snackbar notifications after minDisplayMs dwell (#3196) (dec271f)
  • reflect predefined filters in the channel list ordering (#3194) (a422d4b)

v14.2.0

11 May 11:24

Choose a tag to compare

14.2.0 (2026-05-11)

Bug Fixes

  • allow content overflow in generic Button (#3167) (6735fa1)
  • Avatar: fall back to initials when imageUrl is an empty string (#3168) (541eef8)
  • Channel: respect false shouldGenerateVideoThumbnail prop (#3184) (340af2b)
  • decouple modern-normalize from the SDK (#3180) (bcaf1f6), closes #3134
  • extended reactions button adjustments (#3172) (5259c17)
  • prevent messages being squashed in narrow message lists (#3153) (a1cc63f)
  • prevent overriding active channel UI on ChannelList pagination error (#3164) (0c0d65c)
  • remove visual glitches in ModalGallery, placeholder color, borders (#3178) (32dcace)

Features

  • a11y: announce message bubble text with context (#3177) (16f7294)
  • a11y: make ChannelListItemActionButtons accessible with keyboard (#3176) (8a6b90c)
  • add authorLabel prop to QuotedMessagePreviewUIProps (#3162) (88ef71e)
  • add matchReferenceWidth to DropdownProps (#3166) (cef7fa5)
  • add pin icon to the ChannelListItemUI (#3163) (f37f0a9)
  • add snackbar notification upon channels query pagination failure (#3179) (1028763)
  • clear command mode in message composer using keyboard (#3175) (6257e17)
  • introduce selective command enablement based on message editing or quoting in message composer (#3171) (8fa096a)

v14.1.0

04 May 07:59

Choose a tag to compare

14.1.0 (2026-05-04)

Bug Fixes

  • add ScrollToLatestMessageButton to ComponentContext (#3159) (952c125)
  • allow user blocking only in DM-type channels (#3139) (deda536)
  • decouple msg bubble width from reaction list width (#3142) (980c233)
  • export AttachmentSelectorContext from the SDK (#3158) (68efeb5)
  • font & box shadow fixes (#3135) (6d04cdf), closes #3134
  • limit reactions host width (segmented/bottom) (#3154) (be50105)
  • make search results scrollable (#3152) (ead6cb5)
  • MessageList: prevent message pagination too early on mount (#3143) (12e282f)
  • prevent cutting off button outlines in ContextMenu components (#3151) (b3469f0)
  • remove scrollbar gutters from VML (#3148) (4a6a8ae)

Features

  • a11y: improve accessibility across dialogs, forms, menus, media, and focus flows (#3146) (917b7f5)
  • change textarea default placeholder text (#3150) (45b1836)
  • introduce MessageUI to ComponentContext (#3140) (16af18d)

Refactors

v13.14.5

04 May 10:32

Choose a tag to compare

13.14.5 (2026-05-04)

Bug Fixes

  • export AttachmentSelectorContext from the SDK (#3158) (f458b5f)

v14.0.1

17 Apr 14:58

Choose a tag to compare

14.0.1 (2026-04-17)

Bug Fixes

  • allow flipping message actions context menu (#3130) (f8c9600)
  • drop unused/outdated CSS variables (#3128) (1a2a61f)
  • recognize async moderated shadow blocked messages as blocked (#3131) (eac76dc)

v13.14.4

17 Apr 14:54

Choose a tag to compare

13.14.4 (2026-04-17)

Bug Fixes

  • recognize async moderated shadow blocked messages as blocked (#3132) (096de30)

v14.0.0

16 Apr 15:17

Choose a tag to compare

Released: 2026-04-16 Β· Full diff Β· Migration guide

A full visual and architectural refresh of the SDK. This release brings a redesigned component system, new message composer, overhauled theming, and a cleaner customization model β€” alongside significant breaking changes to component APIs, CSS class names, and context wrappers.


⚠️ Breaking Changes

Resources for migrating:

Component & Import Renames

v13 v14
MessageInput MessageComposer
MessageInputFlat MessageComposerUI
MessageInputContext MessageComposerContext
useMessageInputContext useMessageComposerContext
MessageOptions MessageActions
MessageDeleted MessageDeletedBubble
MessageNotification NewMessageNotification
ScrollToBottomButton ScrollToLatestMessageButton
ReactionsListModal MessageReactionsDetail
ChannelListMessenger ChannelListUI
ChannelPreview ChannelListItem
ChannelPreviewMessenger ChannelListItemUI
ChannelSearch Search (now stable, main entrypoint)
Modal GlobalModal
UploadButton FileInput
MessageIsThreadReplyInChannelButtonIndicator MessageAlsoSentInChannelIndicator
MessageListNotifications NotificationList
isOnlyEmojis messageTextHasEmojisOnly
useAudioController useAudioPlayer

Removed entirely (no replacement via rename): FixedHeightMessage, EditMessageForm, EditMessageModal, MessageActionsBox, MessageActionsWrapper, CustomMessageActionsList, QuotedPoll, ButtonWithSubmenu, ConnectionStatus, MessageErrorText, RemindMeActionButton. See the migration guide for recommended alternatives.

Removed icon exports: ActionsIcon, ReactionIcon, ThreadIcon, MessageErrorIcon, PauseIcon, PlayTriangleIcon, GeolocationIcon, CloseIcon, SendIcon, MicIcon. Migrate to the public Icons set or higher-level components such as MessageActions, SendButton, and MessageStatus.

MessageActions and Search are no longer exported from stream-chat-react/experimental. Import from the main package:

import { MessageActions, Search } from 'stream-chat-react';

UI Overrides: Channel β†’ WithComponents

  • Channel no longer accepts component override props. Move all overrides to <WithComponents overrides={{...}}>.
  • ChannelList direct override props removed: List, Preview, Avatar, LoadingIndicator, LoadingErrorIndicator. Use WithComponents for all of these.
  • The with*Context HOC wrappers have been removed: withChannelActionContext, withChannelStateContext, withChatContext, withComponentContext, withMessageContext, withTranslationContext, withTypingContext. Use use*Context hooks inside function components instead.
  • Channel now renders EmptyStateIndicator by default when no channel is active. Pass EmptyPlaceholder={null} to restore the old blank behavior.
  • ChannelList.additionalChannelSearchProps and the ChannelList.ChannelSearch override prop were removed. Customize search via WithComponents with Search, SearchBar, or SearchResults.

Message, Actions & Notifications

  • handleDelete signature changed from (event, options?) to (options?). It now rethrows server-side failures β€” wrap in try/catch in custom delete buttons.
  • onlySenderCanEdit removed from MessageProps. Editability follows channel capabilities; filter edit out of your messageActionSet for custom restrictions.
  • Notification callback props removed from Message: getDeleteMessageErrorNotification, getFetchReactionsErrorNotification, getFlagMessageErrorNotification, getMuteUserSuccessNotification, and others. Use notification translators in Streami18n or useNotificationApi().
  • customMessageActions removed from MessageContext, Message, MessageList, and VirtualizedMessageList. Use messageActionSet and MessageActions.
  • Own messages can no longer be marked unread, even when the channel has the read-events capability.
  • MessageEditedTimestamp removed. Use MessageEditedIndicator, or render your own Timestamp against message.message_text_updated_at.
  • MessageTimestamp now defaults to time-only formatting (HH:mm). Override via Streami18n or provide a custom MessageTimestamp for the old calendar-style output.
  • Edit-message flow no longer uses EditMessageForm / EditMessageModal. Start editing with messageComposer.initState({ composition: message }), cancel with messageComposer.clear().
  • MessageProps no longer injects endOfGroup, firstOfGroup, or groupedByUser as props. Read them from useMessageContext() inside your custom component.
  • The order of actions in MessageActions has changed. Define your own messageActionSet explicitly if your UX depends on a stable action order.

Message Composer (formerly MessageInput)

  • additionalMessageInputProps β†’ additionalMessageComposerProps
  • handleSubmit now accepts only an optional event. The customMessageData and SendMessageOptions arguments were removed. Use composer middleware or messageComposer.customDataManager instead.
  • The default textarea now grows up to 10 rows (was 1). Pass maxRows={1} to restore single-line behavior.
  • QuotedMessagePreviewHeader removed. Customize the full quoted preview through QuotedMessagePreview or QuotedMessagePreviewUI.
  • Voice recordings moved out of AttachmentPreviewList into a dedicated VoiceRecordingPreviewSlot.
  • The EmojiPicker plugin now requires a separate stylesheet import:
    import 'stream-chat-react/dist/css/emoji-picker.css';
  • str-chat__message-composer-container now wraps the full message composer area.

Avatar, Gallery & Attachments

  • Avatar props renamed: image β†’ imageUrl, name β†’ userName. The user prop was removed. size now accepts arbitrary strings.
  • ChannelAvatar / GroupAvatar: use displayMembers instead of groupChannelDisplayInfo. GroupAvatar now auto-caps displayed members at 4 (or 2 with an overflow badge) β€” callers no longer control slicing.
  • AvatarStack: new capLimit prop (default 3) controls overflow. Previously callers managed slicing manually.
  • AttachmentProps.Gallery β†’ AttachmentProps.ModalGallery. The old Gallery component is now a carousel provider; use ModalGallery for the thumbnail-grid-plus-viewer behavior.
  • ModalGallery: migrate from the images / index API to the items-based API. Gallery payloads changed from images to items of type GalleryItem.
  • FileIcon: filename β†’ fileName; big, size, sizeSmall, type removed; mimeTypeToIcon(type, mimeType) β†’ mimeTypeToIcon(mimeType?).
  • ReactionSelector: props Avatar, detailedView, latest_reactions, reaction_counts, reaction_groups, reactionOptions, and reverse removed.
  • BaseImage now uses the ImageFallback component (instead of a CSS mask) to display fallbacks on error.

CSS Classes & Stylesheet

CSS import path: stream-chat-react/dist/css/v2/* is no longer valid. Use stream-chat-react/dist/css/* instead.

Removed CSS variables: --str-chat__message-bounce-*, --str-chat__jump-to-latest-message-*

Old class New class
str-chat__channel-preview* str-chat__channel-list-item*
str-chat__channel-preview-container str-chat__channel-list-item-container
str-chat__message-input-cooldown str-chat__message-composer-cooldown
str-chat__message-simple-name str-chat__message-metadata__name
str-chat__simple-message--error-failed str-chat__message-inner--error
str-chat__message-simple-timestamp str-chat__message-metadata__timestamp
str-chat__message-error-icon str-chat__message-error-indicator
str-chat__reaction-list str-chat__message-reactions
str-chat__message-reactions str-chat__message-reactions__list
str-chat__message-reaction str-chat__message-reactions__list-item
str-chat__message-reaction-emoji str-chat__message-reactions__item-icon
str-chat__message-reaction-count str-chat__message-reactions__item-count
str-chat__reaction-list--counter str-chat__message-reactions__total-count
str-chat__channel-list-messenger str-chat__channel-list-inner
str-chat__channel-header-end str-chat__channel-header__data
str-chat__message-reactions-container (removed)
str-chat__reaction-list--reverse (removed)
str-chat__message-reaction-own (removed)
str-chat__message-simple (root) (removed from MessageUI)
str-chat__avatar--single (removed)
str-chat__avatar-group--three-part (removed)

Sidebar, Polls, Dialogs & Misc

  • Sidebar state is now app-owned. The initialNavOpen prop and navOpen / openMobileNav / closeMobileNav from useChatContext() have been removed. Manage sidebar state in your own app and inject toggle UI via `HeaderStartCont...
Read more

v14.0.0-beta.8

16 Apr 09:13

Choose a tag to compare

v14.0.0-beta.8 Pre-release
Pre-release

14.0.0-beta.8 (2026-04-16)

Bug Fixes

  • dialog: prevent outside-click from other dialog managers closing active dialogs (#3112) (233ec89)
  • MessageUI: use isDeleted as a flag to determine message deletion (#3113) (f95f287)
  • prevent hiding floating date separator in message lists (#3119) (397fadd)
  • remove UI issues in poll related components (#3118) (d7870bb)
  • unify what is considered a deleted message across the components (#3117) (20b4022)

Features