Skip to content

Releases: GetStream/stream-chat-react

v14.0.0-beta.6

03 Apr 12:53

Choose a tag to compare

v14.0.0-beta.6 Pre-release
Pre-release

14.0.0-beta.6 (2026-04-03)

⚠ BREAKING CHANGES

  • for existing code but changes the accepted values.

getGroupChannelDisplayInfo return value changed

The utility function getGroupChannelDisplayInfo (from
src/components/ChannelListItem/utils.tsx) no longer returns
overflowCount in its result object.

AvatarProps.size type widened to accept arbitrary strings

The size prop on AvatarProps changed from the union '2xl' | 'xl' | 'lg' | 'md' | 'sm' | 'xs' | null to '2xl' | 'xl' | 'lg' | 'md' | 'sm' | 'xs' | (string & {}) | null. This allows passing custom size strings
while preserving autocomplete for the known values.

GroupAvatarProps.size type widened to accept arbitrary strings

The size prop on GroupAvatarProps changed from '2xl' | 'xl' | 'lg' | null to '2xl' | 'xl' | 'lg' | (string & {}) | null. This allows
passing custom size strings while preserving autocomplete for the known
values.

New capLimit prop on AvatarStack

A new optional capLimit prop (type number, default 3) controls the
maximum number of avatars rendered before overflow. When displayInfo
has more entries than capLimit, only the first capLimit items are
shown and a "+N" badge displays the remainder.

GroupAvatarMember type gains optional id field

The GroupAvatarMember type now includes an optional id?: string
field. When present, it is used as the React key for rendered avatars
instead of the fallback ${userName}-${imageUrl}-${index} pattern.

Behavioral Changes

ChannelAvatar always renders via GroupAvatar internally

Previously, ChannelAvatar conditionally chose between <Avatar> (for
0–1 members) and <GroupAvatar> (for 2+ members). It now always
delegates to <GroupAvatar>, which itself renders a single <Avatar>
when fewer than 2 members are present. The visual output is unchanged,
but the component tree structure differs.

GroupAvatar auto-caps displayed members at 4 (or 2 with overflow)

Previously, callers controlled how many members to display and the
overflow count. Now GroupAvatar internally slices displayMembers:

  • 4 or fewer members: all are rendered, no badge.
  • More than 4 members: only the first 2 are rendered, with a "+N"
    badge showing the count of remaining members.

AvatarStack auto-caps displayed items (default: 3, configurable

via capLimit)

Previously, callers controlled how many items to display and the
overflow count. Now AvatarStack internally slices displayInfo based
on the capLimit prop (default 3):

  • capLimit or fewer items: all are rendered, no badge.
  • More than capLimit items: only the first capLimit are
    rendered, with a "+N" badge showing the count of remaining items.

TypingIndicator no longer manually slices typing users

The TypingIndicator component previously sliced the list of typing
users to a maximum of 3 before passing to AvatarStack. It now passes
all typing users, relying on AvatarStack's internal capping (also at
3). The net visual result is unchanged.

chore

  • adjustmens to Avatar, GroupAvatar and ChannelAvatar (#3087) (49d576e)

Bug Fixes

  • examples: clean up tutorial examples for v14 (#3089) (6239895)
  • examples: enable async voice recording preview in thread composer (#3092) (6c7cd42)
  • examples: fix resize handle alignment and thread border gap in RTL (#3091) (2f060ae)
  • Icons, RTL: update icon catalog, RTL layout fixes, dark mode & thread voice recording (#3090) (a4b1c26), closes #3080

v14.0.0-beta.5

31 Mar 15:29

Choose a tag to compare

v14.0.0-beta.5 Pre-release
Pre-release

14.0.0-beta.5 (2026-03-31)

Bug Fixes

  • assorted UI/UX fixes (Giphy, polls, dialogs, composer, headers) (#3081) (6c06e04)
  • close CSS gaps, fix ChannelList dialog portal, and clean up icons (#3079) (a47981f)
  • Icons: sync icon catalog with refreshed Line SVGs (#3080) (9472f7b)
  • MessageList: set width on message list scroll container (#3077) (3f09362)
  • post-review MessageReactionsDetail adjustments (#3082) (a82bdcb)
  • use link icon for link-type attachments (#3083) (241209e)

Features

  • examples: add RTL direction toggle to vite example app (#3084) (887a326)
  • examples: refresh react tutorial app for v14 (#3078) (86ada37)

v14.0.0-beta.4

30 Mar 11:26

Choose a tag to compare

v14.0.0-beta.4 Pre-release
Pre-release

14.0.0-beta.4 (2026-03-30)

⚠ BREAKING CHANGES

  • Importing styles from stream-chat-react/dist/css/v2/*
    would no longer work, import from stream-chat-react/dist/css/*
    instead.

Bug Fixes

Features

  • Icons: migrate SDK icons to Phosphor icon set (#3075) (30c1bee)

v14.0.0-beta.3

27 Mar 12:09

Choose a tag to compare

v14.0.0-beta.3 Pre-release
Pre-release

Released: 2026-03-27
Diff: v14.0.0-beta.2...v14.0.0-beta.3
Full breaking changes reference: breaking-changes.md

Bug Fixes

  • align message reactions vertically to the center of the message list (#3064) (55dd2e8)
  • increase message list width (f81cae4)
  • increase message list width (#3062) (fdf0e15)
  • keep MessageList scrolled to the bottom (#3068) (91eba1b)
  • reliably detect whether the click originated inside before closing mobile nav (#3061) (8d25ead)
  • remove bottom padding from poll option with votes in poll results (#3059) (a55774d)

Features

  • add ContextMenu animations API and global close-on-click-outside configuration mechanism (#3067) (630e5c7)
  • quick dropdown toggle and cleanup (#3054) (30ddab0)
  • reset audio player progress when the track is fully played (#3066) (7914e51)

v14.0.0-beta.2

25 Mar 10:34

Choose a tag to compare

v14.0.0-beta.2 Pre-release
Pre-release

Released: 2026-03-25
Diff: v14.0.0-beta.1...v14.0.0-beta.2
Full breaking changes reference: breaking-changes.md

⚠ Breaking Changes

Removed Components

  • ActionsIcon, ReactionIcon, ThreadIcon, MessageErrorIcon β€” removed (#3050) (f4caa0e)
  • MessageErrorText β€” removed (#3042) (e0207cd)

CSS Class Renames

Old New
str-chat__message-error-icon str-chat__message-error-indicator

Behavioral Changes

  • handleDelete in MessageContext now re-throws errors instead of swallowing them. (#3042) (e0207cd)
  • Users can no longer mark their own messages as unread. (#3043) (fe05b62)

✨ Features

  • Redesigned message actions icons and message error badge (#3050) (f4caa0e)
  • Shared gallery preview in AttachmentPreviewList (#3044) (f05f47d)
  • "Voice message deleted" notification (#3045) (9982c45)
  • Prevent marking own messages as unread (#3043) (fe05b62)

πŸ› Bug Fixes

  • Adjust message UI for network error when sending a message (#3042) (e0207cd)
  • Calculate message read status for the first message in a channel (ported from v13) (#3056) (b7c33c8)
  • Clear message composer on unmount (#3053) (f2a79ab)
  • Prevent empty message composer textarea from growing (#3051) (880d12d)
  • Align textarea placeholder and text with surroundings (#3052) (da293f0)
  • Keep command menu distance constant from the invoking button (#3049) (960c1f9)
  • Prevent poll options layout shifting upon voting (#3048) (cdaf480)
  • Allow useNotificationTarget to return undefined (#3046) (38b278e)

v13.14.3

25 Mar 10:37

Choose a tag to compare

13.14.3 (2026-03-25)

Bug Fixes

  • calculate message read status for the first message in a channel (#3055) (eda0844)

v14.0.0-beta.1

23 Mar 11:55

Choose a tag to compare

v14.0.0-beta.1 Pre-release
Pre-release

v14.0.0-beta.1 (2026-03-23)

Migration guide: Upgrade to v14
Full breaking changes reference: breaking-changes.md


⚠ Breaking Changes

Removed Components & Hooks

  • ChannelSearch β€” use Search instead (#3014) (9a7b7a2)
  • Modal β€” use GlobalModal instead
  • FixedHeightMessage β€” removed entirely
  • MessageDeleted β€” replaced by MessageDeletedBubble (rendered within the message bubble) (#2964) (446de99)
  • MessageActionsWrapper β€” dropped
  • MessageOptions, CustomMessageActions, CustomMessageActionsList, MessageActionsBox β€” use MessageActions instead (#2932) (1d28279)
  • RemindMeActionButton β€” removed
  • QuotedPoll component and isQuoted prop from Poll β€” removed
  • MessageEditedTimestamp β€” removed (7cbe67e), replaced by MessageEditedIndicator (#3019) (7e9637a)
  • MessageIsThreadReplyInChannelButtonIndicator β€” replaced by MessageAlsoSentInChannelIndicator (#2968) (b198029)
  • MessageListNotifications β€” replaced by NotificationList (#3028) (e06ec62)
  • useAudioController hook β€” migrate to useAudioPlayer (#3016) (35f8a5d)
  • Icons removed: PauseIcon, PlayTriangleIcon, GeolocationIcon

Removed HOC Wrappers

All legacy higher-order context wrappers have been removed in favor of hooks (#2962) (e0cd4f2):

  • withChannelActionContext
  • withChannelStateContext
  • withChatContext
  • withComponentContext
  • withMessageContext
  • withTranslationContext
  • withTypingContext

Provider/hook APIs (*Provider and use*Context) remain unchanged. Helper src/context/utils/getDisplayName.ts also deleted.

Component API Changes

  • Channel β€” no longer supports component overrides directly; use WithComponents instead. (#2904) (cd6001f)
  • Avatar β€” removed user prop; image renamed to imageUrl; name renamed to userName. (#2926) (2eb04ee)
  • ReactionSelector β€” removed props: Avatar, detailedView, latest_reactions, reaction_counts, reaction_groups, reactionOptions, reverse. (#2916) (24a1169)
  • VirtualMessage β€” props changed from FixedHeightMessageProps to MessageUIComponentProps.
  • MessageContextValue['handleDelete'] β€” signature changed.
  • MessageProps β€” removed endOfGroup, firstOfGroup, and groupedByUser (use groupStyles instead).
  • DropdownProps β€” replaced openButtonProps with TriggerComponent; removed dialogId.
  • BaseImage β€” now uses ImageFallback component instead of CSS mask for error fallback.
  • GroupAvatar β€” renders a single Avatar without wrappers when groupChannelDisplayInfo has one entry. (#2930) (e307882)
  • useChannelPreviewInfo β€” groupChannelDisplayInfo is now always defined. For 1:1 or ≀2 members it returns { members: [], overflowCount: undefined }.
  • addNotification (from ChannelStateContext) β€” replaced by client.notifications API. (#3018) (83dec93)
  • NotificationList β€” moved; new parent is MessageListMainPanel.
  • isOnlyEmojis utility β€” replaced by messageTextHasEmojisOnly.
  • handleSubmit β€” removed customMessageData from type declaration. (#2950) (fc547be)

Renamed Components

Old Name New Name
MessageNotification NewMessageNotification
ScrollToBottomButton ScrollToLatestMessageButton
ReactionsListModal MessageReactionsDetail
MessageDeleted MessageDeletedBubble
ChannelListMessenger ChannelListUI (#3036) (d251338)
MessageListNotifications / MessageListNotificationsProps NotificationList / NotificationListProps

See also: (#3030) (a563248), (#3035) (7c978a9)

CSS Class Renames

Channel preview classes β€” all str-chat__channel-preview* renamed to str-chat__channel-list-item*:

Old New
str-chat__channel-preview-container str-chat__channel-list-item-container

Message classes:

Old New
str-chat__message-input-cooldown str-chat__message-composer-cooldown
str-chat__message-simple-name str-chat__message-metadata__name
str-chat__message-simple-timestamp str-chat__message-metadata__timestamp
str-chat__simple-message--error-failed str-chat__message-inner--error
str-chat__channel-header-end str-chat__channel-header__data

Reaction classes:

Old New
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

Removed classes (no replacement):

  • str-chat__message-simple, str-chat__message-simple--me
  • str-chat__message-reactions-container
  • str-chat__reaction-list--reverse
  • str-chat__message-reaction-own
  • str-chat__avatar--single, str-chat__avatar-group--three-part
  • str-chat_modal-inner
  • All --str-chat__jump-to-latest-message-* CSS variables
  • All --str-chat__message-bounce-* CSS variables

Other Breaking UI Changes

  • MessageReactionsDetail now renders in a dialog instead of a modal. (#2963) (a941ed2)
  • MessageActions now uses general-purpose ContextMenu components. (#2932) (1d28279)
  • Suggestion list and items re-implemented with the new ContextMenu API (markup changed). (#2931) (f151abc)
  • str-chat__message-composer-container now wraps the message composer.
  • Date separator no longer contains separation lines.
  • Image/giphy attachments now rendered with ModalGallery. (#2936) (a52de09)
  • Gallery assets must use the new GalleryItem type.
  • Removed support for "live" label and channel.data.subtitle display.
  • ScrollToLatestMessageButton introduced by default in message list (with new markup).
  • UnreadMessagesSeparator markup changed.

✨ Features

Design System & Theming

Read more

v13.14.2

11 Mar 16:38

Choose a tag to compare

13.14.2 (2026-03-11)

Bug Fixes

  • allow forwarding unsafeHTML to system messages (EventComponent) (#2973) (5364e14)

v13.14.1

26 Feb 06:10

Choose a tag to compare

13.14.1 (2026-02-26)

Bug Fixes

  • remove customMessageData from handleSubmit type declaration (#2950) (38abf76)

v13.14.0

16 Feb 10:35

Choose a tag to compare

13.14.0 (2026-02-16)

Features

  • use server-defined default limits for channel and channel lists (#2940) (e5b528d)