Skip to content

Update message menu so long messages extend behind options#6248

Open
gpunto wants to merge 3 commits intov7from
redesign/message-menu-fix
Open

Update message menu so long messages extend behind options#6248
gpunto wants to merge 3 commits intov7from
redesign/message-menu-fix

Conversation

@gpunto
Copy link
Contributor

@gpunto gpunto commented Mar 13, 2026

Goal

The message menu was a scrollable column where the options were always at the bottom. Instead, the options should always show, and long messages should extend behind them.

While working on this, I also realized the max message width wasn't up to date with the designs, so I also changed that.

Implementation

Update the modifiers applied to the message in the message menu

🎨 UI Changes

Before After
Screenshot_20260313_135701 Screenshot_20260313_135619

Testing

Check the message menu on long messages

Summary by CodeRabbit

  • Bug Fixes

    • Revised selected message menu layout behavior to eliminate unnecessary vertical scrolling
  • Style

    • Expanded message container width for improved display of polls and messages

@gpunto gpunto added the pr:bug Bug fix label Mar 13, 2026
@github-actions
Copy link
Contributor

github-actions bot commented Mar 13, 2026

PR checklist ✅

All required conditions are satisfied:

  • Title length is OK (or ignored by label).
  • At least one pr: label exists.
  • Sections ### Goal, ### Implementation, and ### Testing are filled.

🎉 Great job! This PR is ready for review.

@sonarqubecloud
Copy link

@github-actions
Copy link
Contributor

SDK Size Comparison 📏

SDK Before After Difference Status
stream-chat-android-client 5.25 MB 5.70 MB 0.45 MB 🟡
stream-chat-android-ui-components 10.60 MB 11.00 MB 0.40 MB 🟡
stream-chat-android-compose 12.81 MB 12.04 MB -0.78 MB 🚀

@gpunto gpunto marked this pull request as ready for review March 13, 2026 13:07
@gpunto gpunto requested a review from a team as a code owner March 13, 2026 13:07
@coderabbitai
Copy link

coderabbitai bot commented Mar 13, 2026

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro

Run ID: bdcd82e1-efae-499a-aeca-13ec1f8bc6e8

📥 Commits

Reviewing files that changed from the base of the PR and between 8c51a2d and ab16cb1.

⛔ Files ignored due to path filters (11)
  • stream-chat-android-compose/src/test/snapshots/images/io.getstream.chat.android.compose.ui.messages_MessageListTest_loaded_bottom_aligned_messages.png is excluded by !**/*.png
  • stream-chat-android-compose/src/test/snapshots/images/io.getstream.chat.android.compose.ui.messages_MessageListTest_loaded_messages.png is excluded by !**/*.png
  • stream-chat-android-compose/src/test/snapshots/images/io.getstream.chat.android.compose.ui.messages_MessageListTest_loaded_messages_in_dark_mode.png is excluded by !**/*.png
  • stream-chat-android-compose/src/test/snapshots/images/io.getstream.chat.android.compose.ui.messages_MessageListTest_loaded_top_aligned_messages.png is excluded by !**/*.png
  • stream-chat-android-compose/src/test/snapshots/images/io.getstream.chat.android.compose.ui.messages_MessageListTest_loading_older_messages.png is excluded by !**/*.png
  • stream-chat-android-compose/src/test/snapshots/images/io.getstream.chat.android.compose.ui.messages_MessageListTest_scroll_to_bottom_button.png is excluded by !**/*.png
  • stream-chat-android-compose/src/test/snapshots/images/io.getstream.chat.android.compose.ui.messages_MessageListTest_scroll_to_bottom_button_in_dark_mode.png is excluded by !**/*.png
  • stream-chat-android-compose/src/test/snapshots/images/io.getstream.chat.android.compose.ui.messages_SelectedMessageMenuTest_my_message.png is excluded by !**/*.png
  • stream-chat-android-compose/src/test/snapshots/images/io.getstream.chat.android.compose.ui.messages_SelectedMessageMenuTest_my_message_in_dark_mode.png is excluded by !**/*.png
  • stream-chat-android-compose/src/test/snapshots/images/io.getstream.chat.android.compose.ui.messages_SelectedMessageMenuTest_their_message.png is excluded by !**/*.png
  • stream-chat-android-compose/src/test/snapshots/images/io.getstream.chat.android.compose.ui.messages_SelectedMessageMenuTest_their_message_in_dark_mode.png is excluded by !**/*.png
📒 Files selected for processing (2)
  • stream-chat-android-compose/src/main/java/io/getstream/chat/android/compose/ui/components/selectedmessage/SelectedMessageMenu.kt
  • stream-chat-android-compose/src/main/java/io/getstream/chat/android/compose/ui/messages/list/MessageContainer.kt

Walkthrough

The changes adjust the layout behavior and dimensions of message-related UI components. The SelectedMessageMenu transitions from a scrollable column layout to a non-scrollable, height-wrapping layout with adjusted alignment. The MessageContainer increases its maximum width from 250.dp to 264.dp, providing additional horizontal space for message content.

Changes

Cohort / File(s) Summary
SelectedMessageMenu Layout Restructuring
stream-chat-android-compose/.../SelectedMessageMenu.kt
Replaces verticalScroll modifier with wrapContentHeight for non-scrollable behavior. Adds weight(1f, fill = false) to Box and changes MessageContainer modifier from clipToBounds to wrapContentHeight(align = Alignment.Top, unbounded = true). Adjusts imports accordingly.
MessageContainer Dimension Adjustment
stream-chat-android-compose/.../MessageContainer.kt
Increases maximum width of message content container from 250.dp to 264.dp, affecting the layout bounds for poll and regular messages.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~8 minutes

Poem

🐰 A menu stripped of scrolling chains,
Wider now, the message reigns,
Layout flows without a bound,
Pixels dance—no scroll around!

🚥 Pre-merge checks | ✅ 2 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 50.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (2 passed)
Check name Status Explanation
Title check ✅ Passed The title accurately describes the main change: updating the message menu so long messages extend behind options instead of pushing them down.
Description check ✅ Passed The description includes Goal, Implementation, UI Changes with before/after screenshots, and Testing sections. However, it lacks the Contributor Checklist and other optional but expected sections from the template.

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

✨ Finishing Touches
  • 📝 Generate docstrings (stacked PR)
  • 📝 Generate docstrings (commit on current branch)
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch redesign/message-menu-fix
📝 Coding Plan
  • Generate coding plan for human review comments

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.

Tip

CodeRabbit can generate a title for your PR based on the changes with custom instructions.

Set the reviews.auto_title_instructions setting to generate a title for your PR based on the changes in the PR with custom instructions.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

pr:bug Bug fix

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant