Skip to content

fix: emoji picker scroll does not reach the end#7312

Open
OtavioStasiak wants to merge 11 commits into
developfrom
fix.emoji-picker-issue
Open

fix: emoji picker scroll does not reach the end#7312
OtavioStasiak wants to merge 11 commits into
developfrom
fix.emoji-picker-issue

Conversation

@OtavioStasiak
Copy link
Copy Markdown
Contributor

@OtavioStasiak OtavioStasiak commented May 7, 2026

Proposed changes

Fix an issue in the emoji picker where users couldn’t scroll all the way down or tap the last row of emojis on devices with smaller screen heights.

Issue(s)

https://rocketchat.atlassian.net/browse/SUP-1030

How to test or reproduce

  • Open the app on android;
  • Open emoji picker (from reactions);
  • Scroll down;

Screenshots

Before After
Simulator Screenshot - iPhone SE (3rd generation) - 2026-05-14 at 14 50 25 Simulator Screenshot - iPhone SE (3rd generation) - 2026-05-14 at 14 49 42

Types of changes

  • Bugfix (non-breaking change which fixes an issue)
  • Improvement (non-breaking change which improves a current function)
  • New feature (non-breaking change which adds functionality)
  • Documentation update (if none of the other choices apply)

Checklist

  • I have read the CONTRIBUTING doc
  • I have signed the CLA
  • Lint and unit tests pass locally with my changes
  • I have added tests that prove my fix is effective or that my feature works (if applicable)
  • I have added necessary documentation (if applicable)
  • Any dependent changes have been merged and published in downstream modules

Further comments

Summary by CodeRabbit

  • Tests

    • Added a regression test that opens message actions, launches the emoji picker, scrolls to the last emoji, and adds a reaction.
  • Bug Fixes

    • Emoji picker bottom-sheet spacing now uses safe-area insets for consistent spacing across devices.
  • Chores

    • Minor iOS project and privacy manifest formatting updates.

Review Change Stack

@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai Bot commented May 7, 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

Platform-agnostic bottom-sheet padding for the emoji grid, a Maestro regression test that scrolls to and selects the last emoji, and minor non-semantic EOF/format tweaks to iOS plist and Xcode project files.

Changes

Emoji Picker Accessibility

Layer / File(s) Summary
Bottom Sheet Breathing Room Constants
app/containers/EmojiPicker/EmojiCategory.tsx
Introduces BOTTOM_SHEET_ROW_GAP and MIN_BOTTOM_SHEET_BREATHING_ROOM constants defining minimum visible spacing for the emoji grid when shown in a bottom sheet.
Bottom Sheet Padding Logic
app/containers/EmojiPicker/EmojiCategory.tsx
Replaces platform-conditional Android padding with Math.max(0, MIN_BOTTOM_SHEET_BREATHING_ROOM - bottom) using safe-area bottom inset when bottomSheet is enabled.
Regression Test: select last emoji
.maestro/tests/room/room.yaml
Adds Maestro steps that open the reaction picker, switch to the emoji tab, repeatedly swipe until emoji-pregnant_woman is visible, tap it, and assert message-reaction-:pregnant_woman: appears.

iOS EOF / formatting housekeeping

Layer / File(s) Summary
Privacy plist EOF change
ios/PrivacyInfo.xcprivacy
Non-semantic trailing change to the closing </plist> line placement.
Xcode project EOF change
ios/RocketChatRN.xcodeproj/project.pbxproj
Non-semantic end-of-file closing brace/newline placement update at EOF.

Sequence Diagram(s)

sequenceDiagram
  participant User
  participant Message
  participant ActionSheet
  participant EmojiPicker
  participant EmojiGrid
  User->>Message: long-press message
  Message->>ActionSheet: open actions
  ActionSheet->>EmojiPicker: tap add reaction
  EmojiPicker->>EmojiGrid: switch to emoji tab
  EmojiGrid->>EmojiGrid: swipe up until emoji-pregnant_woman visible
  User->>EmojiGrid: tap emoji-pregnant_woman
  EmojiGrid->>Message: display message-reaction-:pregnant_woman:
Loading

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

Suggested labels

type: test

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed The title directly describes the main fix: addressing the emoji picker scroll issue that prevents reaching the end. This aligns perfectly with the PR's primary objective.
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.
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.

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

Warning

Review ran into problems

🔥 Problems

Errors were encountered while retrieving linked issues.

Errors (1)
  • SUP-1030: Request failed with status code 401

Tip

💬 Introducing Slack Agent: The best way for teams to turn conversations into code.

Slack Agent is built on CodeRabbit's deep understanding of your code, so your team can collaborate across the entire SDLC without losing context.

  • Generate code and open pull requests
  • Plan features and break down work
  • Investigate incidents and troubleshoot customer tickets together
  • Automate recurring tasks and respond to alerts with triggers
  • Summarize progress and report instantly

Built for teams:

  • Shared memory across your entire org—no repeating context
  • Per-thread sandboxes to safely plan and execute work
  • Governance built-in—scoped access, auditability, and budget controls

One agent for your entire SDLC. Right inside Slack.

👉 Get started


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.

@OtavioStasiak OtavioStasiak had a problem deploying to experimental_ios_build May 7, 2026 22:23 — with GitHub Actions Error
@OtavioStasiak OtavioStasiak had a problem deploying to official_android_build May 7, 2026 22:23 — with GitHub Actions Error
@OtavioStasiak OtavioStasiak had a problem deploying to experimental_android_build May 7, 2026 22:23 — with GitHub Actions Error
@OtavioStasiak OtavioStasiak temporarily deployed to approve_e2e_testing May 7, 2026 22:49 — with GitHub Actions Inactive
@OtavioStasiak OtavioStasiak had a problem deploying to experimental_android_build May 7, 2026 22:52 — with GitHub Actions Error
@OtavioStasiak OtavioStasiak had a problem deploying to experimental_ios_build May 7, 2026 22:52 — with GitHub Actions Error
@OtavioStasiak OtavioStasiak had a problem deploying to official_android_build May 7, 2026 22:52 — with GitHub Actions Error
@OtavioStasiak OtavioStasiak had a problem deploying to official_android_build May 8, 2026 13:49 — with GitHub Actions Error
@OtavioStasiak OtavioStasiak had a problem deploying to experimental_android_build May 8, 2026 13:49 — with GitHub Actions Error
@OtavioStasiak OtavioStasiak had a problem deploying to experimental_ios_build May 8, 2026 13:49 — with GitHub Actions Error
@OtavioStasiak OtavioStasiak had a problem deploying to experimental_android_build May 8, 2026 22:11 — with GitHub Actions Error
@OtavioStasiak OtavioStasiak had a problem deploying to experimental_ios_build May 8, 2026 22:11 — with GitHub Actions Error
@OtavioStasiak OtavioStasiak had a problem deploying to official_android_build May 8, 2026 22:11 — with GitHub Actions Error
@OtavioStasiak OtavioStasiak had a problem deploying to experimental_android_build May 11, 2026 15:37 — with GitHub Actions Error
@OtavioStasiak OtavioStasiak had a problem deploying to experimental_ios_build May 11, 2026 15:37 — with GitHub Actions Error
@OtavioStasiak OtavioStasiak had a problem deploying to official_android_build May 11, 2026 15:37 — with GitHub Actions Error
@OtavioStasiak OtavioStasiak had a problem deploying to experimental_android_build May 11, 2026 20:08 — with GitHub Actions Error
@OtavioStasiak OtavioStasiak had a problem deploying to official_android_build May 11, 2026 20:08 — with GitHub Actions Error
@OtavioStasiak OtavioStasiak had a problem deploying to experimental_ios_build May 11, 2026 20:08 — with GitHub Actions Error
@OtavioStasiak OtavioStasiak had a problem deploying to experimental_ios_build May 13, 2026 20:58 — with GitHub Actions Error
Comment thread .maestro/tests/room/room.yaml Outdated
Comment thread app/containers/EmojiPicker/EmojiCategory.tsx Outdated
Comment thread ios/RocketChatRN.xcodeproj/project.pbxproj
@OtavioStasiak OtavioStasiak temporarily deployed to approve_e2e_testing May 14, 2026 15:52 — with GitHub Actions Inactive
@OtavioStasiak OtavioStasiak had a problem deploying to official_android_build May 14, 2026 15:56 — with GitHub Actions Error
@OtavioStasiak OtavioStasiak had a problem deploying to experimental_android_build May 14, 2026 15:56 — with GitHub Actions Error
@OtavioStasiak OtavioStasiak had a problem deploying to experimental_ios_build May 14, 2026 15:56 — with GitHub Actions Error
Copy link
Copy Markdown
Member

@diegolmello diegolmello left a comment

Choose a reason for hiding this comment

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

Missing e2e tests passing.

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

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants