Skip to content

fix(ui): QA fixes#104

Merged
xsahil03x merged 21 commits intomainfrom
fix/qa-issues
Apr 16, 2026
Merged

fix(ui): QA fixes#104
xsahil03x merged 21 commits intomainfrom
fix/qa-issues

Conversation

@xsahil03x
Copy link
Copy Markdown
Member

@xsahil03x xsahil03x commented Apr 14, 2026

Summary by CodeRabbit

  • New Features

    • Added a “Jump to Unread” floating pill with theme support, component-builder hook, and Widgetbook playground/showcase.
    • Introduced intrinsic shrink‑wrapping flex widgets (StreamIntrinsicFlex/Row/Column) with demos.
  • Bug Fixes

    • RTL improvements: audio waveform/slider and composer input padding now respect text direction.
  • Refactor

    • Unified radii into a single const radius API; adjusted layout sizing defaults and several component layouts.
  • Documentation

    • Added an “Upcoming” changelog section.

Flip the waveform visually in RTL using Transform.flip and use
AnimatedPositionedDirectional for the slider thumb so it tracks
correctly in both text directions.

Made-with: Cursor
Use the same border radius scale across all platforms instead of
separate iOS and Android values. This simplifies StreamRadius to a
plain const constructor matching the StreamSpacing pattern.

Made-with: Cursor
@xsahil03x xsahil03x requested a review from a team as a code owner April 14, 2026 19:11
@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented Apr 14, 2026

Note

Reviews paused

It looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the reviews.auto_review.auto_pause_after_reviewed_commits setting.

Use the following commands to manage reviews:

  • @coderabbitai resume to resume automatic reviews.
  • @coderabbitai review to trigger a single review.

Use the checkboxes below for quick actions:

  • ▶️ Resume reviews
  • 🔍 Trigger review
📝 Walkthrough

Walkthrough

Added a const-only StreamRadius (removed platform factory); introduced StreamJumpToUnreadButton with theme and factory hook plus Widgetbook demos; implemented StreamIntrinsicFlex (and Row/Column) replacing shrink-wrap columns; applied RTL/directionality fixes and multiple minor layout adjustments.

Changes

Cohort / File(s) Summary
Radius theme
packages/stream_core_flutter/lib/src/theme/primitives/stream_radius.dart, packages/stream_core_flutter/lib/src/theme/primitives/stream_radius.g.theme.dart, packages/stream_core_flutter/lib/src/theme/stream_theme.dart, packages/stream_core_flutter/lib/src/theme/stream_theme.g.theme.dart
Replaced platform-aware StreamRadius factory and ios/android variants with a single const StreamRadius(...) constructor; updated generated helpers and StreamTheme to use the new constructor and stop recomputing radius per platform.
Jump-to-unread component & wiring
packages/stream_core_flutter/lib/src/components/buttons/stream_jump_to_unread_button.dart, packages/stream_core_flutter/lib/src/components.dart, packages/stream_core_flutter/lib/src/factory/stream_component_factory.dart, packages/stream_core_flutter/lib/src/factory/stream_component_factory.g.theme.dart, packages/stream_core_flutter/lib/src/theme/components/stream_jump_to_unread_button_theme.dart, packages/stream_core_flutter/lib/src/theme/components/stream_jump_to_unread_button_theme.g.theme.dart, packages/stream_core_flutter/lib/src/theme.dart
Added StreamJumpToUnreadButton, its props and default implementation, theme + theme data, Widgetbook exposure, and a jumpToUnreadButton builder hook in StreamComponentBuilders with generated mixin updates.
Intrinsic flex layout
packages/stream_core_flutter/lib/src/components/common/stream_intrinsic_flex.dart, packages/stream_core_flutter/lib/src/components/common/stream_flex.dart
Introduced StreamIntrinsicFlex (and StreamIntrinsicRow/StreamIntrinsicColumn) with intrinsic multi-pass layout and StreamIntrinsicSizeCandidate; changed StreamFlex default mainAxisSize to min; added protected annotations and render-object behavior adjustments.
Replaced local shrink-wrap
packages/stream_core_flutter/lib/src/components/reaction/stream_reactions.dart
Replaced private _ShrinkWrapColumn with StreamIntrinsicColumn; removed the specialized render object and related imports.
Widgetbook integration & demos
apps/design_system_gallery/lib/components/buttons/stream_jump_to_unread_button.dart, apps/design_system_gallery/lib/app/gallery_app.directories.g.dart, apps/design_system_gallery/lib/components/common/stream_intrinsic_flex.dart
Added Widgetbook use cases (Playground, Showcase) for StreamJumpToUnreadButton and StreamIntrinsicFlex; wired new components into generated gallery directories and added demo scaffolding.
RTL / Directionality fixes
packages/stream_core_flutter/lib/src/components/accessories/stream_audio_waveform.dart, packages/stream_core_flutter/lib/src/components/message_composer/message_composer_input.dart
Made waveform thumb layout direction-aware (AnimatedPositionedDirectional + flip painting for RTL) and converted horizontal paddings to direction-aware EdgeInsetsDirectional/fromSTEB.
Various layout minor removals
apps/design_system_gallery/lib/components/common/stream_flex.dart, packages/stream_core_flutter/lib/src/components/avatar/stream_avatar_stack.dart, packages/stream_core_flutter/lib/src/components/common/stream_text_input.dart, packages/stream_core_flutter/lib/src/components/message/stream_message_content.dart
Removed explicit mainAxisSize: MainAxisSize.min from multiple demo and component call sites (letting defaults apply).
Badge/positioning adjustments
packages/stream_core_flutter/lib/src/components/badge/stream_badge_count.dart, .../stream_badge_notification.dart, .../stream_online_indicator.dart
Replaced Align wrappers with FittedBox(fit: BoxFit.none) inside Positioned.fill for several badges/indicators, preserving alignment/offset logic but changing measurement semantics.
Attachment border color tweak
packages/stream_core_flutter/lib/src/components/message_composer/attachment/message_composer_media_file_attachment.dart
Reads colorScheme from context.streamColorScheme and passes borderOpacitySubtle into the attachment container as borderColor.
Changelog & preview comment
packages/stream_core_flutter/CHANGELOG.md, apps/design_system_gallery/lib/core/preview_wrapper.dart
Added an "Upcoming" changelog section (jump-to-unread, RTL fixes, radius breaking change) and adjusted an inline preview comment to reference StreamTypography only.
Generated mixins & theme wiring
packages/stream_core_flutter/lib/src/theme/primitives/stream_radius.g.theme.dart, packages/stream_core_flutter/lib/src/factory/stream_component_factory.g.theme.dart, packages/stream_core_flutter/lib/src/theme/stream_theme.g.theme.dart, packages/stream_core_flutter/lib/src/theme/components/stream_jump_to_unread_button_theme.g.theme.dart
Updated generated mixins to call the new StreamRadius constructor, include jumpToUnreadButton in lerp/copyWith/merge/equality, and add jumpToUnreadButtonTheme interpolation/equality.

Sequence Diagram(s)

sequenceDiagram
    participant Widget as Client Widget
    participant Factory as StreamComponentFactory
    participant Theme as StreamTheme
    participant Default as DefaultStreamJumpToUnreadButton
    participant User as User

    Widget->>Factory: request jumpToUnreadButton builder (props)
    Factory-->>Widget: builder? (nullable)
    alt custom builder provided
        Widget->>Factory: invoke custom builder(props)
        Factory-->>Widget: custom widget
    else no builder
        Widget->>Theme: resolve jumpToUnreadButtonTheme
        Theme-->>Widget: theme data
        Widget->>Default: build default UI using theme & props
        Default-->>Widget: default widget
    end
    User->>Widget: tap leading/trailing areas
    Widget->>User: invoke provided callbacks (jump/dismiss)
Loading

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~45 minutes

Poem

🐰 A hop, a tweak, a single radius ring,
I stitched left/right so widgets softly sing.
A pill to jump where unread messages hide,
intrinsic rows now fold with gentle pride.
Tiny paws, bold changes — hop along, wide!

🚥 Pre-merge checks | ✅ 1 | ❌ 2

❌ Failed checks (1 warning, 1 inconclusive)

Check name Status Explanation Resolution
Description check ⚠️ Warning The pull request description is entirely missing, providing no context about the changes, their purpose, testing approach, or how to verify them, which fails to meet the repository's required description template. Add a comprehensive description covering the main changes (RTL fixes, new components, radius unification), Linear ticket reference, test instructions, and before/after screenshots as per the template.
Title check ❓ Inconclusive The title 'fix(ui): QA fixes' is extremely vague and generic, using non-descriptive terms that fail to convey meaningful information about the extensive changeset involving multiple UI components, RTL fixes, platform radius unification, and new features. Replace with a more specific title summarizing the main changes, such as 'fix(ui): RTL support for audio waveform and composer input' or 'feat(ui): add StreamJumpToUnreadButton and StreamIntrinsicFlex components'
✅ Passed checks (1 passed)
Check name Status Explanation
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ 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 fix/qa-issues

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: 3

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In
`@packages/stream_core_flutter/lib/src/components/accessories/stream_audio_waveform.dart`:
- Around line 306-328: The Transform.flip + waveform.reversed unconditionally
flips RTL consumers and conflicts with the inverse parameter; fix by computing
an effective direction and passing that into the painter instead of flipping the
widget: compute effectiveInverse = inverse ^ (Directionality.maybeOf(context) ==
TextDirection.rtl), remove Transform.flip(...) and stop reversing the waveform
before passing it, and pass inverse: effectiveInverse into _WaveformPainter (or
alternatively adjust dx in _WaveformPainter using if (inverse != isRtl) dx =
canvasWidth - dx;), then add RTL unit tests to cover both inverse true/false
cases.

In
`@packages/stream_core_flutter/lib/src/components/message_composer/message_composer_input.dart`:
- Line 136: In MessageComposerInput (the widget using padding:
EdgeInsetsDirectional.only(start: context.streamSpacing.sm)), change the
directional inset from start to end so the spacing sits between the chip and the
TextField in both LTR/RTL; locate the padding property and replace
EdgeInsetsDirectional.only(start: ...) with EdgeInsetsDirectional.only(end: ...)
to apply inner spacing next to the input.

In `@packages/stream_core_flutter/lib/src/theme/primitives/stream_radius.dart`:
- Around line 27-41: The change removed the prior platform-aware constructor
shape from the public API by replacing it with a single const StreamRadius()
signature; restore backwards compatibility by reintroducing the previous
platform-specific constructor overload or factory (keep the new const
StreamRadius() as default) and add a deprecated compatibility
constructor/factory that forwards to the new implementation, documenting
deprecation; update the class StreamRadius and its constructors (and any factory
methods) so existing callers compile, and mark the compatibility constructor as
`@deprecated` with a note to migrate to the new const constructor.
🪄 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: 1295f8c4-d945-4dc4-9648-1ea7aec999ca

📥 Commits

Reviewing files that changed from the base of the PR and between a08e782 and 75cd85f.

📒 Files selected for processing (7)
  • apps/design_system_gallery/lib/core/preview_wrapper.dart
  • packages/stream_core_flutter/CHANGELOG.md
  • packages/stream_core_flutter/lib/src/components/accessories/stream_audio_waveform.dart
  • packages/stream_core_flutter/lib/src/components/message_composer/message_composer_input.dart
  • packages/stream_core_flutter/lib/src/theme/primitives/stream_radius.dart
  • packages/stream_core_flutter/lib/src/theme/primitives/stream_radius.g.theme.dart
  • packages/stream_core_flutter/lib/src/theme/stream_theme.dart

A floating pill-shaped button for jumping to unread messages, composed
of a leading StreamButton (icon + label) and a trailing StreamButton.icon
(dismiss), separated by a vertical divider. Includes full theming support,
component factory override, context extensions, and Widgetbook use-cases.

Made-with: Cursor
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: 3

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In
`@apps/design_system_gallery/lib/components/buttons/stream_jump_to_unread_button.dart`:
- Around line 443-448: The Text widget currently uses an escaped apostrophe
('I\'m good, thanks!') which triggers the avoid_escaping_inner_quotes lint;
update the inner string in the child: Text(...) call to use double quotes for
the outer string (e.g., "I'm good, thanks!") so no escape is needed, leaving the
surrounding code (i.isEven condition, style usage of textTheme.bodyDefault and
colorScheme) unchanged.
- Around line 48-54: Replace the escaped single-quoted string `'I\'m good,
thanks!'` with a double-quoted literal `"I'm good, thanks!"` to remove the
unnecessary escape; locate the string inside the widget tree near
StreamJumpToUnreadButtonTheme in stream_jump_to_unread_button.dart and update
that literal only. Leave the slider knob parameters (min, max, description)
unchanged—the reviewer’s note about line 48 is incorrect. Ensure the file lints
cleanly after changing the quote style.

In
`@packages/stream_core_flutter/lib/src/theme/components/stream_jump_to_unread_button_theme.dart`:
- Around line 74-100: Doc comments for StreamJumpToUnreadButtonThemeData mention
a non-existent field `borderColor`; update the docs to reference the actual
field `side` (e.g., use BorderSide) and ensure other examples and mentions
(around backgroundColor, leadingStyle/leadingButtonStyle,
trailingStyle/trailingButtonStyle) match the real property names in
StreamJumpToUnreadButtonThemeData so the sample and descriptions are accurate.
🪄 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: 629252da-5c67-49fc-9563-7ade34cd897b

📥 Commits

Reviewing files that changed from the base of the PR and between 75cd85f and d15cda1.

📒 Files selected for processing (13)
  • apps/design_system_gallery/lib/app/gallery_app.directories.g.dart
  • apps/design_system_gallery/lib/components/buttons/stream_jump_to_unread_button.dart
  • packages/stream_core_flutter/CHANGELOG.md
  • packages/stream_core_flutter/lib/src/components.dart
  • packages/stream_core_flutter/lib/src/components/buttons/stream_jump_to_unread_button.dart
  • packages/stream_core_flutter/lib/src/factory/stream_component_factory.dart
  • packages/stream_core_flutter/lib/src/factory/stream_component_factory.g.theme.dart
  • packages/stream_core_flutter/lib/src/theme.dart
  • packages/stream_core_flutter/lib/src/theme/components/stream_jump_to_unread_button_theme.dart
  • packages/stream_core_flutter/lib/src/theme/components/stream_jump_to_unread_button_theme.g.theme.dart
  • packages/stream_core_flutter/lib/src/theme/stream_theme.dart
  • packages/stream_core_flutter/lib/src/theme/stream_theme.g.theme.dart
  • packages/stream_core_flutter/lib/src/theme/stream_theme_extensions.dart
✅ Files skipped from review due to trivial changes (5)
  • packages/stream_core_flutter/lib/src/theme.dart
  • packages/stream_core_flutter/CHANGELOG.md
  • apps/design_system_gallery/lib/app/gallery_app.directories.g.dart
  • packages/stream_core_flutter/lib/src/components.dart
  • packages/stream_core_flutter/lib/src/theme/components/stream_jump_to_unread_button_theme.g.theme.dart

Add full main-axis flex behavior (Expanded, Flexible, MainAxisAlignment,
MainAxisSize) and CrossAxisAlignment.baseline support to
StreamIntrinsicFlex, matching RenderFlex semantics while retaining
cross-axis shrink-wrapping.

Includes Widgetbook playground with interactive knobs and showcase
sections for shrink-wrap, size candidates, cross-axis alignment,
baseline alignment, and negative spacing.

Made-with: Cursor
StreamFlex/StreamRow/StreamColumn now default to MainAxisSize.min
instead of MainAxisSize.max, matching common usage patterns where
shrink-wrapping is desired. Remove now-redundant explicit
mainAxisSize: MainAxisSize.min across all call sites.

Also adds @Protected to NullableState.nullableBuild and uses
sizedByParent in _RenderCollapsed for efficiency.

Made-with: Cursor
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: 3

🧹 Nitpick comments (1)
packages/stream_core_flutter/lib/src/components/common/stream_intrinsic_flex.dart (1)

383-386: Unnecessary ignore comment on private class.

The // ignore: type_annotate_public_apis comment is on a private class (_IntrinsicFlexParentData), where the lint rule wouldn't apply. The comment can be removed.

🧹 Proposed cleanup
 class _IntrinsicFlexParentData extends FlexParentData {
-  // ignore: type_annotate_public_apis
-  var isSizeCandidate = false;
+  bool isSizeCandidate = false;
 }
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In
`@packages/stream_core_flutter/lib/src/components/common/stream_intrinsic_flex.dart`
around lines 383 - 386, Remove the unnecessary ignore comment on the private
class _IntrinsicFlexParentData: delete the line "// ignore:
type_annotate_public_apis" above the class declaration and leave the class as
"class _IntrinsicFlexParentData extends FlexParentData { var isSizeCandidate =
false; }" (the lint does not apply to a private class and the suppression can be
removed for cleanliness).
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@packages/stream_core_flutter/lib/src/components/common/stream_flex.dart`:
- Line 107: The constructor default for mainAxisSize on StreamFlex was changed
to MainAxisSize.min causing broad layout regressions; revert the constructor
default back to MainAxisSize.max (i.e., change the default value of the
mainAxisSize parameter in StreamFlex back to MainAxisSize.max) and update only
the specific callsites that require shrink-wrapping (e.g., where
StreamRow/StreamColumn need MainAxisSize.min such as in usages inside
StreamMessageContent, StreamAvatarStack, StreamTextInput) to explicitly pass
mainAxisSize: MainAxisSize.min; ensure the symbol references are StreamFlex
(constructor parameter mainAxisSize), StreamRow and StreamColumn callsites.

In
`@packages/stream_core_flutter/lib/src/components/common/stream_intrinsic_flex.dart`:
- Around line 122-127: Update the doc comment on the StreamIntrinsicFlex class
where it references non-existent types StreamRow and StreamColumn: change those
references to the correct class names StreamIntrinsicRow and
StreamIntrinsicColumn so the links point to actual classes; ensure the summary
and bracketed references in the comment above the final Axis direction field are
replaced accordingly.
- Around line 216-232: The updateRenderObject implementation sets textDirection
inconsistently with createRenderObject; instead of directly using textDirection
?? Directionality.maybeOf(context), call the same helper used in
createRenderObject (getEffectiveTextDirection) so the _needTextDirection check
is honoured and the _RenderStreamIntrinsicFlex.textDirection stays null when
direction isn't needed; update the updateRenderObject chain to assign
textDirection = getEffectiveTextDirection(context) (or use the same
logic/function) to match createRenderObject.

---

Nitpick comments:
In
`@packages/stream_core_flutter/lib/src/components/common/stream_intrinsic_flex.dart`:
- Around line 383-386: Remove the unnecessary ignore comment on the private
class _IntrinsicFlexParentData: delete the line "// ignore:
type_annotate_public_apis" above the class declaration and leave the class as
"class _IntrinsicFlexParentData extends FlexParentData { var isSizeCandidate =
false; }" (the lint does not apply to a private class and the suppression can be
removed for cleanliness).
🪄 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: 0de390d0-feb4-427d-a4f6-cf6fc31a8c54

📥 Commits

Reviewing files that changed from the base of the PR and between d15cda1 and 7d30c8b.

📒 Files selected for processing (13)
  • apps/design_system_gallery/lib/app/gallery_app.directories.g.dart
  • apps/design_system_gallery/lib/components/buttons/stream_jump_to_unread_button.dart
  • apps/design_system_gallery/lib/components/common/stream_flex.dart
  • apps/design_system_gallery/lib/components/common/stream_intrinsic_flex.dart
  • packages/stream_core_flutter/CHANGELOG.md
  • packages/stream_core_flutter/lib/src/components.dart
  • packages/stream_core_flutter/lib/src/components/avatar/stream_avatar_stack.dart
  • packages/stream_core_flutter/lib/src/components/common/stream_flex.dart
  • packages/stream_core_flutter/lib/src/components/common/stream_intrinsic_flex.dart
  • packages/stream_core_flutter/lib/src/components/common/stream_text_input.dart
  • packages/stream_core_flutter/lib/src/components/message/stream_message_content.dart
  • packages/stream_core_flutter/lib/src/components/reaction/stream_reactions.dart
  • packages/stream_core_flutter/lib/src/theme/components/stream_jump_to_unread_button_theme.dart
💤 Files with no reviewable changes (4)
  • packages/stream_core_flutter/lib/src/components/message/stream_message_content.dart
  • packages/stream_core_flutter/lib/src/components/common/stream_text_input.dart
  • packages/stream_core_flutter/lib/src/components/avatar/stream_avatar_stack.dart
  • apps/design_system_gallery/lib/components/common/stream_flex.dart
✅ Files skipped from review due to trivial changes (3)
  • apps/design_system_gallery/lib/app/gallery_app.directories.g.dart
  • packages/stream_core_flutter/CHANGELOG.md
  • packages/stream_core_flutter/lib/src/theme/components/stream_jump_to_unread_button_theme.dart
🚧 Files skipped from review as they are similar to previous changes (1)
  • apps/design_system_gallery/lib/components/buttons/stream_jump_to_unread_button.dart

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: 2

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In
`@packages/stream_core_flutter/lib/src/components/common/stream_intrinsic_flex.dart`:
- Around line 193-196: Doc references the wrong class name: update the doc
comment that mentions [StreamFlex] to reference the actual class
[StreamIntrinsicFlex] so the documentation links resolve correctly; locate the
protected method comment in StreamIntrinsicFlex (the block starting "This method
exists so that subclasses of [StreamFlex]...") and replace the bracketed
identifier to [StreamIntrinsicFlex].
- Around line 367-377: The isSizeCandidate flag is only ever set to true in
applyParentData and never cleared, causing stale true values when a child loses
the StreamIntrinsicSizeCandidate wrapper; fix this by (1) overriding
setupParentData on the parent RenderObject to initialize/reset
_IntrinsicFlexParentData.isSizeCandidate = false when new parent data is
created/attached, and (2) additionally clear all children’s
_IntrinsicFlexParentData.isSizeCandidate flags at the start of performLayout so
only currently-wrapped children are treated as candidates; keep applyParentData
to set true for wrapped children but ensure explicit initialization/reset paths
exist via setupParentData and performLayout.
🪄 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: 295d9166-90d9-4b11-bce9-edac95f64070

📥 Commits

Reviewing files that changed from the base of the PR and between 7d30c8b and 5a57897.

📒 Files selected for processing (5)
  • packages/stream_core_flutter/lib/src/components/badge/stream_badge_count.dart
  • packages/stream_core_flutter/lib/src/components/badge/stream_badge_notification.dart
  • packages/stream_core_flutter/lib/src/components/badge/stream_online_indicator.dart
  • packages/stream_core_flutter/lib/src/components/common/stream_intrinsic_flex.dart
  • packages/stream_core_flutter/lib/src/components/message_composer/attachment/message_composer_media_file_attachment.dart

Replace incorrect [StreamFlex] reference with [StreamIntrinsicFlex] in
the getEffectiveTextDirection method's documentation.

Made-with: Cursor
@codecov
Copy link
Copy Markdown

codecov Bot commented Apr 16, 2026

Codecov Report

❌ Patch coverage is 3.08057% with 409 lines in your changes missing coverage. Please review.
✅ Project coverage is 24.69%. Comparing base (a08e782) to head (308ba81).
⚠️ Report is 2 commits behind head on main.

Files with missing lines Patch % Lines
...b/src/components/common/stream_intrinsic_flex.dart 0.00% 315 Missing ⚠️
...mponents/buttons/stream_jump_to_unread_button.dart 0.00% 59 Missing ⚠️
.../src/components/common/stream_loading_spinner.dart 0.00% 13 Missing ⚠️
...components/stream_jump_to_unread_button_theme.dart 9.09% 10 Missing ⚠️
...chment/message_composer_media_file_attachment.dart 0.00% 2 Missing ⚠️
...nents/message_composer/message_composer_input.dart 0.00% 2 Missing ⚠️
...tream_core_flutter/lib/src/theme/stream_theme.dart 0.00% 2 Missing ⚠️
...r/lib/src/components/badge/stream_badge_count.dart 0.00% 1 Missing ⚠️
...rc/components/badge/stream_badge_notification.dart 50.00% 1 Missing ⚠️
.../src/components/badge/stream_online_indicator.dart 0.00% 1 Missing ⚠️
... and 3 more

❌ Your patch status has failed because the patch coverage (3.08%) is below the target coverage (80.00%). You can increase the patch coverage or adjust the target coverage.

Additional details and impacted files
@@            Coverage Diff             @@
##             main     #104      +/-   ##
==========================================
+ Coverage   24.68%   24.69%   +0.01%     
==========================================
  Files         152      155       +3     
  Lines        5639     5588      -51     
==========================================
- Hits         1392     1380      -12     
+ Misses       4247     4208      -39     

☔ 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.

xsahil03x and others added 5 commits April 16, 2026 15:14
# Conflicts:
#	packages/stream_core_flutter/CHANGELOG.md
#	packages/stream_core_flutter/test/components/message_composer/goldens/ci/message_composer_attachment_link_preview_dark_matrix.png
#	packages/stream_core_flutter/test/components/message_composer/goldens/ci/message_composer_attachment_link_preview_light_matrix.png
#	packages/stream_core_flutter/test/components/message_composer/goldens/ci/message_composer_attachment_reply_dark_matrix.png
#	packages/stream_core_flutter/test/components/message_composer/goldens/ci/message_composer_attachment_reply_light_matrix.png
@xsahil03x xsahil03x merged commit 953e5aa into main Apr 16, 2026
7 of 8 checks passed
@xsahil03x xsahil03x deleted the fix/qa-issues branch April 16, 2026 13:25
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