Bump to Expo SDK 54

This commit is contained in:
ponas committed 2026-07-26 02:35:21 +02:00
1 parent 8f84c49bf3
commit f732efcc65
5 files changed
+2442 -2270

No files matched your search

+27
View File
@@ -58,3 +58,30 @@ history, code and binary blobs related to React Native functionality filtered ou
- `react-native-simple-radio-button` (react-native-ui-lib already ships RadioButton/RadioGroup)
- migrate ESLint 8 + airbnb config (both EOL) to ESLint 9 flat config or
[eslint-config-expo](https://docs.expo.dev/guides/using-eslint/)
- follow-ups from the [Expo SDK 54 upgrade](https://expo.dev/changelog/sdk-54):
- decide on Sentry: `@sentry/react-native` is installed but never initialized (see the
commented-out init in `index.ts`), and its config plugin (now applied via `app.json`)
warns about missing `organization`/`project` at every build — either finish the setup
or drop the dependency
- verify Android UI on a device/emulator: edge-to-edge is now always enabled and can no
longer be disabled
- try the [React Compiler](https://docs.expo.dev/guides/react-compiler/) (enabled by
default in new SDK 54 projects, opt-in for existing ones via
`"experiments": { "reactCompiler": true }` in `app.json`)
- add an iOS 26 liquid glass icon: a `.icon` file made with Apple's Icon Composer,
referenced from `ios.icon` (old icon remains as fallback for older iOS); optionally
play with [`expo-glass-effect`](https://docs.expo.dev/versions/latest/sdk/glass-effect/)
- consider [remote build caching](https://docs.expo.dev/guides/cache-builds-remotely/)
(now stable) so `npm run android`/`ios` can download a cached build instead of
compiling locally when the native fingerprint is unchanged
- add [Apple Pay](https://docs.stripe.com/apple-pay?platform=react-native) for membership
payments: either natively in the payment sheet (register the merchant ID
`merchant.no.neuf.chateau` + Apple Pay certificate, set `merchantIdentifier` in the
`@stripe/stripe-react-native` plugin config, pass `applePay` to `initPaymentSheet`,
new iOS build), or for free by moving payment to a Stripe-hosted Checkout page in the
browser (needs a backend Checkout Session endpoint and a return deep link)
- add [Google Pay](https://docs.stripe.com/google-pay?platform=react-native) for
membership payments: either natively in the payment sheet (`enableGooglePay: true` in
the plugin config, pass `googlePay` to `initPaymentSheet`, request production access in
the Google Pay & Wallet Console, new Android build), or for free via the same
Stripe-hosted Checkout page as for Apple Pay
+15 -3
View File
@@ -12,12 +12,16 @@
"backgroundColor": "#E5E2D7"
},
"scheme": "no-neuf-chateau",
"assetBundlePatterns": ["**/*"],
"assetBundlePatterns": [
"**/*"
],
"ios": {
"supportsTablet": true,
"bundleIdentifier": "no.neuf.chateau",
"infoPlist": {
"UIBackgroundModes": ["remote-notification"]
"UIBackgroundModes": [
"remote-notification"
]
}
},
"android": {
@@ -26,19 +30,27 @@
"foregroundImage": "./assets/adaptive-icon.png",
"backgroundColor": "#CD96AB"
},
"permissions": ["NOTIFICATIONS"]
"permissions": [
"NOTIFICATIONS"
]
},
"web": {
"favicon": "./assets/favicon.png"
},
"plugins": [
"expo-asset",
"expo-font",
[
"expo-notifications",
{
"icon": "./assets/icon.png",
"color": "#E5E2D7"
}
],
"@sentry/react-native",
[
"@stripe/stripe-react-native",
{}
]
],
"extra": {
+1 -1
View File
@@ -1,2 +1,2 @@
[tools]
node = "22"
node = "24"
+2376 -2244
View File
File diff suppressed because it is too large. Load diff
+23 -22
View File
@@ -16,34 +16,36 @@
},
"dependencies": {
"@apollo/client": "^3.14.1",
"@expo/vector-icons": "^14.1.0",
"@react-native-async-storage/async-storage": "2.1.2",
"@expo/vector-icons": "^15.0.3",
"@react-native-async-storage/async-storage": "2.2.0",
"@react-navigation/bottom-tabs": "^7.4.7",
"@react-navigation/native": "^7.1.17",
"@react-navigation/native-stack": "^7.3.26",
"@sentry/react-native": "~6.14.0",
"@stripe/stripe-react-native": "0.45.0",
"@sentry/react-native": "~7.2.0",
"@stripe/stripe-react-native": "0.50.3",
"email-validator": "^2.0.4",
"expo": "53.0.22",
"expo-asset": "~11.1.7",
"expo-constants": "~17.1.7",
"expo-dev-client": "~5.0.20",
"expo-notifications": "~0.31.4",
"expo-status-bar": "~2.2.3",
"expo": "^54.0.0",
"expo-asset": "~12.0.13",
"expo-constants": "~18.0.13",
"expo-dev-client": "~6.0.21",
"expo-font": "~14.0.12",
"expo-notifications": "~0.32.17",
"expo-status-bar": "~3.0.9",
"graphql": "^16.9.0",
"moment": "^2.30.1",
"react": "19.0.0",
"react": "19.1.0",
"react-hook-form": "^7.52.1",
"react-native": "0.79.5",
"react-native": "0.81.5",
"react-native-confetti": "^0.1.0",
"react-native-gesture-handler": "~2.24.0",
"react-native-reanimated": "~3.17.4",
"react-native-safe-area-context": "5.4.0",
"react-native-screens": "~4.11.1",
"react-native-gesture-handler": "~2.28.0",
"react-native-reanimated": "~4.1.1",
"react-native-safe-area-context": "~5.6.0",
"react-native-screens": "~4.16.0",
"react-native-simple-radio-button": "^2.7.4",
"react-native-svg": "15.11.2",
"react-native-svg-transformer": "^1.5.0",
"react-native-svg": "15.12.1",
"react-native-svg-transformer": "^1.5.3",
"react-native-ui-lib": "^7.26.2",
"react-native-worklets": "0.5.1",
"react-redux": "^9.2.0",
"redux": "^5.0.1",
"redux-persist": "^6.0.0",
@@ -67,11 +69,10 @@
"eslint-plugin-prettier": "^5.1.3",
"eslint-plugin-react": "^7.34.3",
"eslint-plugin-react-hooks": "^4.6.2",
"expo-dev-client": "~5.0.20",
"jest": "^29.7.0",
"jest-expo": "~53.0.10",
"jest-expo": "~54.0.17",
"prettier": "^3.3.3",
"react-test-renderer": "19.0.0",
"typescript": "~5.8.3"
"react-test-renderer": "19.1.0",
"typescript": "~5.9.2"
}
}