chore(pos-app): upgrade to Expo SDK 56#543
Merged
Merged
Conversation
Upgrade pos-app from Expo SDK 55 to SDK 56 (React Native 0.83 -> 0.85, React 19.2.0 -> 19.2.3) and align all Expo-managed dependencies via `expo install --fix`. expo-doctor passes 21/21. Fix SDK 56 breaking changes: migrate react-navigation theming imports to expo-router (no longer bundled), import requireNativeModule from `expo` in the HCE module (expo-modules-core no longer hoisted), switch the Jest preset to @react-native/jest-preset and its moved mock path, and bump react-test-renderer to match React. Resolve new eslint-config-expo@56 react-hooks errors (refs/set-state-in-effect/ incompatible-library) in amount, pin-modal, framed-modal and the modal portal context. Fix a dark-mode white flash during iOS native-stack transitions by giving the root view and navigation theme a bg-primary background. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
|
Claude finished @ignaciosantise's task in 2m 37s —— View job PR Review: chore(pos-app): upgrade to Expo SDK 56
✅ No issues found The upgrade is well-executed. All SDK 56 breaking changes are correctly handled:
|
There was a problem hiding this comment.
Pull request overview
Upgrades dapps/pos-app to Expo SDK 56 / React Native 0.85.3, including required breaking-change updates (router/navigation, native module loading, Jest preset/mocks) and UI theming tweaks to avoid iOS dark-mode transition flashes.
Changes:
- Bump Expo/React Native/React (and aligned Expo-managed packages) to SDK 56.
- Update native module loading (
requireNativeModule) and Jest preset/mock wiring for SDK 56. - Fix several lint-driven React hook/state patterns and adjust navigation/root backgrounds for iOS transitions.
Reviewed changes
Copilot reviewed 11 out of 12 changed files in this pull request and generated 4 comments.
Show a summary per file
| File | Description |
|---|---|
| dapps/pos-app/package.json | Updates Expo/RN/React versions, tooling deps, and renames formatting scripts. |
| dapps/pos-app/modules/hce/index.ts | Switches requireNativeModule import to expo and removes direct expo-modules-core dependency. |
| dapps/pos-app/jest.setup.js | Updates RN mock to use @react-native/jest-preset’s moved mock path. |
| dapps/pos-app/jest.config.js | Switches Jest preset to @react-native/jest-preset. |
| dapps/pos-app/components/pin-modal.tsx | Adjusts state-reset behavior tied to modal visibility/error to satisfy new lint rules. |
| dapps/pos-app/components/modal-portal-context.tsx | Refactors portal context from ref-based to element-based container passing. |
| dapps/pos-app/components/framed-modal.web.tsx | Updates portal container usage and render/mount logic around open/close animations. |
| dapps/pos-app/components/desktop-frame-wrapper.web.tsx | Uses callback ref to store the modal portal container element in state. |
| dapps/pos-app/app/amount.tsx | Replaces watch() with useWatch() for hook/lint compatibility. |
| dapps/pos-app/app/_layout.tsx | Moves nav theming imports to expo-router and sets background colors to avoid iOS transition flashes. |
| dapps/pos-app/app.json | Adds expo-status-bar to the plugins list. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Address PR review: the repo pins dependencies exactly (no ^/~), but `expo install --fix` introduced range specifiers. Strip ranges from all bumped Expo-managed packages, gesture-handler, safe-area-context, eslint-config-expo and typescript, pinning to the installed versions, and reconcile the lockfile. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
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
Upgrades
pos-appfrom Expo SDK 55 → 56 (React Native 0.83.2 → 0.85.3, React 19.2.0 → 19.2.3), aligning all Expo-managed deps viaexpo install --fix(expo-doctorpasses 21/21). It also fixes the SDK 56 breaking changes, the neweslint-config-expo@56react-hooks lint errors, and a dark-mode white flash during iOS native-stack transitions.Changes
expo-router(no longer bundled);requireNativeModuleimported fromexpoin the HCE module (expo-modules-coreno longer hoisted); Jest preset switched to@react-native/jest-preset+ its moved mock path;react-test-rendererbumped to match React.react-hookserrors (refs,set-state-in-effect,incompatible-library) inamount,pin-modal,framed-modal, and the modal portal context (ref→state) — all 225 tests still pass.bg-primarybackground so iOS transitions no longer flash the white window underneath.flowchart LR A[Expo SDK 55<br/>RN 0.83] --> B[expo install --fix] B --> C[Expo SDK 56<br/>RN 0.85 / React 19.2.3] C --> D[Fix breaking changes<br/>router / HCE / jest] C --> E[Fix eslint-config-expo@56<br/>react-hooks errors] C --> F[Fix iOS dark-mode<br/>transition flash] D --> G[expo-doctor 21/21 ✓<br/>225 tests ✓ · lint ✓] E --> G F --> G🤖 Generated with Claude Code