From 4bb3c71ffdd41857db5a277f69f76ddb4fb65152 Mon Sep 17 00:00:00 2001 From: Oliver Lazoroski Date: Fri, 3 Apr 2026 15:18:57 +0200 Subject: [PATCH 1/2] docs: track react v14 avatar overflow follow-up --- ai-docs/breaking-changes.md | 28 +++-- ai-docs/docs-plan.md | 216 +++++++++++++++++++----------------- 2 files changed, 134 insertions(+), 110 deletions(-) diff --git a/ai-docs/breaking-changes.md b/ai-docs/breaking-changes.md index bd2d4ccbe..9bc06884c 100644 --- a/ai-docs/breaking-changes.md +++ b/ai-docs/breaking-changes.md @@ -1,6 +1,6 @@ # React v14 Breaking Changes -Last updated: 2026-03-31 +Last updated: 2026-04-03 ## Scope @@ -13,8 +13,8 @@ This file tracks confirmed v13 to v14 breaking changes for `stream-chat-react`. ## Audit Reference - Baseline tag: `v13.14.2` -- Current audited SDK head: `241209e8059ce767fe5bc3500466aa73f53618e3` (`241209e8`, `2026-03-31`, `fix: use link icon for link-type attachments (#3083)`) -- Future mining starting point: diff `241209e8059ce767fe5bc3500466aa73f53618e3..HEAD` first, then compare any newly confirmed changes back to the original v13 baseline before adding them here +- Current audited SDK head: `6c7cd42afffb6d341b7a3b4bf5cc5a9bcd3f98ee` (`6c7cd42a`, `2026-04-03`, `fix(examples): enable async voice recording preview in thread composer (#3092)`) +- Future mining starting point: diff `6c7cd42afffb6d341b7a3b4bf5cc5a9bcd3f98ee..HEAD` first, then compare any newly confirmed changes back to the original v13 baseline before adding them here Only confirmed items should move from this file into the migration guide. @@ -636,6 +636,8 @@ Only confirmed items should move from this file into the migration guide. - code using `useChannelPreviewInfo()` can no longer treat `groupChannelDisplayInfo == null` as the signal for a non-group channel - code using `useChannelPreviewInfo().displayTitle` can now receive synthesized group/direct-message titles where v13 helper code often returned `undefined` - if you switched to the current `stream-chat` core helper `channel.getDisplayImage()`, note that it no longer falls back to the other DM member's image the way the old React helper path effectively did + - custom `GroupAvatar`, `ChannelAvatar`, and `AvatarStack` wrappers can no longer control overflow badges with an `overflowCount` prop; overflow is now calculated internally from the provided members/items + - custom tests or wrappers that depended on `ChannelAvatar` conditionally rendering a plain `Avatar` instead of `GroupAvatar` need to be re-baselined against the current always-`GroupAvatar` component tree - Old API: - `v13.14.2:src/components/Avatar/Avatar.tsx:8` `AvatarProps` exposed `image`, `name`, `onClick`, `onMouseOver`, and `user` - `v13.14.2:src/components/Avatar/ChannelAvatar.tsx:6` `ChannelAvatarProps = Partial & AvatarProps` @@ -647,9 +649,10 @@ Only confirmed items should move from this file into the migration guide. - `v13.14.2:src/components/ChannelPreview/hooks/useChannelPreviewInfo.ts:46` returned `groupChannelDisplayInfo` as the nullable result of `getGroupChannelDisplayInfo(channel)` - New API: - `src/components/Avatar/Avatar.tsx:10` `AvatarProps` now expose `imageUrl`, `userName`, `isOnline`, and required `size` - - `src/components/Avatar/ChannelAvatar.tsx:7` `ChannelAvatarProps` now expose `displayMembers`, `overflowCount`, and required `size` - - `src/components/Avatar/GroupAvatar.tsx:10` `GroupAvatarProps` now expose `displayMembers`, `overflowCount`, `size`, and `isOnline` - - `src/components/ChannelListItem/utils.tsx:116` types `GroupChannelDisplayInfo` as `{ members, overflowCount }` + - `src/components/Avatar/ChannelAvatar.tsx:6` `ChannelAvatarProps` are now `Partial> & { size: GroupAvatarProps['size'] | AvatarProps['size'] }` + - `src/components/Avatar/GroupAvatar.tsx:12` `GroupAvatarProps` now expose `displayMembers`, `size`, and `isOnline`, with no public `overflowCount` + - `src/components/Avatar/AvatarStack.tsx:9` through `:18` now expose `capLimit?: number` and calculate overflow internally instead of accepting a caller-provided `overflowCount` + - `src/components/ChannelListItem/utils.tsx:139` through `:149` now return `{ members }` from `getGroupChannelDisplayInfo(channel)`, with no computed `overflowCount` - `src/components/ChannelListItem/utils.tsx:125` exports `getChannelDisplayImage` - `src/components/ChannelListItem/hooks/index.ts:1` exports `useChannelDisplayName` - `src/components/ChannelListItem/hooks/useChannelDisplayName.ts:8` through `:10` synthesize DM labels and group titles from up to two member names @@ -658,23 +661,26 @@ Only confirmed items should move from this file into the migration guide. - Replacement: - rename avatar props from `image` / `name` to `imageUrl` / `userName` - supply the new required `size` prop when rendering SDK avatars directly - - migrate group avatar data from `groupChannelDisplayInfo` to `displayMembers` plus optional `overflowCount` + - migrate group avatar data from `groupChannelDisplayInfo` to `displayMembers`; let `GroupAvatar`, `ChannelAvatar`, and `AvatarStack` compute overflow badges automatically - replace `getDisplayImage` with `getChannelDisplayImage` - replace `getDisplayTitle` with `useChannelDisplayName()` or `useChannelPreviewInfo()`, depending on whether the caller is already inside React - update any `useChannelPreviewInfo()` checks that previously depended on `groupChannelDisplayInfo` being `null` or `undefined` - if you need the old DM-image fallback in custom preview code, prefer `getChannelDisplayImage(channel)` over `channel.getDisplayImage()` - Evidence: - - current `ChannelHeader` passes `displayMembers`, `imageUrl`, `overflowCount`, `size`, and `userName` into `ChannelAvatar` - - current `GroupAvatar` renders a `+N` badge from `overflowCount` instead of the old three-part/four-part array-only logic + - current `ChannelAvatar` always renders through `GroupAvatar`, even for one-member/empty cases + - current `GroupAvatar` renders a `+N` badge by slicing `displayMembers` internally, not from a caller-provided prop + - current `AvatarStack` renders a `+N` badge from `capLimit` and `displayInfo.length`, not from a caller-provided prop - current package exports no `getDisplayTitle` or `getDisplayImage` - current `useChannelPreviewInfo()` normalizes empty/non-group state to `{ members: [], overflowCount: undefined }` - current `useChannelDisplayName()` adds synthesized DM/group title behavior that did not exist in the old helper pair - current `ChannelListItem` tests assert that `channel.getDisplayImage()` no longer falls back to member images, while `getChannelDisplayImage()` preserves the UI-oriented fallback + - commit `49d576e4 chore: adjustmens to Avatar, GroupAvatar and ChannelAvatar (#3087)` removed manual `overflowCount` props and moved overflow handling fully into the current avatar components - Docs impact: - migration guide - `docs/data/docs/chat-sdk/react/v14/02-ui-components/08-message/08-avatar.md` - `docs/data/docs/chat-sdk/react/v14/02-ui-components/05-channel-list/04-channel_preview_ui.md` - `docs/data/docs/chat-sdk/react/v14/03-ui-cookbook/02-channel-list/01-channel_list_preview.md` + - `docs/data/docs/chat-sdk/react/v14/03-ui-cookbook/09-channel_header.md` - `docs/data/docs/chat-sdk/react/v14/03-ui-cookbook/10-thread_header.md` - `docs/data/docs/chat-sdk/react/v14/03-ui-cookbook/05-message-input/06-suggestion_list.md` - `docs/data/docs/chat-sdk/react/v14/03-ui-cookbook/04-message/06-system_message.md` @@ -2059,6 +2065,10 @@ Only confirmed items should move from this file into the migration guide. - audio/player, scrolling, and layout polish (`7914e516`, `91eba1b4`, `8d25ead3`, `55dd2e81`, `fdf0e155`, `221aa0d4`): investigated; these commits refine playback reset behavior, initial bottom-pinning, mobile-nav click detection, message-list width, reactions alignment, and voice-recording attachment layout, but they do not remove or rename a documented public API beyond the separately tracked `useChannelListContext()` signature cleanup. - type-safety and stale-prop cleanup in tests (`277bc417`): investigated; this commit removes stale props from test fixtures and tightens mock typing, but it does not change the current public runtime API beyond what was already documented in earlier migration buckets. - link-type attachment preview icon swap (`241209e8`): investigated; current summarized-preview and latest-message preview UIs now use the shared link icon for link attachments, but this is a visual/current-behavior adjustment rather than a removed or renamed public API. +- avatar overflow/internalization follow-up (`49d576e4`): tracked under `BC-018`, not as a separate bucket; current `GroupAvatar`, `ChannelAvatar`, and `AvatarStack` removed caller-controlled `overflowCount` handling and now calculate overflow internally from members/items. +- icon catalog, RTL, dark-mode, and thread-voice-recording follow-up (`a4b1c2662`): investigated; current icon renames such as `IconCrossSmall -> IconXmarkSmall`, `IconExclamationTriangle -> IconExclamationTriangleFill`, and `IconEyeOpen -> IconEyeFill` are not part of the v13 public surface, and the RTL/dark-mode/thread voice-recording changes are current-behavior polish rather than a new migration bucket. +- styling cleanup (`3bbf121ff`): investigated; broad CSS cleanup and internal selector polish, but no new removed or renamed public API beyond the avatar/channel-list/theming buckets already tracked. +- example-only follow-ups (`623989574`, `2f060ae89`, `6c7cd42af`): investigated; these only update examples and docs scaffolding and do not add a new v13-to-v14 migration item. - assorted UI/UX fixes (`6c06e043`, `a47981ff`, `3f093622`): investigated; Giphy editability, dialog layering, composer state restoration, centered headers, message-list width, and channel-list dialog-portal cleanup changed runtime behavior, but they did not introduce new removed exports or renamed public override surfaces beyond the separately tracked reactions and icon buckets. - example-app refreshes (`86ada37e`, `887a326a`): investigated; these only update example apps and do not change the public SDK surface. diff --git a/ai-docs/docs-plan.md b/ai-docs/docs-plan.md index a13c79a1d..66bc94181 100644 --- a/ai-docs/docs-plan.md +++ b/ai-docs/docs-plan.md @@ -1,6 +1,6 @@ # React v14 Docs Plan -Last updated: 2026-03-31 +Last updated: 2026-04-03 ## Goal @@ -8,16 +8,16 @@ Produce a reliable v13 to v14 migration guide for `stream-chat-react` and keep t ## Current Phase -- Phase: post-snapshot docs maintenance against audited head `241209e8059ce767fe5bc3500466aa73f53618e3` +- Phase: post-snapshot docs maintenance against audited head `6c7cd42afffb6d341b7a3b4bf5cc5a9bcd3f98ee` - Constraint: keep `breaking-changes.md` as the source of truth for confirmed migration items, but treat this file as the execution tracker for the remaining v14 docs work - Migration-guide and sidebar work is already in flight on `docs-content#1080`; keep the guide aligned with new SDK changes until that PR is merged -- New SDK changes after the audited head should be mined from `241209e8059ce767fe5bc3500466aa73f53618e3..HEAD`, then folded back into both trackers before related docs edits are made +- New SDK changes after the audited head should be mined from `6c7cd42afffb6d341b7a3b4bf5cc5a9bcd3f98ee..HEAD`, then folded back into both trackers before related docs edits are made ## Working Baseline - Code baseline for analysis: `stream-chat-react` `v13.14.2..master` -- Current audited SDK head: `241209e8059ce767fe5bc3500466aa73f53618e3` (`241209e8`, `2026-03-31`, `fix: use link icon for link-type attachments (#3083)`) -- Future mining starting point: review `stream-chat-react` diff `241209e8059ce767fe5bc3500466aa73f53618e3..HEAD`, then map any confirmed changes back to `v13.14.2` before updating `breaking-changes.md` and this file +- Current audited SDK head: `6c7cd42afffb6d341b7a3b4bf5cc5a9bcd3f98ee` (`6c7cd42a`, `2026-04-03`, `fix(examples): enable async voice recording preview in thread composer (#3092)`) +- Future mining starting point: review `stream-chat-react` diff `6c7cd42afffb6d341b7a3b4bf5cc5a9bcd3f98ee..HEAD`, then map any confirmed changes back to `v13.14.2` before updating `breaking-changes.md` and this file - Docs content repo: `/docs/data/docs` - Docs content branch: `react-chat-v14` - Active migration-guide PR: `docs-content#1080` (`docs/react-v14-migration-guide` -> `react-chat-v14`) @@ -250,12 +250,13 @@ Completed WS5 pages: ## Active Batch: Verification -Objective: merge the open docs PRs, fold the current post-`f06846da` SDK changes back into the public docs, then run docs verification and fix any markdown/build issues that surface from the updated v14 content set. +Objective: fold the current post-`241209e8` SDK changes back into the public docs, then run docs verification and fix any markdown/build issues that surface from the updated v14 content set. Post-snapshot maintenance currently in scope: -- no new post-snapshot docs fallout is currently open from the `f06846da..241209e8` window -- the next docs pass should start from `241209e8..HEAD` +- no new post-snapshot docs fallout is currently open from the `241209e8..6c7cd42a` window after the avatar-overflow follow-up was applied +- the icon/RTL/styling/example commits in the same window were investigated and recorded as ruled out in `breaking-changes.md` +- the next docs pass should start from `6c7cd42a..HEAD` ## Confirmed Docs Issues @@ -406,7 +407,7 @@ Post-snapshot maintenance currently in scope: - Status: resolved - Evidence: - current `AvatarProps` use `imageUrl`, `userName`, `isOnline`, and required `size` - - current channel/group avatar rendering expects `displayMembers` plus optional `overflowCount` + - current channel/group avatar rendering expects `displayMembers` and computes overflow internally - `data/docs/chat-sdk/react/v14/02-ui-components/08-message/08-avatar.md` now documents the current prop names, `ChannelAvatar`, and the helper-based channel display image/title flow - `data/docs/chat-sdk/react/v14/03-ui-cookbook/10-thread_header.md` and `03-ui-cookbook/05-message-input/06-suggestion_list.md` now use the current `Avatar` prop names - `data/docs/chat-sdk/react/v14/03-ui-cookbook/04-message/01-message_ui.md` and `03-ui-cookbook/04-message/06-system_message.md` now use the current `Avatar` prop names too @@ -899,9 +900,21 @@ Post-snapshot maintenance currently in scope: - current `BaseIcon` defaults to a `20x20` viewBox and the renamed icon constants generate different `str-chat__icon--*` classes - `data/docs/chat-sdk/react/v14/02-ui-components/04-channel/02-channel_header.md` still documents `MenuIcon` as defaulting to `IconLayoutAlignLeft` - `data/docs/chat-sdk/react/v14/06-release-guides/01-upgrade-to-v14.md` still uses removed icon names like `IconCrossMedium` in the low-level icon migration example - - the migration guide did not yet call out the public icon rename sweep or the selector drift caused by the renamed icon constants +- the migration guide did not yet call out the public icon rename sweep or the selector drift caused by the renamed icon constants - Expected fix: completed; the header docs, migration guide, and icon examples now use the current icon names and call out the selector drift caused by the renamed icon constants +### 68. v14 avatar docs still imply caller-controlled overflow on `ChannelAvatar` and `GroupAvatar` + +- Status: resolved +- Evidence: + - current `GroupAvatar`, `ChannelAvatar`, and `AvatarStack` no longer expose caller-controlled `overflowCount`; overflow is calculated internally from `displayMembers` or `displayInfo` + - current `getGroupChannelDisplayInfo(channel)` now returns `{ members }` with no computed `overflowCount` + - before this follow-up pass, `data/docs/chat-sdk/react/v14/06-release-guides/01-upgrade-to-v14.md` still said `groupChannelDisplayInfo -> displayMembers, overflowCount, required size` + - before this follow-up pass, `data/docs/chat-sdk/react/v14/06-release-guides/01-upgrade-to-v14.md` still showed `` + - before this follow-up pass, `data/docs/chat-sdk/react/v14/03-ui-cookbook/09-channel_header.md` still passed `overflowCount={groupChannelDisplayInfo?.overflowCount}` + - `data/docs/chat-sdk/react/v14/02-ui-components/08-message/08-avatar.md` still explains `ChannelAvatar` in terms of a one-avatar vs group-avatar split, but does not yet call out the current automatic overflow behavior +- Expected fix: completed; the migration guide, avatar reference page, and channel-header cookbook now describe the current `displayMembers` plus automatic-overflow model and no longer pass caller-supplied `overflowCount` + ## Docs Update Checklist - [x] Freeze the initial breaking-change inventory against audited snapshot `6ea7a78e4184fce6066f7318f9ebd57a5ff1474a` @@ -914,6 +927,7 @@ Post-snapshot maintenance currently in scope: - [x] Fold the post-snapshot dialog/context-menu, `useChannelListContext()`, and reactions-detail changes from `9877da511183c5149959583bc4f11d7aa616f87f..55b1dd6c43f006ac8e7e2ceba1a58d8838bef149` back into the public v14 docs - [x] Fold the post-snapshot stylesheet import-path cleanup from `55b1dd6c43f006ac8e7e2ceba1a58d8838bef149..f06846da4d492c0fb9ca375ee049682e6f9e48ba` back into the trackers and public v14 docs - [x] Fold the post-snapshot reactions and icon-catalog changes from `f06846da4d492c0fb9ca375ee049682e6f9e48ba..241209e8059ce767fe5bc3500466aa73f53618e3` back into the public v14 docs +- [x] Fold the post-snapshot avatar overflow/internalization follow-up from `241209e8059ce767fe5bc3500466aa73f53618e3..6c7cd42afffb6d341b7a3b4bf5cc5a9bcd3f98ee` back into the public v14 docs - [x] Convert `ai-docs/docs-plan.md` from inventory mode into execution workstreams - [x] Draft the v13 to v14 migration guide content - [x] Prepare the v14 release-guide rename and sidebar update in `docs-content#1080` @@ -929,97 +943,97 @@ Post-snapshot maintenance currently in scope: ## Page Tracker -| Status | Page | Reason | -| -------- | -------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| in PR | `data/docs/chat-sdk/react/v14/06-release-guides/01-upgrade-to-v14.md` | v13 to v14 migration guide drafted in `docs-content#1080`; keep aligned with post-snapshot changes such as Search, MessageEditedIndicator, current Giphy/composer behavior, the `ChannelListUI` migration, the latest action-set/error/unread changes, the latest channel-list hook cleanup, the stylesheet import-path cleanup, and the latest reactions/icon follow-up work until merged | -| in PR | `data/docs/_sidebars/[chat-sdk][react][v14-rc].json` | Nav label and migration guide metadata are updated in `docs-content#1080`; merge pending | -| resolved | `data/docs/chat-sdk/react/v14/05-experimental-features/01-message-actions.md` | Now documents `quick-dropdown-toggle`, preserves it in filtered action-set examples, and explains that `markUnread` is only available for foreign messages | -| resolved | `data/docs/chat-sdk/react/v14/03-ui-cookbook/04-message/04-message_actions.md` | Now preserves the default dropdown toggle, documents the own-message `markUnread` restriction, and keeps action-set examples aligned with the current base filter | -| resolved | `data/docs/chat-sdk/react/v14/04-guides/11-blocking-users.md` | Now explains why starting from `defaultMessageActionSet` preserves the current dropdown trigger and default filtering | -| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/08-message/02-message_context.md` | Now documents the current `handleDelete()` failure semantics and local removal for unsent or network-failed messages | -| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/08-message/03-message_bounce_context.md` | Bounce prompt example now treats delete as async and documents the current failed-message delete behavior | -| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/08-message/04-message_hooks.md` | `useDeleteHandler()` and `useMarkUnreadHandler()` examples now match the current async delete flow and foreign-message-only unread behavior | -| resolved | `data/docs/chat-sdk/react/v14/03-ui-cookbook/04-message/01-message_ui.md` | Custom message action examples now wrap `handleDelete()` in async handlers that match the current SDK behavior | -| resolved | `data/docs/chat-sdk/react/v14/04-guides/16-ai-integrations/02-chat-sdk-integration.md` | Removed the dead `MessageErrorIcon` import and replaced it with an app-owned failed-message indicator example | -| resolved | `data/docs/chat-sdk/react/v14/04-guides/05-channel_read_state.md` | Now calls out that the default `Mark as unread` action is limited to foreign messages | -| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/09-message-input/*` | Swept to the `MessageComposer*` naming set, current hooks, and scoped `WithComponents` guidance | -| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/07-message-list/*` | Message-list docs now use `reactionDetailsSort`, remove the deprecated reaction-detail comparator props, and stay aligned with the current notification/composer surfaces | -| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/05-channel-list/*` | Channel-list docs now align with `ChannelListUI`, `ChannelListItemUI`, `WithComponents`, and the current `str-chat__channel-list-inner*` selectors | -| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/05-channel-list/01-channel_list.md` | Search guidance remains current, and the page now documents channel-list customization through `ChannelListUI` / `ChannelListItemUI` with `WithComponents` | -| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/05-channel-list/02-channel_list_context.md` | Search guidance remains current, and the examples now use `ChannelListUI` plus `WithComponents` instead of `ChannelListMessenger` / `List` | -| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/05-channel-list/05-channel_search.md` | Rewritten around stable `Search`, its current prop surface, and `WithComponents` customization | -| resolved | `data/docs/chat-sdk/react/v14/03-ui-cookbook/02-channel-list/02-channel_search.md` | Rewritten to stable Search customization patterns and current `SearchController` guidance | -| resolved | `data/docs/chat-sdk/react/v14/03-ui-cookbook/08-app_menu.md` | Rewritten to a custom `SearchBar` composition example instead of the removed `ChannelSearch AppMenu` prop | -| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/05-channel-list/08-advanced-search.md` | Rewritten as a stable advanced Search guide using `SearchController`, restored filter-builder guidance, and stable `stream-chat-react` imports | -| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/04-channel/01-channel.md` | Now keeps `Channel` focused on current behavior/data props and points SDK UI overrides to `WithComponents` | -| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/04-channel/05-component_context.md` | Now reflects the current override-key surface, including `NotificationList`, `ImagePlaceholder`, `ChannelListUI`, `ContextMenu`, `ContextMenuContent`, and current `WithComponents` guidance | -| resolved | `data/docs/chat-sdk/react/v14/01-basics/02-installation.md` | Now calls out the current `stream-chat` minimum, version-alignment guidance, and the root `dist/css/index.css` import path | -| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/08-message/07-ui-components.md` | Rewritten to the current deleted-message, message-status, edited-indicator, message-text, and bounce-prompt surfaces | -| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/08-message/05-message_ui.md` | Rewritten around the current message UI composition without `FixedHeightMessage` or `MessageOptions` | -| resolved | `data/docs/chat-sdk/react/v14/05-experimental-features/01-message-actions.md` | Rewritten to the stable `MessageActions` model with `messageActionSet`, quick actions, and `ContextMenu` | -| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/08-message/02-message_context.md` | Now reflects the current `reactionDetailsSort`-only reaction-detail customization surface in addition to the current delete behavior | -| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/08-message/01-message.md` | Now reflects the current `Message` prop surface without the removed `sortReactionDetails` comparator | -| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/09-message-input/02-message_input_context.md` | Rewritten to the current `MessageComposerContext` surface and dedicated cooldown helpers | -| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/09-message-input/03-message_input_hooks.md` | Rewritten to the currently exported composer hooks, including `useMessageContentIsEmpty` | -| resolved | `data/docs/chat-sdk/react/v14/03-ui-cookbook/05-message-input/01-input_ui.md` | Rewritten to current composer building blocks, `useCooldownRemaining()`, and the default command-selected layout behavior | -| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/08-message/04-message_hooks.md` | Rewritten without `useEditHandler` and aligned to the current edit flow | -| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/08-message/11-attachment/01-attachment.md` | Rewritten to the current `Attachment` grouping, supported override points, the `Image` / `Media` / `ModalGallery` split, and the inline `Giphy` path | -| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/08-message/10-poll.md` | Rewritten to the current poll override surface and quoted-message guidance | -| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/08-message/12-reactions.md` | Now reflects the current `reactionDetailsSort`, `reactionGroups`, and `reaction_groups`-only `MessageReactions` contract | -| resolved | `data/docs/chat-sdk/react/v14/03-ui-cookbook/04-message/02-reactions.md` | Cookbook now keeps `reactionOptions` customization in `WithComponents` and no longer implies direct `MessageReactions` props | -| resolved | `data/docs/chat-sdk/react/v14/04-guides/05-channel_read_state.md` | Rewritten to the current unread, new-message, `NotificationList`, and scroll-to-latest model | -| resolved | `data/docs/chat-sdk/react/v14/04-guides/13-notifications.md` | Rewritten around `NotificationList`, panel-targeted client notifications, `MessageListMainPanel`, and the direct floating-notification override points | -| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/08-message/08-avatar.md` | Rewritten to current `Avatar` props, `ChannelAvatar`, helper-based channel display image/title guidance, and `WithComponents`-based channel-list avatar customization | -| resolved | `data/docs/chat-sdk/react/v14/04-guides/07-sdk-state-management.md` | Channel-list state example now registers custom row UI through `WithComponents` / `ChannelListItemUI` instead of the removed `ChannelList Preview={...}` path | -| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/05-channel-list/04-channel_preview_ui.md` | Preview-content guidance remains current, and the page now registers custom rows through `WithComponents` / `ChannelListItemUI` | -| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/05-channel-list/06-channel-list-infinite-scroll.md` | `options.limit` guidance remains current, and the styling example now points at `.str-chat__channel-list-inner__main` | -| resolved | `data/docs/chat-sdk/react/v14/03-ui-cookbook/02-channel-list/01-channel_list_preview.md` | Display helpers remain current, and the cookbook now starts from a `ChannelListItemUI` override registered through `WithComponents` | -| resolved | `data/docs/chat-sdk/react/v14/03-ui-cookbook/10-thread_header.md` | Rewritten to current `ThreadHeader` behavior, current `Avatar` props, and the `WithComponents` override path | -| resolved | `data/docs/chat-sdk/react/v14/03-ui-cookbook/05-message-input/06-suggestion_list.md` | Rewritten to `SuggestionList`, current suggestion item contracts, current `Avatar` props, and the `WithComponents` override path | -| resolved | `data/docs/chat-sdk/react/v14/03-ui-cookbook/04-message/01-message_ui.md` | Rewritten to current `WithComponents` registration, `Avatar` props, and reaction wiring | -| resolved | `data/docs/chat-sdk/react/v14/03-ui-cookbook/04-message/06-system_message.md` | Rewritten to current `WithComponents` registration and `Avatar` props | -| resolved | `data/docs/chat-sdk/react/v14/03-ui-cookbook/04-message/04-message_actions.md` | Rewritten to current `MessageActions`, `defaultMessageActionSet`, and `WithComponents` customization | -| resolved | `data/docs/chat-sdk/react/v14/03-ui-cookbook/04-message/05-pin_indicator.md` | Updated to current `WithComponents` registration for `PinIndicator` | -| resolved | `data/docs/chat-sdk/react/v14/03-ui-cookbook/06-attachment/04-giphy_preview.md` | Updated to register `GiphyPreviewMessage` through `WithComponents` and to distinguish ephemeral `/giphy` previews from sent inline giphy attachments | -| resolved | `data/docs/chat-sdk/react/v14/03-ui-cookbook/07-emoji_picker.md` | Updated to register `EmojiPicker` through `WithComponents` | -| resolved | `data/docs/chat-sdk/react/v14/04-guides/11-blocking-users.md` | Updated custom blocking action guidance to the current `MessageActions` model | -| resolved | `data/docs/chat-sdk/react/v14/04-guides/12-message-reminders.md` | Updated reminder override example to use `WithComponents` | -| resolved | `data/docs/chat-sdk/react/v14/04-guides/14-location-sharing.md` | Updated location-sharing override examples to use `WithComponents` | -| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/02-theming/03-component-variables.md` | Added a note clarifying that a few CSS token groups intentionally retain historical `stream-chat-css` names | -| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/11-chat-view.md` | Rewritten to current `ChatView.Selector` and `ThreadAdapter` behavior, including `iconOnly={false}`, `aria-pressed`, and placeholder/blank-state guidance | -| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/06-thread-list/01-thread-list.md` | Updated to current `ChatView.ThreadAdapter` placeholder behavior and the current labeled-selector example | -| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/07-message-list/05-thread.md` | Rewritten to current `Thread` props and `WithComponents`-based thread-surface overrides | -| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/04-channel/02-channel_header.md` | Now points `MenuIcon` at the current `IconSidebar` default and matches the post-Phosphor icon catalog | -| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/16-modal.md` | Rewritten to the `GlobalModal` public surface and `WithComponents` modal override pattern | -| resolved | `data/docs/chat-sdk/react/v14/04-guides/10-dialog-management.md` | Rewritten around current dialog primitives, `GlobalModal`, `DialogManagerProvider closeOnClickOutside`, and the current `ContextMenu`/transition configuration surface | -| resolved | `data/docs/chat-sdk/react/v14/04-guides/15-audio-playback.md` | Updated to the current `FileIcon` prop surface | -| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/09-message-input/01-message_input.md` | Rewritten around the current `MessageComposer` props, scoped `MessageComposerUI` overrides, and v14 composer behavior | -| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/09-message-input/04-input_ui.md` | Rewritten to current `MessageComposerUI` composition, scoped `WithComponents` usage, and the default command-selected layout behavior | -| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/09-message-input/08-attachment-selector.md` | Rewritten to the current selector action contract, `WithComponents` override path, and the default command-selected composer behavior | -| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/09-message-input/05-ui_components.md` | Rewritten to current input building blocks, `LinkPreviewList` props, `VoiceRecordingPreviewSlot`, and the default command-selected layout behavior | -| resolved | `data/docs/chat-sdk/react/v14/03-ui-cookbook/05-message-input/02-link-previews.md` | Rewritten to the current `LinkPreviewList` contract, `displayLinkCount`, and `WithComponents` override path | -| resolved | `data/docs/chat-sdk/react/v14/03-ui-cookbook/05-message-input/03-attachment_previews.md` | Rewritten to the current attachment preview model with `VoiceRecordingPreviewSlot` separated from `AttachmentPreviewList` | -| resolved | `data/docs/chat-sdk/react/v14/03-ui-cookbook/06-attachment/02-image_gallery.md` | Rewritten around the `ModalGallery` override path and the lower-level `Gallery` provider split | -| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/08-message/11-attachment/02-voice-recording.md` | Voice-recording customization example now mounts the custom attachment renderer through `WithComponents` | -| resolved | `data/docs/chat-sdk/react/v14/03-ui-cookbook/06-attachment/01-attachment_actions.md` | Attachment-actions cookbook now uses `WithComponents` for attachment overrides and refreshed imports | -| resolved | `data/docs/chat-sdk/react/v14/03-ui-cookbook/06-attachment/03-geolocation_attachment.md` | Geolocation attachment cookbook now registers the custom attachment renderer through `WithComponents` | -| resolved | `data/docs/chat-sdk/react/v14/03-ui-cookbook/06-attachment/05-payment_attachment.md` | Payment attachment cookbook now registers the custom attachment renderer through `WithComponents` | -| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/01-getting_started.md` | Updated styling examples to current header selectors and the root `dist/css/index.css` import path | -| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/02-theming/01-themingv2.md` | Updated the page to CSS-only import snippets under the root `dist/css/*` entrypoints, including the layout-only examples | -| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/08-message/13-date_separator.md` | Rewritten to the current default separator behavior and custom-separator guidance | -| resolved | `data/docs/chat-sdk/react/v14/03-ui-cookbook/09-channel_header.md` | Rewritten to current custom-header patterns and `TypingIndicatorHeader` usage | -| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/03-chat/01-chat.md` | Rewritten to the current sidebar-state behavior after the temporary RC-only responsive-nav prop was removed, and now reflects the current `str-chat__channel-list` root class | -| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/08-message/09-base-image.md` | Updated to the current `BaseImage` fallback behavior, broader internal usage, `showDownloadButtonOnError` default, and `ImagePlaceholder` override path | -| resolved | `data/docs/chat-sdk/react/v14/04-guides/08-date-time-formatting.md` | Updated to the current time-only `MessageTimestamp` default and the `MessageEditedIndicator`-based edited-time customization path | -| resolved | `data/docs/chat-sdk/react/v14/03-ui-cookbook/03-message-list/02-connection_status.md` | Updated to the current notification-stack model so `ConnectionStatus` is documented alongside `NotificationList` and `MessageListMainPanel` correctly | -| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/12-indicators.md` | Rewritten to the current `TypingIndicator` / `TypingIndicatorHeader` split and current prop contract | -| resolved | `data/docs/chat-sdk/react/v14/03-ui-cookbook/05-message-input/07-typing_indicator.md` | Rewritten to the current custom typing-indicator contract and header typing guidance | -| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/08-message/03-message_bounce_context.md` | Rewritten to the current bounce-prompt contract without removed close props | -| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/09-message-input/07-audio_recorder.md` | Rewritten to current recorder overrides, permission flow, and voice-recording send behavior | -| resolved | `data/docs/chat-sdk/react/v14/04-guides/04-typescript_and_custom_data_types.md` | Warning now reflects the remaining default helpers/components that still rely on `DefaultChannelData` fields | -| resolved | `data/docs/chat-sdk/react/v14/04-guides/16-ai-integrations/02-chat-sdk-integration.md` | Custom message examples now read SDK state from `useMessageContext()` instead of assuming injected `MessageUIComponentProps` | -| resolved | `data/docs/chat-sdk/react/v14/07-troubleshooting/01-troubleshooting.md` | Updated Giphy guidance to the current `giphyVersion` default and clarified that the same setting affects preview thumbnails as well | -| resolved | `data/docs/chat-sdk/react/v14` (multiple pages) | Repo-wide sweep is complete; remaining `Channel X={...}` examples are current supported props such as `EmptyPlaceholder` | +| Status | Page | Reason | +| -------- | -------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| in PR | `data/docs/chat-sdk/react/v14/06-release-guides/01-upgrade-to-v14.md` | v13 to v14 migration guide drafted in `docs-content#1080`; keep aligned with post-snapshot changes such as Search, MessageEditedIndicator, current Giphy/composer behavior, the `ChannelListUI` migration, the latest action-set/error/unread changes, the latest channel-list hook cleanup, the stylesheet import-path cleanup, the latest reactions/icon follow-up work, and the avatar-overflow follow-up from `49d576e4` until merged | +| in PR | `data/docs/_sidebars/[chat-sdk][react][v14-rc].json` | Nav label and migration guide metadata are updated in `docs-content#1080`; merge pending | +| resolved | `data/docs/chat-sdk/react/v14/05-experimental-features/01-message-actions.md` | Now documents `quick-dropdown-toggle`, preserves it in filtered action-set examples, and explains that `markUnread` is only available for foreign messages | +| resolved | `data/docs/chat-sdk/react/v14/03-ui-cookbook/04-message/04-message_actions.md` | Now preserves the default dropdown toggle, documents the own-message `markUnread` restriction, and keeps action-set examples aligned with the current base filter | +| resolved | `data/docs/chat-sdk/react/v14/04-guides/11-blocking-users.md` | Now explains why starting from `defaultMessageActionSet` preserves the current dropdown trigger and default filtering | +| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/08-message/02-message_context.md` | Now documents the current `handleDelete()` failure semantics and local removal for unsent or network-failed messages | +| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/08-message/03-message_bounce_context.md` | Bounce prompt example now treats delete as async and documents the current failed-message delete behavior | +| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/08-message/04-message_hooks.md` | `useDeleteHandler()` and `useMarkUnreadHandler()` examples now match the current async delete flow and foreign-message-only unread behavior | +| resolved | `data/docs/chat-sdk/react/v14/03-ui-cookbook/04-message/01-message_ui.md` | Custom message action examples now wrap `handleDelete()` in async handlers that match the current SDK behavior | +| resolved | `data/docs/chat-sdk/react/v14/04-guides/16-ai-integrations/02-chat-sdk-integration.md` | Removed the dead `MessageErrorIcon` import and replaced it with an app-owned failed-message indicator example | +| resolved | `data/docs/chat-sdk/react/v14/04-guides/05-channel_read_state.md` | Now calls out that the default `Mark as unread` action is limited to foreign messages | +| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/09-message-input/*` | Swept to the `MessageComposer*` naming set, current hooks, and scoped `WithComponents` guidance | +| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/07-message-list/*` | Message-list docs now use `reactionDetailsSort`, remove the deprecated reaction-detail comparator props, and stay aligned with the current notification/composer surfaces | +| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/05-channel-list/*` | Channel-list docs now align with `ChannelListUI`, `ChannelListItemUI`, `WithComponents`, and the current `str-chat__channel-list-inner*` selectors | +| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/05-channel-list/01-channel_list.md` | Search guidance remains current, and the page now documents channel-list customization through `ChannelListUI` / `ChannelListItemUI` with `WithComponents` | +| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/05-channel-list/02-channel_list_context.md` | Search guidance remains current, and the examples now use `ChannelListUI` plus `WithComponents` instead of `ChannelListMessenger` / `List` | +| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/05-channel-list/05-channel_search.md` | Rewritten around stable `Search`, its current prop surface, and `WithComponents` customization | +| resolved | `data/docs/chat-sdk/react/v14/03-ui-cookbook/02-channel-list/02-channel_search.md` | Rewritten to stable Search customization patterns and current `SearchController` guidance | +| resolved | `data/docs/chat-sdk/react/v14/03-ui-cookbook/08-app_menu.md` | Rewritten to a custom `SearchBar` composition example instead of the removed `ChannelSearch AppMenu` prop | +| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/05-channel-list/08-advanced-search.md` | Rewritten as a stable advanced Search guide using `SearchController`, restored filter-builder guidance, and stable `stream-chat-react` imports | +| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/04-channel/01-channel.md` | Now keeps `Channel` focused on current behavior/data props and points SDK UI overrides to `WithComponents` | +| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/04-channel/05-component_context.md` | Now reflects the current override-key surface, including `NotificationList`, `ImagePlaceholder`, `ChannelListUI`, `ContextMenu`, `ContextMenuContent`, and current `WithComponents` guidance | +| resolved | `data/docs/chat-sdk/react/v14/01-basics/02-installation.md` | Now calls out the current `stream-chat` minimum, version-alignment guidance, and the root `dist/css/index.css` import path | +| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/08-message/07-ui-components.md` | Rewritten to the current deleted-message, message-status, edited-indicator, message-text, and bounce-prompt surfaces | +| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/08-message/05-message_ui.md` | Rewritten around the current message UI composition without `FixedHeightMessage` or `MessageOptions` | +| resolved | `data/docs/chat-sdk/react/v14/05-experimental-features/01-message-actions.md` | Rewritten to the stable `MessageActions` model with `messageActionSet`, quick actions, and `ContextMenu` | +| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/08-message/02-message_context.md` | Now reflects the current `reactionDetailsSort`-only reaction-detail customization surface in addition to the current delete behavior | +| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/08-message/01-message.md` | Now reflects the current `Message` prop surface without the removed `sortReactionDetails` comparator | +| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/09-message-input/02-message_input_context.md` | Rewritten to the current `MessageComposerContext` surface and dedicated cooldown helpers | +| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/09-message-input/03-message_input_hooks.md` | Rewritten to the currently exported composer hooks, including `useMessageContentIsEmpty` | +| resolved | `data/docs/chat-sdk/react/v14/03-ui-cookbook/05-message-input/01-input_ui.md` | Rewritten to current composer building blocks, `useCooldownRemaining()`, and the default command-selected layout behavior | +| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/08-message/04-message_hooks.md` | Rewritten without `useEditHandler` and aligned to the current edit flow | +| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/08-message/11-attachment/01-attachment.md` | Rewritten to the current `Attachment` grouping, supported override points, the `Image` / `Media` / `ModalGallery` split, and the inline `Giphy` path | +| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/08-message/10-poll.md` | Rewritten to the current poll override surface and quoted-message guidance | +| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/08-message/12-reactions.md` | Now reflects the current `reactionDetailsSort`, `reactionGroups`, and `reaction_groups`-only `MessageReactions` contract | +| resolved | `data/docs/chat-sdk/react/v14/03-ui-cookbook/04-message/02-reactions.md` | Cookbook now keeps `reactionOptions` customization in `WithComponents` and no longer implies direct `MessageReactions` props | +| resolved | `data/docs/chat-sdk/react/v14/04-guides/05-channel_read_state.md` | Rewritten to the current unread, new-message, `NotificationList`, and scroll-to-latest model | +| resolved | `data/docs/chat-sdk/react/v14/04-guides/13-notifications.md` | Rewritten around `NotificationList`, panel-targeted client notifications, `MessageListMainPanel`, and the direct floating-notification override points | +| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/08-message/08-avatar.md` | Now explains the current `displayMembers` plus automatic-overflow model and no longer implies caller-controlled overflow handling | +| resolved | `data/docs/chat-sdk/react/v14/04-guides/07-sdk-state-management.md` | Channel-list state example now registers custom row UI through `WithComponents` / `ChannelListItemUI` instead of the removed `ChannelList Preview={...}` path | +| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/05-channel-list/04-channel_preview_ui.md` | Preview-content guidance remains current, and the page now registers custom rows through `WithComponents` / `ChannelListItemUI` | +| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/05-channel-list/06-channel-list-infinite-scroll.md` | `options.limit` guidance remains current, and the styling example now points at `.str-chat__channel-list-inner__main` | +| resolved | `data/docs/chat-sdk/react/v14/03-ui-cookbook/02-channel-list/01-channel_list_preview.md` | Display helpers remain current, and the cookbook now starts from a `ChannelListItemUI` override registered through `WithComponents` | +| resolved | `data/docs/chat-sdk/react/v14/03-ui-cookbook/10-thread_header.md` | Rewritten to current `ThreadHeader` behavior, current `Avatar` props, and the `WithComponents` override path | +| resolved | `data/docs/chat-sdk/react/v14/03-ui-cookbook/05-message-input/06-suggestion_list.md` | Rewritten to `SuggestionList`, current suggestion item contracts, current `Avatar` props, and the `WithComponents` override path | +| resolved | `data/docs/chat-sdk/react/v14/03-ui-cookbook/04-message/01-message_ui.md` | Rewritten to current `WithComponents` registration, `Avatar` props, and reaction wiring | +| resolved | `data/docs/chat-sdk/react/v14/03-ui-cookbook/04-message/06-system_message.md` | Rewritten to current `WithComponents` registration and `Avatar` props | +| resolved | `data/docs/chat-sdk/react/v14/03-ui-cookbook/04-message/04-message_actions.md` | Rewritten to current `MessageActions`, `defaultMessageActionSet`, and `WithComponents` customization | +| resolved | `data/docs/chat-sdk/react/v14/03-ui-cookbook/04-message/05-pin_indicator.md` | Updated to current `WithComponents` registration for `PinIndicator` | +| resolved | `data/docs/chat-sdk/react/v14/03-ui-cookbook/06-attachment/04-giphy_preview.md` | Updated to register `GiphyPreviewMessage` through `WithComponents` and to distinguish ephemeral `/giphy` previews from sent inline giphy attachments | +| resolved | `data/docs/chat-sdk/react/v14/03-ui-cookbook/07-emoji_picker.md` | Updated to register `EmojiPicker` through `WithComponents` | +| resolved | `data/docs/chat-sdk/react/v14/04-guides/11-blocking-users.md` | Updated custom blocking action guidance to the current `MessageActions` model | +| resolved | `data/docs/chat-sdk/react/v14/04-guides/12-message-reminders.md` | Updated reminder override example to use `WithComponents` | +| resolved | `data/docs/chat-sdk/react/v14/04-guides/14-location-sharing.md` | Updated location-sharing override examples to use `WithComponents` | +| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/02-theming/03-component-variables.md` | Added a note clarifying that a few CSS token groups intentionally retain historical `stream-chat-css` names | +| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/11-chat-view.md` | Rewritten to current `ChatView.Selector` and `ThreadAdapter` behavior, including `iconOnly={false}`, `aria-pressed`, and placeholder/blank-state guidance | +| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/06-thread-list/01-thread-list.md` | Updated to current `ChatView.ThreadAdapter` placeholder behavior and the current labeled-selector example | +| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/07-message-list/05-thread.md` | Rewritten to current `Thread` props and `WithComponents`-based thread-surface overrides | +| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/04-channel/02-channel_header.md` | Now points `MenuIcon` at the current `IconSidebar` default and matches the post-Phosphor icon catalog | +| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/16-modal.md` | Rewritten to the `GlobalModal` public surface and `WithComponents` modal override pattern | +| resolved | `data/docs/chat-sdk/react/v14/04-guides/10-dialog-management.md` | Rewritten around current dialog primitives, `GlobalModal`, `DialogManagerProvider closeOnClickOutside`, and the current `ContextMenu`/transition configuration surface | +| resolved | `data/docs/chat-sdk/react/v14/04-guides/15-audio-playback.md` | Updated to the current `FileIcon` prop surface | +| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/09-message-input/01-message_input.md` | Rewritten around the current `MessageComposer` props, scoped `MessageComposerUI` overrides, and v14 composer behavior | +| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/09-message-input/04-input_ui.md` | Rewritten to current `MessageComposerUI` composition, scoped `WithComponents` usage, and the default command-selected layout behavior | +| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/09-message-input/08-attachment-selector.md` | Rewritten to the current selector action contract, `WithComponents` override path, and the default command-selected composer behavior | +| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/09-message-input/05-ui_components.md` | Rewritten to current input building blocks, `LinkPreviewList` props, `VoiceRecordingPreviewSlot`, and the default command-selected layout behavior | +| resolved | `data/docs/chat-sdk/react/v14/03-ui-cookbook/05-message-input/02-link-previews.md` | Rewritten to the current `LinkPreviewList` contract, `displayLinkCount`, and `WithComponents` override path | +| resolved | `data/docs/chat-sdk/react/v14/03-ui-cookbook/05-message-input/03-attachment_previews.md` | Rewritten to the current attachment preview model with `VoiceRecordingPreviewSlot` separated from `AttachmentPreviewList` | +| resolved | `data/docs/chat-sdk/react/v14/03-ui-cookbook/06-attachment/02-image_gallery.md` | Rewritten around the `ModalGallery` override path and the lower-level `Gallery` provider split | +| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/08-message/11-attachment/02-voice-recording.md` | Voice-recording customization example now mounts the custom attachment renderer through `WithComponents` | +| resolved | `data/docs/chat-sdk/react/v14/03-ui-cookbook/06-attachment/01-attachment_actions.md` | Attachment-actions cookbook now uses `WithComponents` for attachment overrides and refreshed imports | +| resolved | `data/docs/chat-sdk/react/v14/03-ui-cookbook/06-attachment/03-geolocation_attachment.md` | Geolocation attachment cookbook now registers the custom attachment renderer through `WithComponents` | +| resolved | `data/docs/chat-sdk/react/v14/03-ui-cookbook/06-attachment/05-payment_attachment.md` | Payment attachment cookbook now registers the custom attachment renderer through `WithComponents` | +| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/01-getting_started.md` | Updated styling examples to current header selectors and the root `dist/css/index.css` import path | +| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/02-theming/01-themingv2.md` | Updated the page to CSS-only import snippets under the root `dist/css/*` entrypoints, including the layout-only examples | +| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/08-message/13-date_separator.md` | Rewritten to the current default separator behavior and custom-separator guidance | +| resolved | `data/docs/chat-sdk/react/v14/03-ui-cookbook/09-channel_header.md` | The custom header example now relies on `displayMembers` only and lets `ChannelAvatar` compute overflow automatically | +| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/03-chat/01-chat.md` | Rewritten to the current sidebar-state behavior after the temporary RC-only responsive-nav prop was removed, and now reflects the current `str-chat__channel-list` root class | +| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/08-message/09-base-image.md` | Updated to the current `BaseImage` fallback behavior, broader internal usage, `showDownloadButtonOnError` default, and `ImagePlaceholder` override path | +| resolved | `data/docs/chat-sdk/react/v14/04-guides/08-date-time-formatting.md` | Updated to the current time-only `MessageTimestamp` default and the `MessageEditedIndicator`-based edited-time customization path | +| resolved | `data/docs/chat-sdk/react/v14/03-ui-cookbook/03-message-list/02-connection_status.md` | Updated to the current notification-stack model so `ConnectionStatus` is documented alongside `NotificationList` and `MessageListMainPanel` correctly | +| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/12-indicators.md` | Rewritten to the current `TypingIndicator` / `TypingIndicatorHeader` split and current prop contract | +| resolved | `data/docs/chat-sdk/react/v14/03-ui-cookbook/05-message-input/07-typing_indicator.md` | Rewritten to the current custom typing-indicator contract and header typing guidance | +| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/08-message/03-message_bounce_context.md` | Rewritten to the current bounce-prompt contract without removed close props | +| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/09-message-input/07-audio_recorder.md` | Rewritten to current recorder overrides, permission flow, and voice-recording send behavior | +| resolved | `data/docs/chat-sdk/react/v14/04-guides/04-typescript_and_custom_data_types.md` | Warning now reflects the remaining default helpers/components that still rely on `DefaultChannelData` fields | +| resolved | `data/docs/chat-sdk/react/v14/04-guides/16-ai-integrations/02-chat-sdk-integration.md` | Custom message examples now read SDK state from `useMessageContext()` instead of assuming injected `MessageUIComponentProps` | +| resolved | `data/docs/chat-sdk/react/v14/07-troubleshooting/01-troubleshooting.md` | Updated Giphy guidance to the current `giphyVersion` default and clarified that the same setting affects preview thumbnails as well | +| resolved | `data/docs/chat-sdk/react/v14` (multiple pages) | Repo-wide sweep is complete; remaining `Channel X={...}` examples are current supported props such as `EmptyPlaceholder` | ## Breaking Change Workflow From b2d505a5da8fe2fafbde3a2d36744f2f9a457a51 Mon Sep 17 00:00:00 2001 From: Oliver Lazoroski Date: Mon, 6 Apr 2026 12:14:15 +0200 Subject: [PATCH 2/2] docs: trim non-v13 react v14 tracker items --- ai-docs/breaking-changes.md | 37 +++++-------------------------------- ai-docs/docs-plan.md | 13 ++++++------- 2 files changed, 11 insertions(+), 39 deletions(-) diff --git a/ai-docs/breaking-changes.md b/ai-docs/breaking-changes.md index 9bc06884c..182bce721 100644 --- a/ai-docs/breaking-changes.md +++ b/ai-docs/breaking-changes.md @@ -636,8 +636,6 @@ Only confirmed items should move from this file into the migration guide. - code using `useChannelPreviewInfo()` can no longer treat `groupChannelDisplayInfo == null` as the signal for a non-group channel - code using `useChannelPreviewInfo().displayTitle` can now receive synthesized group/direct-message titles where v13 helper code often returned `undefined` - if you switched to the current `stream-chat` core helper `channel.getDisplayImage()`, note that it no longer falls back to the other DM member's image the way the old React helper path effectively did - - custom `GroupAvatar`, `ChannelAvatar`, and `AvatarStack` wrappers can no longer control overflow badges with an `overflowCount` prop; overflow is now calculated internally from the provided members/items - - custom tests or wrappers that depended on `ChannelAvatar` conditionally rendering a plain `Avatar` instead of `GroupAvatar` need to be re-baselined against the current always-`GroupAvatar` component tree - Old API: - `v13.14.2:src/components/Avatar/Avatar.tsx:8` `AvatarProps` exposed `image`, `name`, `onClick`, `onMouseOver`, and `user` - `v13.14.2:src/components/Avatar/ChannelAvatar.tsx:6` `ChannelAvatarProps = Partial & AvatarProps` @@ -650,9 +648,8 @@ Only confirmed items should move from this file into the migration guide. - New API: - `src/components/Avatar/Avatar.tsx:10` `AvatarProps` now expose `imageUrl`, `userName`, `isOnline`, and required `size` - `src/components/Avatar/ChannelAvatar.tsx:6` `ChannelAvatarProps` are now `Partial> & { size: GroupAvatarProps['size'] | AvatarProps['size'] }` - - `src/components/Avatar/GroupAvatar.tsx:12` `GroupAvatarProps` now expose `displayMembers`, `size`, and `isOnline`, with no public `overflowCount` - - `src/components/Avatar/AvatarStack.tsx:9` through `:18` now expose `capLimit?: number` and calculate overflow internally instead of accepting a caller-provided `overflowCount` - - `src/components/ChannelListItem/utils.tsx:139` through `:149` now return `{ members }` from `getGroupChannelDisplayInfo(channel)`, with no computed `overflowCount` + - `src/components/Avatar/GroupAvatar.tsx:12` `GroupAvatarProps` now expose `displayMembers`, `size`, and `isOnline` + - `src/components/ChannelListItem/utils.tsx:139` through `:149` now return `{ members }` from `getGroupChannelDisplayInfo(channel)` - `src/components/ChannelListItem/utils.tsx:125` exports `getChannelDisplayImage` - `src/components/ChannelListItem/hooks/index.ts:1` exports `useChannelDisplayName` - `src/components/ChannelListItem/hooks/useChannelDisplayName.ts:8` through `:10` synthesize DM labels and group titles from up to two member names @@ -661,20 +658,16 @@ Only confirmed items should move from this file into the migration guide. - Replacement: - rename avatar props from `image` / `name` to `imageUrl` / `userName` - supply the new required `size` prop when rendering SDK avatars directly - - migrate group avatar data from `groupChannelDisplayInfo` to `displayMembers`; let `GroupAvatar`, `ChannelAvatar`, and `AvatarStack` compute overflow badges automatically + - migrate group avatar data from `groupChannelDisplayInfo` to `displayMembers` - replace `getDisplayImage` with `getChannelDisplayImage` - replace `getDisplayTitle` with `useChannelDisplayName()` or `useChannelPreviewInfo()`, depending on whether the caller is already inside React - update any `useChannelPreviewInfo()` checks that previously depended on `groupChannelDisplayInfo` being `null` or `undefined` - if you need the old DM-image fallback in custom preview code, prefer `getChannelDisplayImage(channel)` over `channel.getDisplayImage()` - Evidence: - - current `ChannelAvatar` always renders through `GroupAvatar`, even for one-member/empty cases - - current `GroupAvatar` renders a `+N` badge by slicing `displayMembers` internally, not from a caller-provided prop - - current `AvatarStack` renders a `+N` badge from `capLimit` and `displayInfo.length`, not from a caller-provided prop - current package exports no `getDisplayTitle` or `getDisplayImage` - current `useChannelPreviewInfo()` normalizes empty/non-group state to `{ members: [], overflowCount: undefined }` - current `useChannelDisplayName()` adds synthesized DM/group title behavior that did not exist in the old helper pair - current `ChannelListItem` tests assert that `channel.getDisplayImage()` no longer falls back to member images, while `getChannelDisplayImage()` preserves the UI-oriented fallback - - commit `49d576e4 chore: adjustmens to Avatar, GroupAvatar and ChannelAvatar (#3087)` removed manual `overflowCount` props and moved overflow handling fully into the current avatar components - Docs impact: - migration guide - `docs/data/docs/chat-sdk/react/v14/02-ui-components/08-message/08-avatar.md` @@ -816,8 +809,6 @@ Only confirmed items should move from this file into the migration guide. - User impact: - imports using the removed helper utilities or standalone status/input icons no longer compile - low-level customization patterns built on those exports need to move to the new `Icons` set, newer helper names, or higher-level components - - imports using the older pre-Phosphor icon constant names no longer compile - - custom CSS and snapshots that targeted icon-specific auto classes can break after the icon-catalog refresh - Confirmed removed exports: - `ActionsIcon` - `CloseIcon` @@ -835,20 +826,6 @@ Only confirmed items should move from this file into the migration guide. - `ThreadIcon` - `MessageErrorIcon` - `attachmentTypeIconMap` -- Confirmed renamed exports: - - `IconTrashBin` -> `IconDelete` - - `IconPaperPlane` -> `IconSend` - - `IconCrossMedium` -> `IconXmark` - - `IconMicrophone` -> `IconVoice` - - `IconBookmark` -> `IconSave` - - `IconBubbles` -> `IconMessageBubbles` - - `IconBubble2ChatMessage` -> `IconMessageBubble` - - `IconBubbleText6ChatMessage` -> `IconThread` - - `IconLoadingCircle` -> `IconLoading` - - `IconPlaySolid` -> `IconPlayFill` - - `IconPause` -> `IconPauseFill` - - `IconLayoutAlignLeft` -> `IconSidebar` - - `IconThunder` -> `IconBolt` - Old API evidence: - `v13.14.2:src/components/Message/icons.tsx:7` exported `ActionsIcon` - `v13.14.2:src/components/MessageInput/icons.tsx:67` exported `CloseIcon` @@ -861,25 +838,21 @@ Only confirmed items should move from this file into the migration guide. - `v13.14.2:src/components/Message/icons.tsx:77` and `:92` exported `MessageSentIcon` and `MessageDeliveredIcon` - `v13.14.2:src/components/Message/icons.tsx:108` exported `MessageErrorIcon` - `v13.14.2:src/components/Threads/ThreadList/ThreadListItemUI.tsx:25` exported `attachmentTypeIconMap` - - `f06846da:src/components/Icons/icons.tsx` still exported the older icon constant names such as `IconCrossMedium`, `IconPaperPlane`, `IconLayoutAlignLeft`, and `IconThunder` - New API evidence: - `src/components/Message/utils.tsx:431` exports `countEmojis` - `src/components/Message/utils.tsx:436` exports `messageTextHasEmojisOnly` - `src/components/index.ts:21` exports the shared `Icons` set - - `src/components/Icons/icons.tsx:408`, `:577`, `:626`, `:651`, `:831`, and `:849` now export `IconXmark`, `IconSidebar`, `IconVoice`, `IconSend`, `IconBolt`, and `IconDelete` - `src/components/Message/MessageStatus.tsx:122` and `:138` render `IconCheckmark1Small` and `IconDoubleCheckmark1Small` - `src/components/Threads/ThreadList/ThreadListItemUI.tsx:14` now builds thread previews around `SummarizedMessagePreview` - Replacement: - move emoji-only checks to `countEmojis()` / `messageTextHasEmojisOnly()` - stop relying on `showMessageActionsBox()` / `shouldRenderMessageActions()` and instead customize the new `MessageActions` action-set flow - replace direct icon imports with the public `Icons` components or with higher-level components like `MessageStatus`, `SendButton`, `MessageActions`, and thread preview components - - rename direct imports that still use the pre-Phosphor icon names - if you used `attachmentTypeIconMap`, inline your own map or switch to the new thread preview components - Evidence: - current `MessageComposer/index.ts` and `Message/index.ts` still re-export their `icons.tsx` files, but the removed icon symbols are no longer present there - current `MessageStatus` and thread-list UIs rely on the shared icon library and new summary components instead of the old standalone exports - - commit `30c1beeae feat(Icons): migrate SDK icons to Phosphor icon set (#3075)` renamed the remaining public icon constants and removed the unused icon catalog entries - - commit `9472f7b35 fix(Icons): sync icon catalog with refreshed Line SVGs (#3080)` completed the `IconLayoutAlignLeft` -> `IconSidebar` and `IconThunder` -> `IconBolt` rename sweep + - later icon-catalog renames such as `IconCrossMedium -> IconXmark` and `IconLayoutAlignLeft -> IconSidebar` are excluded from this bucket because they were not part of the `v13.14.2` public surface - Docs impact: - migration guide - `docs/data/docs/chat-sdk/react/v14/02-ui-components/08-message/07-ui-components.md` @@ -2065,7 +2038,7 @@ Only confirmed items should move from this file into the migration guide. - audio/player, scrolling, and layout polish (`7914e516`, `91eba1b4`, `8d25ead3`, `55dd2e81`, `fdf0e155`, `221aa0d4`): investigated; these commits refine playback reset behavior, initial bottom-pinning, mobile-nav click detection, message-list width, reactions alignment, and voice-recording attachment layout, but they do not remove or rename a documented public API beyond the separately tracked `useChannelListContext()` signature cleanup. - type-safety and stale-prop cleanup in tests (`277bc417`): investigated; this commit removes stale props from test fixtures and tightens mock typing, but it does not change the current public runtime API beyond what was already documented in earlier migration buckets. - link-type attachment preview icon swap (`241209e8`): investigated; current summarized-preview and latest-message preview UIs now use the shared link icon for link attachments, but this is a visual/current-behavior adjustment rather than a removed or renamed public API. -- avatar overflow/internalization follow-up (`49d576e4`): tracked under `BC-018`, not as a separate bucket; current `GroupAvatar`, `ChannelAvatar`, and `AvatarStack` removed caller-controlled `overflowCount` handling and now calculate overflow internally from members/items. +- avatar overflow/internalization follow-up (`49d576e4`): investigated; `overflowCount` was introduced during the v14 redesign cycle and was not part of the v13 public surface, so it should not appear in v13-to-v14 migration guidance. Keep it as current-v14 docs maintenance only. - icon catalog, RTL, dark-mode, and thread-voice-recording follow-up (`a4b1c2662`): investigated; current icon renames such as `IconCrossSmall -> IconXmarkSmall`, `IconExclamationTriangle -> IconExclamationTriangleFill`, and `IconEyeOpen -> IconEyeFill` are not part of the v13 public surface, and the RTL/dark-mode/thread voice-recording changes are current-behavior polish rather than a new migration bucket. - styling cleanup (`3bbf121ff`): investigated; broad CSS cleanup and internal selector polish, but no new removed or renamed public API beyond the avatar/channel-list/theming buckets already tracked. - example-only follow-ups (`623989574`, `2f060ae89`, `6c7cd42af`): investigated; these only update examples and docs scaffolding and do not add a new v13-to-v14 migration item. diff --git a/ai-docs/docs-plan.md b/ai-docs/docs-plan.md index 66bc94181..d5ca446fb 100644 --- a/ai-docs/docs-plan.md +++ b/ai-docs/docs-plan.md @@ -896,24 +896,23 @@ Post-snapshot maintenance currently in scope: - Status: resolved - Evidence: - - current icon exports use names like `IconXmark`, `IconSend`, `IconDelete`, `IconSidebar`, and `IconBolt` - - current `BaseIcon` defaults to a `20x20` viewBox and the renamed icon constants generate different `str-chat__icon--*` classes - - `data/docs/chat-sdk/react/v14/02-ui-components/04-channel/02-channel_header.md` still documents `MenuIcon` as defaulting to `IconLayoutAlignLeft` - - `data/docs/chat-sdk/react/v14/06-release-guides/01-upgrade-to-v14.md` still uses removed icon names like `IconCrossMedium` in the low-level icon migration example -- the migration guide did not yet call out the public icon rename sweep or the selector drift caused by the renamed icon constants -- Expected fix: completed; the header docs, migration guide, and icon examples now use the current icon names and call out the selector drift caused by the renamed icon constants + - names like `IconLayoutAlignLeft` and `IconCrossMedium` did not exist in `v13.14.2`, so they should not appear in v13-to-v14 migration guidance + - `data/docs/chat-sdk/react/v14/02-ui-components/04-channel/02-channel_header.md` still documented `MenuIcon` as defaulting to `IconLayoutAlignLeft` + - `data/docs/chat-sdk/react/v14/06-release-guides/01-upgrade-to-v14.md` still used removed icon names like `IconCrossMedium` in the low-level icon migration example +- Expected fix: completed; the header docs and icon examples now use current icon names, and the migration guide no longer treats the later icon-catalog rename sweep as v13-to-v14 migration content ### 68. v14 avatar docs still imply caller-controlled overflow on `ChannelAvatar` and `GroupAvatar` - Status: resolved - Evidence: + - `overflowCount` was not part of the `v13.14.2` public avatar surface, so it should not be presented as a v13-to-v14 migration target - current `GroupAvatar`, `ChannelAvatar`, and `AvatarStack` no longer expose caller-controlled `overflowCount`; overflow is calculated internally from `displayMembers` or `displayInfo` - current `getGroupChannelDisplayInfo(channel)` now returns `{ members }` with no computed `overflowCount` - before this follow-up pass, `data/docs/chat-sdk/react/v14/06-release-guides/01-upgrade-to-v14.md` still said `groupChannelDisplayInfo -> displayMembers, overflowCount, required size` - before this follow-up pass, `data/docs/chat-sdk/react/v14/06-release-guides/01-upgrade-to-v14.md` still showed `` - before this follow-up pass, `data/docs/chat-sdk/react/v14/03-ui-cookbook/09-channel_header.md` still passed `overflowCount={groupChannelDisplayInfo?.overflowCount}` - `data/docs/chat-sdk/react/v14/02-ui-components/08-message/08-avatar.md` still explains `ChannelAvatar` in terms of a one-avatar vs group-avatar split, but does not yet call out the current automatic overflow behavior -- Expected fix: completed; the migration guide, avatar reference page, and channel-header cookbook now describe the current `displayMembers` plus automatic-overflow model and no longer pass caller-supplied `overflowCount` +- Expected fix: completed; the migration guide, avatar reference page, and channel-header cookbook now describe the current `displayMembers` plus automatic-overflow model and no longer present `overflowCount` as a v13-to-v14 migration concern ## Docs Update Checklist