Skip to content

Fix native RNTester tabs in Buck builds - #58900

Closed
javache wants to merge 1 commit into
react:mainfrom
javache:export-D123770213
Closed

javache wants to merge 1 commit into
react:mainfrom
javache:export-D123770213

Conversation

@javache

@javache javache commented Oct 7, 2026

Copy link
Copy Markdown
Contributor

Summary:
Internal Buck builds did not link the RNTesterTabsIOS component, so React Native rendered the component as an unimplemented placeholder. Link the component and its Fabric plugin into the RNTester Apple target.

Keep compact bottom-tab content aligned with the previous RNTester chrome so existing example screenshot bounds remain stable.

Changelog:
[Internal]

Differential Revision: D123770213

Summary:
Internal Buck builds did not link the RNTesterTabsIOS component, so React Native rendered the component as an unimplemented placeholder. Link the component and its Fabric plugin into the RNTester Apple target.

Keep compact bottom-tab content aligned with the previous RNTester chrome so existing example screenshot bounds remain stable.

Changelog:
[Internal]

Differential Revision: D123770213
@meta-cla meta-cla Bot added the CLA Signed This label is managed by the Facebook bot. Authors need to sign the CLA before a PR can be reviewed. label Oct 7, 2026
@facebook-github-tools facebook-github-tools Bot added p: Facebook Partner: Facebook Partner labels Oct 7, 2026
@meta-codesync

meta-codesync Bot commented Oct 7, 2026

Copy link
Copy Markdown

@javache has exported this pull request. If you are a Meta employee, you can view the originating Diff in D123770213.

@meta-codesync meta-codesync Bot closed this in 8d8b8f3 Oct 7, 2026
@meta-codesync meta-codesync Bot added the Merged This PR has been merged. label Oct 7, 2026
@meta-codesync

meta-codesync Bot commented Oct 7, 2026

Copy link
Copy Markdown

This pull request has been merged in 8d8b8f3.

cipolleschi added a commit that referenced this pull request Oct 7, 2026
#58900 capped the bottom content inset at 65pt for bottom tab bars, but
the tab bar is 83pt tall on current iPhones. The bottom 18pt of every
RNTester screen sat under the tab bar, so taps there switched tabs.
flatlist-append-maintainvisible taps "Reset" at y=874 and landed on the
Playground tab.

Use the full bottom safe-area inset instead.
meta-codesync Bot pushed a commit that referenced this pull request Oct 7, 2026
Summary:
The iOS RNTester E2E job fails on every PR. `flatlist-append-maintainvisible.yml` fails with `Element not found: Id matching regex: scroll-offset-display`. It started with #58900 (8d8b8f3).

#58900 caps the bottom content inset at 65pt when the tab bar is along the bottom (`insets.bottom = MIN(insets.bottom, LegacyBottomInset)`), but the tab bar is 83pt tall on current iPhones. The bottom 18pt of every RNTester screen sits under the tab bar. A tap there switches tabs instead of reaching the content.

That's what breaks the flow. The maintainVisibleContentPosition example pins its controls to the bottom of the screen. Its last row ("Clear (empty list)" / "Reset", y=866–882 on an iPhone 17 Pro Max) straddles the tab bar's top edge (y=873). Maestro taps "Reset" at its center, (326, 874), and that lands on the **Playground** tab. The next lookup of `scroll-offset-display` then fails because RNTester is on a different screen.

This PR changes the `MIN` to `MAX`, matching the top inset's `MAX(insets.top, LegacyTopInset)`. The bottom inset is now never smaller than the system inset, so content stays clear of the tab bar. On devices whose inset is under 65pt, it still keeps the legacy 65pt bounds that #58900 wanted.

Trade-off: on devices where the tab bar is taller than 65pt (83pt on current iPhones), examples are now 18pt shorter than #58900 intended. That's the space the tab bar covers.

## Changelog:

[INTERNAL] - Keep RNTester content clear of the iOS tab bar

Pull Request resolved: #58933

Test Plan:
On an iPhone 17 Pro Max simulator (iOS 26.5):
- With the build from `main`, ran `maestro test packages/rn-tester/.maestro/flatlist-append-maintainvisible.yml --debug-output <dir>` (Maestro 2.6.1, same as CI). It failed after `Tap on "Reset"`. The debug output shows the tap on `Reset` (bounds `[222,866][430,882]`) and the failure screenshot shows the Playground tab.
- Built RNTester Debug using the full system bottom inset and read the layout with `idb ui describe-all`. The Clear/Reset row moved from y=--sanitized--

Reviewed By: cortinico

Differential Revision: D123941583

Pulled By: cipolleschi

fbshipit-source-id: b4cbfbb763edad19fe167f0295a55064b7c6786c
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

CLA Signed This label is managed by the Facebook bot. Authors need to sign the CLA before a PR can be reviewed. Merged This PR has been merged. meta-exported p: Facebook Partner: Facebook Partner

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant