Skip to content

v14.0.0-beta.1

Pre-release
Pre-release

Choose a tag to compare

@stream-ci-bot stream-ci-bot released this 23 Mar 11:55
· 203 commits to master since this 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

Redesigned Components

New Components & Features

  • AvatarStack component + message replies button redesign (#2938) (f7ad774)
  • MessageEditedIndicator component (#3019) (7e9637a)
  • MessageAlsoSentInChannelIndicator component (#2968) (b198029)
  • ScrollToLatestMessageButton (default in message list)
  • ModalGallery for image/giphy attachment rendering (#2936) (a52de09)
  • Proprietary Gallery component (replaces react-image-gallery) (#2936) (a52de09)
  • Message translation indicator (#2958) (5c3a996)
  • Smooth scrolling in MessageList (#3027) (cdf35d2)
  • Sidebar display control (#2978) (b77d995) with ChatView converted to general-purpose sidebar (#2939) (cd7a030)
  • Web sidebar nav icons aligned with mobile tab bar (#2979) (370caea)
  • channelActionSet introduced (#3026) (199797e)
  • Unified dialog UI system (#2955) (44e2eaf)
  • Unified channel and thread display titles (#2998) (29bb396)
  • Updated empty states across chat views (#2976) (7eacfb7)
  • Voice recording preview rendered in a dedicated slot (#2957) (2859c76)
  • Server-defined default limits for channel and channel lists (#2943) (6302c96)
  • MessageTimestamp now shows only time (#3021) (da4aa92)
  • Modal close button restored (#2948) (62a27e8)
  • Aligned iconOnly API and unread badge styling (#2982) (c28b8ff)

πŸ› Bug Fixes

  • Stop typewriter animation on ai_indicator.stop (#2918) (7777721)
  • Prevent increasing unread count via useMarkRead when read-events are disabled (#2925) (d0e7b5f)
  • Fix isDayjs import for ESM usage (#2924) (73f8767)
  • Fix focus outline visual glitch for input (212e449)
  • Fix voice recorder button not shown when quoting a message (#3015) (dbd6648)
  • Fix mobile sidebar overlays shifting chat content (#2995) (35f4282)
  • Exit search on blur (#3013) (97f485d)
  • Fix single checkmark color in dark mode (#3032) (b3858c8)
  • Fix poll forms not being submittable (#2989) (7dc82ca)
  • Fix suggesting a poll option inadvertently voting for it (e0659f3)
  • Fix giphy interactions and categorization (d403eee), (f032187)
  • Sort command menus consistently (#2967) (64fd76b)
  • Hide buttons in message input when a command is selected (22d32d4)
  • Don't expose giphy arg in quoted message preview and channel preview (21b905c)
  • Allow forwarding unsafeHTML to system messages (EventComponent) (#2973) (99c3960)
  • Show ToggleSidebarButton in threads view's ThreadHeader (#3020) (53d5639)
  • Unified SummarizedMessagePreview, covering more cases (#2977) (1589481)
  • Wrap attachment previews in message composer (#2994) (a401978)
  • Align message list width constraints (#2965) (02c9b8d)
  • Align chat view sidebars and attachment preview remove icon (#3004) (08dc4b6)
  • Adjust ChatView.Selector button styles (#2990) (7907f51)
  • Update ChatView selector icons (#2985) (ea814c3)
  • Make vite example channel selection bookmarkable (#2997) (1fbbfd1)
  • Make full option list container take available height (da77bf3)
  • Move "show all options" button to PollOptionList component (e75ca3a)
  • Remove tooltip from PollVote (ca11f90)
  • Unify poll modal title casing, placeholders, and button placement (33fed1e)
  • Various poll UI fixes (#3034) (885b7a6)
  • Giphy and command UI fixes (#3025) (aa36a4d)
  • Recert interactive flag, make Giphy use BaseImage (59163cc)
  • Remove unnecessary CSS (3fc6f3f)
  • Revert changes to EndPollAlert (c364b0b)
  • Stabilize all test suites after v14 breaking changes (#3039) (91c1602)

πŸ”§ Refactors

  • Move BaseImage out of gallery (dfe9d77)
  • Remove deprecated useAudioController hook (#3016) (35f8a5d)
  • Remove initialNavOpenResponsive for redundancy (#3023) (1227617)