feat: action sheet bottom blank space#7390
Conversation
|
Note Reviews pausedIt 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 Use the following commands to manage reviews:
Use the checkboxes below for quick actions:
WalkthroughThree view components ( ChangesSafe-area inset bottom spacing cleanup and validation
Estimated code review effort🎯 2 (Simple) | ⏱️ ~13 minutes Suggested reviewers
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. Warning Review ran into problems🔥 ProblemsErrors were encountered while retrieving linked issues. Errors (1)
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. Comment |
Add a local "run & compare" command and a GitHub Actions flow for the
action-sheet visual regression, both sourcing baselines from the reference
repo (OtavioStasiak/Rocket.Chat.ReactNative.VisualRegressionTest).
- scripts/owl-compare.sh + pnpm owl:compare:{ios,android}: pull the prints
for the current OWL_VARIANT into .owl/baseline/<platform>/ (the only path
owl reads), run owl test, open the report.
- CI: orchestrator visual-regression.yml fans out build->run reusable
workflows over 4 legs (iPhone 16 Pro, iPhone SE 3rd gen, Android portrait,
Android landscape). Build once per platform, run downloads the app artifact
to the path owl installs from.
- owl.config.json: android packageName chat.rocket.android.
- .owl/.gitignore: baselines/reference are pulled, never committed here.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Mirror e2e's e2e-hold: a `hold` job on the protected `approve_e2e_testing` environment that build-ios and build-android depend on, so the macOS + emulator legs only run after a reviewer approves. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- Android: build.gradle reads a BugsnagAPIKey gradle property into a manifest placeholder; provide a dummy value (Owl builds are throwaway, never uploaded) so config evaluation doesn't fail with "unknown property 'BugsnagAPIKey'". - iOS: the runner doesn't pre-create named simulators for the selected Xcode, so "iPhone 16 Pro"/"iPhone SE (3rd generation)" were Invalid device. Resolve by name and create on the latest available iOS runtime if missing, boot by UDID. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
The reference-repo prints were captured locally and can never match a CI render (owl is pixel-exact; cross-machine font hinting, a 1px sheet offset and the status-bar clock format all differ). Goldens must be captured by CI. In update_baseline mode each run leg now uploads owl-baseline-<variant> with just the correctly-named PNGs, so seeding the reference repo is a drag-and-drop. Documented the CI-golden flow in tests/owl/README.md. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- iOS: pin the simulator runtime (OWL_IOS_RUNTIME); create the device on exactly that runtime and fail loudly if absent, so baselines can't silently drift on a runner image bump. Force 24-hour time so owl's "9:41" status-bar stamp renders identically regardless of region (09:41 vs 9:41 AM). - Android: owl doesn't manage the status bar, so enter SystemUI demo mode to freeze the clock/battery/network and set 24-hour time before running. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Owl captures the full device screen and its matcher passes only at zero pixel diff, so the live status-bar clock/battery/signal made every baseline fail. Patch the matcher to zero the top OWL_MASK_TOP px of both images before pixelmatch (default 0 = no-op) and set a per-variant mask height from the owl test, so the top bar is excluded while the app below is still verified. Source-agnostic for future Maestro screenshots. Also drop default React imports in the owl host files to satisfy lint. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
Android Build Available Rocket.Chat 4.74.0.109163 Internal App Sharing: https://play.google.com/apps/test/RQQ8k09hlnQ/ahAO29uNQKaDNy9H8ZFrjQHcMPu_Hn2DnLQxnoBmCLTxlheve21yC6JopIwQrq-Jm4NxBCfs7d3yJHFPovjzuRTJ-8 |
Proposed changes
Removes the extra blank space at the bottom of action-sheet content. These views
were adding marginBottom: insets.bottom on top of the safe-area inset the action
sheet already applies, producing a double gap:
— drop the redundant marginBottom (and the now-unused useSafeAreaInsets).
so the inset sits inside the content.
Issue(s)
https://rocketchat.atlassian.net/browse/NATIVE-1254
How to test or reproduce
the servers list sheet.
(e.g. Images) to open its picker sheet.
Alert) to open its picker sheet.
Screenshots
Types of changes
Checklist
Further comments
Summary by CodeRabbit
Refactor
marginBottomand adjusting how bottom spacing is applied for consistent layout).Tests