Skip to content

React Native 0.77 compatibility + E2E invitation hook#25

Closed
albertoleon7794 wants to merge 5 commits into
mainfrom
upgrade/phase2-rn77
Closed

React Native 0.77 compatibility + E2E invitation hook#25
albertoleon7794 wants to merge 5 commits into
mainfrom
upgrade/phase2-rn77

Conversation

@albertoleon7794

Copy link
Copy Markdown
Collaborator

Summary

Companion to berkmancenter/keyring-wallet#13 (upgrade Phases 1+2 — tracked in berkmancenter/keyring-wallet#8 and #9). Three commits:

  • 1718d331 — expose the invitation URL and a paste-URL fallback on the Scan screen (dev/E2E only) so the Appium two-wallet VRC exchange can run on emulators without camera-to-camera QR scanning.
  • 363b325a — compatibility fixes for React Native 0.77 host apps: BackHandler subscription API, Kotlin 2.0 null-safety in react-native-attestation, and related build updates.
  • e94c45b2 — fix the RN 0.77 / safe-area-context 5.x layout regression that pushed bottom controls (Done/Continue) off-screen in CredentialOfferAccept, ProofRequestAccept, CameraDisclosureModal, MobileVerifierLoading, and CommonRemoveModal.

The keyring-wallet upgrade/phase2-rn77 branch pins its submodule to the head of this branch.

Note: Phase 3 (berkmancenter/keyring-wallet#10) will rebuild this fork from upstream bifold-wallet v3.0.16 content, so this PR mainly preserves the reviewable record of the RN 0.77 work; the changes will be re-ported as part of the Phase 3 delta.

Test plan

  • core jest: 134 suites / 1242 tests green (includes VRC conformance tests)
  • Two-device E2E VRC exchange green on Android and iOS with the keyring-wallet host app

Made with Cursor

All jobs in main.yaml are commented out, causing instant failures on
every push to main. Quality checks already run in quality.yaml; remove
automatic push/PR triggers and keep the file as manual-only reference.

Signed-off-by: Alberto L <aleon@law.harvard.edu>
DEV-only hidden text element publishes the OOB invitation URL to the
accessibility tree so Appium can read it and paste it into the peer
wallet (avoids camera-based QR scanning on emulators). Also show the
paste-URL header button in camera-scan mode so the flow is reachable
without tabs.

Signed-off-by: Alberto L <aleon@law.harvard.edu>
- Replace removed BackHandler.removeEventListener with the
  addEventListener subscription's remove() (RN 0.77 API) in
  Onboarding, ProofDetails and ProofRequesting.
- Loosen react-native ecosystem peerDependencies (gesture-handler,
  safe-area-context, screens, svg) to >= ranges so core can be
  consumed by apps on newer RN; devDependencies stay pinned.
- Kotlin 2.0 null-safety fix in react-native-attestation
  certificate chain parsing.
- Commit QRScanner snapshot for the E2E InvitationUrl test hook
  (missed in the previous commit).

Signed-off-by: Alberto L <aleon@law.harvard.edu>
…gression

With react-native 0.77 / safe-area-context 5.x, a ScrollView styled with
height:'100%' inside a SafeAreaView that lacks flex:1 grows past the screen
and pushes the controls container (marginTop:'auto') out of view, making
Continue/Done buttons unreachable on both platforms.

Apply flex:1 to the SafeAreaView wrapper and the ScrollView in the affected
modal-style screens: CredentialOfferAccept, ProofRequestAccept,
CameraDisclosureModal, MobileVerifierLoading, CommonRemoveModal.
Snapshots updated accordingly; also check in the regenerated
react-native-attestation gradle lockfile.

Signed-off-by: Alberto L <aleon@law.harvard.edu>
The RN 0.77 compatibility commit widened @bifold/core peerDependencies
(react-native-gesture-handler, react-native-safe-area-context,
react-native-screens, react-native-svg from ~x.y.z to >=x.y.z) but did not
regenerate the lockfile, so `yarn install --immutable` fails in CI with
YN0028.

Signed-off-by: Alberto L <aleon@law.harvard.edu>
@albertoleon7794

Copy link
Copy Markdown
Collaborator Author

Superseded by the consolidated upgrade PR #31, which folds the bifold 3.x / credo-ts 0.6 upgrade and the eddsa-rdfc-2022 Data Integrity work into a single review branch. Closing without merge — see the consolidated PR.

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant