fix: simplify iOS interactive snapshots#578
Merged
Merged
Conversation
|
c9ee8a2 to
862e775
Compare
862e775 to
ea714ca
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Simplifies iOS interactive snapshots so table/list rows are represented once, with row-level refs instead of repeated cell/container/button/text duplicates.
Adds a modular iOS snapshot presentation pipeline, shared tree helpers, extracted repeated-nav warning logic, and docs for iOS snapshot elements. Repeated-nav warnings now require overlapping duplicate rects, reducing false positives on ordinary vertical lists. Screenshot overlay refs now use the same interactive/compact presentation path.
Fixes the React Native collapsed
Open debugger to view warningsoverlay case found during Expensify verification:snapshot -inow warns agents to usereact-native dismiss-overlay, preserves the visible banner target instead of the full-screen wrapper, and dismisses via the narrow close affordance. Follow-up deeper RN overlay work is tracked in #577.Review hardening: switch rows now preserve promoted identifiers, unlabeled row-sized buttons no longer win row collapse by order, and iOS keyboard suppression derives its viewport only from Application/Window nodes instead of scoped roots.
Touched-file count: 26. Scope stayed within snapshot presentation, screenshot overlay refs, RN overlay handling, tests, and docs.
Validation
Ran focused snapshot/RN/output tests: 8 files, 101 tests passed.
Ran
pnpm check:quick,pnpm format, andpnpm buildsuccessfully.Manual iOS verification covered Settings snapshots and New Expensify Dev. In Expensify, before the fix
react-native dismiss-overlayreported no overlay for the visibleOpen debugger...banner; after the fixsnapshot -iemitted the RN overlay hint,react-native dismiss-overlaytapped the close target at(369, 813), and a follow-up compact snapshot confirmed the overlay was gone.