Skip to content

update migration docs with latest changes#2680

Draft
renefloor wants to merge 1 commit into
v10.0.0from
docs/update-migration-docs
Draft

update migration docs with latest changes#2680
renefloor wants to merge 1 commit into
v10.0.0from
docs/update-migration-docs

Conversation

@renefloor
Copy link
Copy Markdown
Contributor

@renefloor renefloor commented May 21, 2026

Submit a pull request

CLA

  • I have signed the Stream CLA (required).
  • The code changes follow best practices
  • Code changes are tested (add some information if not applicable)

Description of the pull request

This updates the migration docs with missing changes.
It also formats the tables so it's easier to find mistakes.

Summary by CodeRabbit

  • Documentation
    • Comprehensive migration guides updated for the Stream Chat Flutter SDK redesign, covering component APIs, theming changes, removals, and renames across message composer, message list, widgets, attachments, polls, headers, icons, and media viewer components.
    • Improved guide formatting and clarity with expanded tables and checklist items to assist migration path understanding.

Review Change Stack

@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai Bot commented May 21, 2026

Important

Review skipped

Draft detected.

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

⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: d7564dac-bf0e-42ec-af1d-479c35a5bf7e

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

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch docs/update-migration-docs

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

❤️ Share

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

Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 3

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (2)
migrations/redesign/message_composer.md (1)

421-422: ⚠️ Potential issue | 🟠 Major | ⚡ Quick win

Fix slowModeOnLabel usage in migration snippet (missing cooldownTimeOut).

In migrations/redesign/message_composer.md (lines 421-422), the example uses translations.slowModeOnLabel without the required int cooldownTimeOut. The SDK defines slowModeOnLabel(int cooldownTimeOut), so copy-pasting this will fail.

Suggested doc fix
-      SlowModePlaceholder() => translations.slowModeOnLabel,
+      SlowModePlaceholder(:final cooldownTimeOut) =>
+        translations.slowModeOnLabel(cooldownTimeOut),
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@migrations/redesign/message_composer.md` around lines 421 - 422, The
migration snippet uses translations.slowModeOnLabel without the required integer
argument; update the example so SlowModePlaceholder calls
translations.slowModeOnLabel with a concrete int (e.g.,
translations.slowModeOnLabel(30)) or a named variable such as cooldownTimeOut,
ensuring the signature slowModeOnLabel(int cooldownTimeOut) is satisfied in the
example in message_composer.md where SlowModePlaceholder is shown.
migrations/redesign/message_actions.md (1)

236-265: ⚠️ Potential issue | 🟠 Major | ⚡ Quick win

Replace stale StreamMessageReactionsModal examples after declaring it deleted.

This section says the class is deleted, but the “After” snippet still constructs StreamMessageReactionsModal, and Line 480 still lists it as a return-value source. That makes the migration path self-contradictory and likely leads to compile errors for readers following it.

Proposed doc fix
-### StreamMessageReactionsModal
+### StreamMessageReactionsModal → ReactionDetailSheet

@@
-**After:**
+**After:**
 ```dart
-final action = await showStreamDialog<MessageAction>(
-  context: context,
-  builder: (_) => StreamMessageReactionsModal(
-    message: message,
-    messageWidget: messageWidget,
-  ),
-);
+final action = await ReactionDetailSheet.show(
+  context: context,
+  message: message,
+);

 if (action is SelectReaction) {
   _addReaction(action.reaction);
 }

@@
-- Returns Future<T?> — the value passed to Navigator.pop inside the dialog, which is how StreamMessageActionsModal, StreamMessageReactionsModal, and ModeratedMessageActionsModal deliver the selected action back to the caller
+- Returns Future<T?> — the value passed to Navigator.pop inside the dialog, which is how StreamMessageActionsModal and ModeratedMessageActionsModal deliver the selected action back to the caller

</details>




Also applies to: 480-480

<details>
<summary>🤖 Prompt for AI Agents</summary>

Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In @migrations/redesign/message_actions.md around lines 236 - 265, Update the
migration docs to stop referencing the deleted StreamMessageReactionsModal:
replace the "After" example that still calls StreamMessageReactionsModal with a
call to ReactionDetailSheet.show(...) (passing context and message) and await
its MessageAction result via showStreamDialog/ReactionDetailSheet.show; then
adjust the Returns description to remove StreamMessageReactionsModal from the
list of dialogs that return Future<T?> so it only mentions
StreamMessageActionsModal and ModeratedMessageActionsModal; keep references to
SelectReaction and MessageAction so readers know how to handle the returned
action.


</details>

</blockquote></details>

</blockquote></details>
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@migrations/redesign/attachments_and_polls.md`:
- Line 300: The migration doc contains inconsistent anchors for the redesigned
attachment picker link — replace the stale `#streamattachmentpickeroption`
anchor in the sentence referencing `AttachmentModalSheet` and
`showStreamAttachmentPickerModalBottomSheet` with the confirmed
`#attachment-picker` anchor (the same used elsewhere in the document) so the
link points to the correct section; update the link target text to match the
existing anchor name to avoid broken docs links.

In `@migrations/redesign/unread_indicator_button.md`:
- Around line 31-35: The migration note is ambiguous about which callback was
renamed; update the text to explicitly state that only onTap was renamed to
onJumpTap while onDismissTap remains unchanged (or change the section heading
from "callback renames" to "callback rename" and add a clarifying sentence).
Reference the callback names onTap, onJumpTap, and onDismissTap so readers
clearly understand that onTap → onJumpTap is the only change.

In `@migrations/v10-migration.md`:
- Line 1054: Update the stable-range version boundary wording so it matches the
upgrade matrix/timeline: change the reference from "beta.13" to "beta.12" in the
migration note that currently reads "The following breaking changes landed
between beta.13 and the stable release" so that it correctly routes
v10.0.0-beta.12 users to this section; ensure the adjacent sentence/context that
mentions the timeline/upgrade matrix uses the same "beta.12" boundary to avoid
conflicting migration guidance.

---

Outside diff comments:
In `@migrations/redesign/message_actions.md`:
- Around line 236-265: Update the migration docs to stop referencing the deleted
StreamMessageReactionsModal: replace the "After" example that still calls
StreamMessageReactionsModal with a call to ReactionDetailSheet.show(...)
(passing context and message) and await its MessageAction result via
showStreamDialog/ReactionDetailSheet.show; then adjust the Returns description
to remove StreamMessageReactionsModal from the list of dialogs that return
Future<T?> so it only mentions StreamMessageActionsModal and
ModeratedMessageActionsModal; keep references to SelectReaction and
MessageAction so readers know how to handle the returned action.

In `@migrations/redesign/message_composer.md`:
- Around line 421-422: The migration snippet uses translations.slowModeOnLabel
without the required integer argument; update the example so SlowModePlaceholder
calls translations.slowModeOnLabel with a concrete int (e.g.,
translations.slowModeOnLabel(30)) or a named variable such as cooldownTimeOut,
ensuring the signature slowModeOnLabel(int cooldownTimeOut) is satisfied in the
example in message_composer.md where SlowModePlaceholder is shown.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 821e3ca9-d434-40a8-9168-61239f3ed41c

📥 Commits

Reviewing files that changed from the base of the PR and between 29fc127 and f325292.

📒 Files selected for processing (18)
  • migrations/redesign/README.md
  • migrations/redesign/attachments_and_polls.md
  • migrations/redesign/audio_theme.md
  • migrations/redesign/channel_list_item.md
  • migrations/redesign/headers_and_icons.md
  • migrations/redesign/image_cdn.md
  • migrations/redesign/localizations.md
  • migrations/redesign/media_viewer.md
  • migrations/redesign/message_actions.md
  • migrations/redesign/message_composer.md
  • migrations/redesign/message_list.md
  • migrations/redesign/message_widget.md
  • migrations/redesign/reaction_list.md
  • migrations/redesign/reaction_picker.md
  • migrations/redesign/stream_avatar.md
  • migrations/redesign/unread_indicator.md
  • migrations/redesign/unread_indicator_button.md
  • migrations/v10-migration.md

| --------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `StreamFileAttachmentThumbnail` | Use `StreamImageAttachmentThumbnail` for images, `StreamVideoAttachmentThumbnail` for videos, or `StreamFileTypeIcon.fromMimeType(...)` for generic file icons |
| `StreamAttachmentUploadStateBuilder.successBuilder` | Removed — was unreachable in practice (the success state immediately transitions to the rendered attachment) |
| `AttachmentModalSheet` | Use the redesigned attachment picker — see [v10-migration.md](../v10-migration.md#streamattachmentpickeroption) for the new sealed-class option types and `showStreamAttachmentPickerModalBottomSheet` |
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor | ⚡ Quick win

Fix likely stale anchor in migration link.

Line 300 uses #streamattachmentpickeroption, but Line 647 links to #attachment-picker for the same target document. Please normalize to one confirmed anchor to avoid a broken docs link.

Suggested patch
-| `AttachmentModalSheet`                              | Use the redesigned attachment picker — see [v10-migration.md](../v10-migration.md#streamattachmentpickeroption) for the new sealed-class option types and `showStreamAttachmentPickerModalBottomSheet` |
+| `AttachmentModalSheet`                              | Use the redesigned attachment picker — see [v10-migration.md](../v10-migration.md#attachment-picker) for the new sealed-class option types and `showStreamAttachmentPickerModalBottomSheet` |
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
| `AttachmentModalSheet` | Use the redesigned attachment picker — see [v10-migration.md](../v10-migration.md#streamattachmentpickeroption) for the new sealed-class option types and `showStreamAttachmentPickerModalBottomSheet` |
| `AttachmentModalSheet` | Use the redesigned attachment picker — see [v10-migration.md](../v10-migration.md#attachment-picker) for the new sealed-class option types and `showStreamAttachmentPickerModalBottomSheet` |
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@migrations/redesign/attachments_and_polls.md` at line 300, The migration doc
contains inconsistent anchors for the redesigned attachment picker link —
replace the stale `#streamattachmentpickeroption` anchor in the sentence
referencing `AttachmentModalSheet` and
`showStreamAttachmentPickerModalBottomSheet` with the confirmed
`#attachment-picker` anchor (the same used elsewhere in the document) so the
link points to the correct section; update the link target text to match the
existing anchor name to avoid broken docs links.

Comment on lines +31 to 35
| Before | After |
| -------------- | -------------- |
| `onTap` | `onJumpTap` |
| `onDismissTap` | `onDismissTap` |

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor | ⚡ Quick win

Clarify which callback is actually renamed.

Line 29 says “callback renames”, but Line 34 shows onDismissTap unchanged. This can confuse migration readers; either rename the section to singular or explicitly note only onTap changed.

Suggested doc tweak
-### 4. `UnreadIndicatorButton` callback renames
+### 4. `UnreadIndicatorButton` callback rename

 | Before         | After          |
 | -------------- | -------------- |
 | `onTap`        | `onJumpTap`    |
-| `onDismissTap` | `onDismissTap` |
+| `onDismissTap` | `onDismissTap` (unchanged) |
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@migrations/redesign/unread_indicator_button.md` around lines 31 - 35, The
migration note is ambiguous about which callback was renamed; update the text to
explicitly state that only onTap was renamed to onJumpTap while onDismissTap
remains unchanged (or change the section heading from "callback renames" to
"callback rename" and add a clarifying sentence). Reference the callback names
onTap, onJumpTap, and onDismissTap so readers clearly understand that onTap →
onJumpTap is the only change.


> **Introduced in:** v10.0.0 (stable)

The following breaking changes landed between beta.13 and the stable release.
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor | ⚡ Quick win

Fix stable-range version boundary (beta.13 vs beta.12).

Line 1054 conflicts with the same document’s upgrade matrix/timeline (which route v10.0.0-beta.12 users to this section). Please align this boundary to avoid migration-path confusion.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@migrations/v10-migration.md` at line 1054, Update the stable-range version
boundary wording so it matches the upgrade matrix/timeline: change the reference
from "beta.13" to "beta.12" in the migration note that currently reads "The
following breaking changes landed between beta.13 and the stable release" so
that it correctly routes v10.0.0-beta.12 users to this section; ensure the
adjacent sentence/context that mentions the timeline/upgrade matrix uses the
same "beta.12" boundary to avoid conflicting migration guidance.

@renefloor renefloor force-pushed the docs/update-migration-docs branch from f325292 to 5aa1043 Compare May 22, 2026 14:40
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant