Skip to content

fix(ui): add StreamOnlineIndicatorSize.xxl (20px) for xxl avatars#116

Merged
xsahil03x merged 4 commits into
mainfrom
fix/avatar-2xl-online-indicator
Jun 2, 2026
Merged

fix(ui): add StreamOnlineIndicatorSize.xxl (20px) for xxl avatars#116
xsahil03x merged 4 commits into
mainfrom
fix/avatar-2xl-online-indicator

Conversation

@xsahil03x
Copy link
Copy Markdown
Member

@xsahil03x xsahil03x commented Jun 2, 2026

Summary

  • Adds StreamOnlineIndicatorSize.xxl (20px) to pair with StreamAvatarSize.xxl.
  • Border width for the new size resolves to 2px via the existing _borderWidthForSize mapping.
  • Updates the design system gallery's pixel-size label for the new variant.

Fixes the online indicator dimensions on the xxl avatar in the Contact Info screen — per spec.

Test plan

  • Verify the indicator renders at 20px diameter with a 2px inner border on the xxl avatar in the gallery showcase
  • melos run analyze

🤖 Generated with Claude Code

Summary by CodeRabbit

  • New Features

    • Added an extra‑extra‑large (xxl) online indicator (20px) for improved visibility in larger layouts.
  • Bug Fixes / Styling

    • Updated default border width for the new xxl indicator to match other large sizes (uses 2px) for consistent appearance.

Pairs with StreamAvatarSize.xxl per the Chat SDK design system spec
(20px diameter, 2px inner border).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@xsahil03x xsahil03x requested a review from a team as a code owner June 2, 2026 15:14
@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented Jun 2, 2026

Review Change Stack

Caution

Review failed

Pull request was closed or merged during review

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 53984afe-8c84-4ad9-8a44-08ebfe0a888b

📥 Commits

Reviewing files that changed from the base of the PR and between 41ac751 and c8f5c2c.

⛔ Files ignored due to path filters (9)
  • packages/stream_core_flutter/test/components/buttons/goldens/ci/stream_button_dark_matrix.png is excluded by !**/*.png
  • packages/stream_core_flutter/test/components/buttons/goldens/ci/stream_button_disabled.png is excluded by !**/*.png
  • packages/stream_core_flutter/test/components/buttons/goldens/ci/stream_button_icon_only.png is excluded by !**/*.png
  • packages/stream_core_flutter/test/components/buttons/goldens/ci/stream_button_light_matrix.png is excluded by !**/*.png
  • packages/stream_core_flutter/test/components/buttons/goldens/ci/stream_button_with_icons.png is excluded by !**/*.png
  • packages/stream_core_flutter/test/components/message_composer/goldens/ci/message_composer_attachment_link_preview_dark_matrix.png is excluded by !**/*.png
  • packages/stream_core_flutter/test/components/message_composer/goldens/ci/message_composer_attachment_link_preview_light_matrix.png is excluded by !**/*.png
  • packages/stream_core_flutter/test/components/message_composer/goldens/ci/message_composer_attachment_reply_dark_matrix.png is excluded by !**/*.png
  • packages/stream_core_flutter/test/components/message_composer/goldens/ci/message_composer_attachment_reply_light_matrix.png is excluded by !**/*.png
📒 Files selected for processing (28)
  • apps/design_system_gallery/lib/components/accessories/stream_emoji.dart
  • apps/design_system_gallery/lib/components/badge/stream_image_source_badge.dart
  • apps/design_system_gallery/lib/components/controls/stream_emoji_chip.dart
  • apps/design_system_gallery/lib/components/message/stream_message_annotation.dart
  • apps/design_system_gallery/lib/components/message/stream_message_metadata.dart
  • apps/design_system_gallery/lib/components/message/stream_message_replies.dart
  • apps/design_system_gallery/lib/components/message/stream_message_text.dart
  • packages/stream_core/lib/src/logger/stream_logger.dart
  • packages/stream_core/lib/src/platform/current_platform.dart
  • packages/stream_core/lib/src/query/sort.dart
  • packages/stream_core/lib/src/user/user_token.dart
  • packages/stream_core/lib/src/ws/client/reconnect/connection_recovery_handler.dart
  • packages/stream_core_flutter/lib/src/components/accessories/stream_emoji.dart
  • packages/stream_core_flutter/lib/src/components/accessories/stream_file_type_icon.dart
  • packages/stream_core_flutter/lib/src/components/avatar/stream_avatar_group.dart
  • packages/stream_core_flutter/lib/src/components/avatar/stream_avatar_stack.dart
  • packages/stream_core_flutter/lib/src/components/badge/stream_error_badge.dart
  • packages/stream_core_flutter/lib/src/components/badge/stream_retry_badge.dart
  • packages/stream_core_flutter/lib/src/components/buttons/stream_button.dart
  • packages/stream_core_flutter/lib/src/components/common/stream_loading_spinner.dart
  • packages/stream_core_flutter/lib/src/components/common/stream_visibility.dart
  • packages/stream_core_flutter/lib/src/components/controls/stream_video_play_indicator.dart
  • packages/stream_core_flutter/lib/src/theme/components/stream_avatar_theme.dart
  • packages/stream_core_flutter/lib/src/theme/components/stream_badge_count_theme.dart
  • packages/stream_core_flutter/lib/src/theme/components/stream_badge_notification_theme.dart
  • packages/stream_core_flutter/lib/src/theme/components/stream_checkbox_theme.dart
  • packages/stream_core_flutter/lib/src/theme/components/stream_emoji_button_theme.dart
  • packages/stream_core_flutter/lib/src/theme/components/stream_online_indicator_theme.dart
✅ Files skipped from review due to trivial changes (25)
  • packages/stream_core_flutter/lib/src/components/common/stream_visibility.dart
  • packages/stream_core/lib/src/logger/stream_logger.dart
  • packages/stream_core_flutter/lib/src/theme/components/stream_badge_notification_theme.dart
  • packages/stream_core_flutter/lib/src/theme/components/stream_checkbox_theme.dart
  • packages/stream_core_flutter/lib/src/components/avatar/stream_avatar_group.dart
  • apps/design_system_gallery/lib/components/message/stream_message_replies.dart
  • packages/stream_core_flutter/lib/src/components/avatar/stream_avatar_stack.dart
  • packages/stream_core_flutter/lib/src/components/accessories/stream_emoji.dart
  • apps/design_system_gallery/lib/components/message/stream_message_metadata.dart
  • packages/stream_core_flutter/lib/src/components/badge/stream_retry_badge.dart
  • packages/stream_core_flutter/lib/src/components/accessories/stream_file_type_icon.dart
  • packages/stream_core_flutter/lib/src/theme/components/stream_avatar_theme.dart
  • packages/stream_core/lib/src/user/user_token.dart
  • packages/stream_core/lib/src/query/sort.dart
  • apps/design_system_gallery/lib/components/message/stream_message_text.dart
  • apps/design_system_gallery/lib/components/accessories/stream_emoji.dart
  • apps/design_system_gallery/lib/components/controls/stream_emoji_chip.dart
  • apps/design_system_gallery/lib/components/message/stream_message_annotation.dart
  • apps/design_system_gallery/lib/components/badge/stream_image_source_badge.dart
  • packages/stream_core_flutter/lib/src/theme/components/stream_badge_count_theme.dart
  • packages/stream_core_flutter/lib/src/components/controls/stream_video_play_indicator.dart
  • packages/stream_core/lib/src/platform/current_platform.dart
  • packages/stream_core_flutter/lib/src/components/buttons/stream_button.dart
  • packages/stream_core_flutter/lib/src/components/badge/stream_error_badge.dart
  • packages/stream_core_flutter/lib/src/components/common/stream_loading_spinner.dart
🚧 Files skipped from review as they are similar to previous changes (1)
  • packages/stream_core_flutter/lib/src/theme/components/stream_online_indicator_theme.dart

📝 Walkthrough

Walkthrough

Adds StreamOnlineIndicatorSize.xxl (20px), maps .xxl to border width 2, documents the addition in the changelog, updates the design gallery demo to display 20px, and applies various enum-formatting cleanups plus a small null-aware spread tweak.

Changes

StreamOnlineIndicatorSize.xxl Addition

Layer / File(s) Summary
Enum definition and component styling
packages/stream_core_flutter/lib/src/theme/components/stream_online_indicator_theme.dart, packages/stream_core_flutter/lib/src/components/badge/stream_online_indicator.dart
StreamOnlineIndicatorSize.xxl is defined as xxl(20), and _borderWidthForSize now maps .xxl to border width 2.
Changelog and gallery demo
packages/stream_core_flutter/CHANGELOG.md, apps/design_system_gallery/lib/components/badge/stream_online_indicator.dart
Changelog adds an "Upcoming" bullet for StreamOnlineIndicatorSize.xxl (20px) and the design gallery _SizeDemo._getPixelSize adds a case for .xxl returning 20px.
Null-aware spread in reconnect handler
packages/stream_core/lib/src/ws/client/reconnect/connection_recovery_handler.dart
Constructor uses null-aware spread ...?...policies when building the internal _policies list instead of an explicit if (policies != null) check.
Formatting and enum terminator normalization
multiple apps/... and packages/... files
Several enum entries and small formatting/terminator placements were normalized across gallery and package files (no API or behavior changes).

🎯 2 (Simple) | ⏱️ ~10 minutes

Suggested reviewers:

  • renefloor

"A rabbit hops with glee, new size to see,
xxl at twenty, shining free.
From enum lines to demo bright,
a tiny change, a perfect sight.
🐇✨"

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 inconclusive)

Check name Status Explanation Resolution
Description check ❓ Inconclusive The PR description provides a clear summary of changes, references the Figma spec, and includes a test plan, but does not include the required CLA checkbox or formal sections specified in the repository's description template. Complete the description template by adding the CLA checkbox, Linear ticket reference, and clearly marking which test items are verified, while maintaining the existing informative content.
✅ Passed checks (4 passed)
Check name Status Explanation
Title check ✅ Passed The PR title directly and specifically describes the main change: adding StreamOnlineIndicatorSize.xxl (20px) for xxl avatars, which aligns with the primary objective across all modified files.
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 fix/avatar-2xl-online-indicator

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.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
xsahil03x and others added 2 commits June 2, 2026 17:21
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@codecov
Copy link
Copy Markdown

codecov Bot commented Jun 2, 2026

Codecov Report

❌ Patch coverage is 0% with 2 lines in your changes missing coverage. Please review.
✅ Project coverage is 34.03%. Comparing base (333f7b7) to head (c8f5c2c).
⚠️ Report is 1 commits behind head on main.

Files with missing lines Patch % Lines
.../client/reconnect/connection_recovery_handler.dart 0.00% 1 Missing ⚠️
.../src/components/badge/stream_online_indicator.dart 0.00% 1 Missing ⚠️
Additional details and impacted files
@@           Coverage Diff           @@
##             main     #116   +/-   ##
=======================================
  Coverage   34.03%   34.03%           
=======================================
  Files         172      172           
  Lines        6588     6588           
=======================================
  Hits         2242     2242           
  Misses       4346     4346           

☔ 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 xsahil03x merged commit 73ce512 into main Jun 2, 2026
8 of 10 checks passed
@xsahil03x xsahil03x deleted the fix/avatar-2xl-online-indicator branch June 2, 2026 15:32
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