Skip to content

feat(ui): remove composer#114

Merged
renefloor merged 2 commits into
mainfrom
feat/remove-composer
May 13, 2026
Merged

feat(ui): remove composer#114
renefloor merged 2 commits into
mainfrom
feat/remove-composer

Conversation

@renefloor
Copy link
Copy Markdown
Collaborator

@renefloor renefloor commented May 12, 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 moves all the composer parts to chat, as they are not really re-usable anyway and only confusing.
Related to: GetStream/stream-chat-flutter#2642

Summary by CodeRabbit

  • Breaking Changes
    • Removed core message composer widgets and voice recording components from the package
    • Updated package exports; attachment-related components remain available
    • Documented API changes for component names and structure updates

@renefloor renefloor requested a review from a team as a code owner May 12, 2026 13:51
@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented May 12, 2026

Warning

Rate limit exceeded

@renefloor has exceeded the limit for the number of commits that can be reviewed per hour. Please wait 52 minutes and 29 seconds before requesting another review.

You’ve run out of usage credits. Purchase more in the billing tab.

⌛ How to resolve this issue?

After the wait time has elapsed, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

We recommend that you space out your commits to avoid hitting the rate limit.

🚦 How do rate limits work?

CodeRabbit enforces hourly rate limits for each developer per organization.

Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout.

Please see our FAQ for further information.

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: cd8474b4-53ad-418f-8e2d-1ad5d0307d4a

📥 Commits

Reviewing files that changed from the base of the PR and between 20a4b1c and 1d72d54.

📒 Files selected for processing (3)
  • packages/stream_core_flutter/CHANGELOG.md
  • packages/stream_core_flutter/lib/src/components.dart
  • packages/stream_core_flutter/lib/src/components/message_composer.dart
📝 Walkthrough

Walkthrough

The PR removes core message composer components (StreamCoreMessageComposer, StreamMessageComposerInput, StreamCoreMessageComposerInputTrailing, and VoiceRecordingCallback) from the stream_core_flutter package, migrating them to stream_chat_flutter. Corresponding Widgetbook gallery examples are deleted, package exports updated, and CHANGELOG documented with breaking changes.

Changes

Message Composer Components Removal

Layer / File(s) Summary
Core message composer and input widgets
packages/stream_core_flutter/lib/src/components/message_composer/message_composer.dart, packages/stream_core_flutter/lib/src/components/message_composer/message_composer_input.dart
Removed StreamCoreMessageComposer widget with lifecycle management, MessageData class, and InputThemeDefaults helper. Removed StreamMessageComposerInput and StreamMessageComposerInputField widgets that built the composer text input container with themed slots.
Trailing input controls and voice recording
packages/stream_core_flutter/lib/src/components/message_composer/message_composer_input_trailing.dart
Removed StreamCoreMessageComposerInputTrailing, StreamVoiceRecordingButton, StreamMessageComposerInputTrailingState enum, and VoiceRecordingCallback class that handled send/edit/microphone button states and long-press voice recording gestures.
Package exports update
packages/stream_core_flutter/lib/src/components/message_composer.dart
Removed re-exports of the three deleted message composer modules; retained attachment widget re-exports with Default* implementations hidden to indicate they remain in the package.
Design system gallery examples removal
apps/design_system_gallery/lib/components/message_composer/message_composer.dart, apps/design_system_gallery/lib/app/gallery_app.directories.g.dart
Removed Widgetbook "Playground" and "Real-world Example" builders for StreamCoreMessageComposer, the shared emptyVoiceRecordingCallback, and the private _MessageBubble widget; removed corresponding gallery directory entry and Widgetbook component registration.
Breaking changes documentation
packages/stream_core_flutter/CHANGELOG.md
Added breaking removal notice documenting migration of composer-flow widgets to stream_chat_flutter while attachment widgets remain; added breaking change entry for inputBodyinputCenter parameter rename on message composer and input widgets.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

Poem

🐰 A rabbit hops through widget trees,
Removing composers with gentle ease,
Attachments stay (they're not going far),
Core flows migrate—like a shooting star,
The gallery sighs, but examples still dance. ✨

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed The title 'feat(ui): remove composer' clearly and concisely summarizes the main change—removing composer components from the package.
Description check ✅ Passed The description includes CLA confirmation, best practices checklist, and explains the rationale for removing composer parts, though it lacks specific testing details and screenshots.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch feat/remove-composer

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

@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: 1

🤖 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 `@packages/stream_core_flutter/CHANGELOG.md`:
- Around line 31-34: Update the breaking-change bullet to clarify this rename
applies to the moved types in the other package, not inside stream_core_flutter:
change the wording that currently says "Renamed `inputBody` to `inputCenter` on
`StreamCoreMessageComposer` and `StreamMessageComposerInput`" to explicitly
scope it (for example, "In `stream_chat_flutter`: renamed `inputBody` to
`inputCenter` on `StreamCoreMessageComposer` and `StreamMessageComposerInput`")
and mention that these types were moved out of this package to avoid confusing
stream_core_flutter consumers.
🪄 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: 159c9424-d333-415a-a107-777b66a977be

📥 Commits

Reviewing files that changed from the base of the PR and between da615a2 and 20a4b1c.

📒 Files selected for processing (7)
  • apps/design_system_gallery/lib/app/gallery_app.directories.g.dart
  • apps/design_system_gallery/lib/components/message_composer/message_composer.dart
  • packages/stream_core_flutter/CHANGELOG.md
  • packages/stream_core_flutter/lib/src/components/message_composer.dart
  • packages/stream_core_flutter/lib/src/components/message_composer/message_composer.dart
  • packages/stream_core_flutter/lib/src/components/message_composer/message_composer_input.dart
  • packages/stream_core_flutter/lib/src/components/message_composer/message_composer_input_trailing.dart
💤 Files with no reviewable changes (6)
  • apps/design_system_gallery/lib/components/message_composer/message_composer.dart
  • packages/stream_core_flutter/lib/src/components/message_composer/message_composer_input_trailing.dart
  • packages/stream_core_flutter/lib/src/components/message_composer/message_composer.dart
  • packages/stream_core_flutter/lib/src/components/message_composer/message_composer_input.dart
  • apps/design_system_gallery/lib/app/gallery_app.directories.g.dart
  • packages/stream_core_flutter/lib/src/components/message_composer.dart

Comment on lines +31 to +34
### ⚠️ Breaking Changes

- Renamed `inputBody` to `inputCenter` on `StreamCoreMessageComposer` and `StreamMessageComposerInput`.

Copy link
Copy Markdown

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 rename note for types removed from this package.

This entry currently reads like an in-package API rename, but those types are documented as moved out earlier. Please scope this rename to migration guidance (e.g., “in stream_chat_flutter”) to avoid confusion for stream_core_flutter consumers.

Suggested changelog wording
-### ⚠️ Breaking Changes
-
-- Renamed `inputBody` to `inputCenter` on `StreamCoreMessageComposer` and `StreamMessageComposerInput`.
+### ⚠️ Migration Notes
+
+- In `stream_chat_flutter`, `inputBody` was renamed to `inputCenter` on `StreamCoreMessageComposer` and `StreamMessageComposerInput`.
📝 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
### ⚠️ Breaking Changes
- Renamed `inputBody` to `inputCenter` on `StreamCoreMessageComposer` and `StreamMessageComposerInput`.
### ⚠️ Migration Notes
- In `stream_chat_flutter`, `inputBody` was renamed to `inputCenter` on `StreamCoreMessageComposer` and `StreamMessageComposerInput`.
🤖 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 `@packages/stream_core_flutter/CHANGELOG.md` around lines 31 - 34, Update the
breaking-change bullet to clarify this rename applies to the moved types in the
other package, not inside stream_core_flutter: change the wording that currently
says "Renamed `inputBody` to `inputCenter` on `StreamCoreMessageComposer` and
`StreamMessageComposerInput`" to explicitly scope it (for example, "In
`stream_chat_flutter`: renamed `inputBody` to `inputCenter` on
`StreamCoreMessageComposer` and `StreamMessageComposerInput`") and mention that
these types were moved out of this package to avoid confusing
stream_core_flutter consumers.

@codecov
Copy link
Copy Markdown

codecov Bot commented May 12, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 33.78%. Comparing base (da615a2) to head (1d72d54).

Additional details and impacted files
@@            Coverage Diff             @@
##             main     #114      +/-   ##
==========================================
+ Coverage   33.04%   33.78%   +0.74%     
==========================================
  Files         171      168       -3     
  Lines        6595     6450     -145     
==========================================
  Hits         2179     2179              
+ Misses       4416     4271     -145     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

Comment on lines +31 to +34
### ⚠️ Breaking Changes

- Renamed `inputBody` to `inputCenter` on `StreamCoreMessageComposer` and `StreamMessageComposerInput`.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

We can remove this.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

We should remove this file to be consistent with other components. lets directly reference all the attachments in the root file.

- Remove stale breaking-change entry for inputBody→inputCenter rename (types moved out of this package)
- Remove intermediate message_composer.dart barrel file; inline attachment exports directly in components.dart

Co-authored-by: Cursor <cursoragent@cursor.com>
@renefloor renefloor merged commit 02d184f into main May 13, 2026
8 checks passed
@renefloor renefloor deleted the feat/remove-composer branch May 13, 2026 12: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.

2 participants