From 5d2e96c6de8a9b0cd001c83b202a41050a123136 Mon Sep 17 00:00:00 2001 From: Daniel Williams Date: Thu, 22 Oct 2026 12:36:34 +0100 Subject: [PATCH 1/5] chore: update to React Native 0.88 and Re.Pack 5.4.3 canary Core upgrades: - React Native 0.87.1 -> 0.88.0, React 19.2.8 -> 19.3.1 and the matching @react-native/* toolchain packages - Re.Pack + repack-plugin-reanimated 5.4.2 -> 5.4.3-canary-20261022091009, rspack 2.2.6 -> 2.2.9, Module Federation 2.9.1 -> 2.9.2 Skia rename + charts: - @shopify/react-native-skia -> react-native-skia 2.15.1 (pinned below 3.x, which victory-native 43 does not support yet) - victory-native 42.0.1 -> 43.0.1 Edge-to-edge: - drop react-native-edge-to-edge; RN 0.88 owns edge-to-edge via edgeToEdgeEnabled, so AppTheme goes back to the AppCompat parent Fixes / chores: - resolve an Android font family in matchFont() so victory-native's chart axis labels are no longer invisible on Android - delete the react-native-bottom-tabs 1.4.0 patch and the @babel/plugin-syntax-typescript workaround, both obsolete now - alias expo-font to false in the auth container (vector-icons' web-only probe) - add @react-native/metro-config so align-deps keeps one react-native peer - bump the remaining compatible catalog deps (screens, gesture-handler, reanimated, safe-area-context, bottom-tabs, @legendapp/list, vector-icons 14, navigation, align-deps 5, bootsplash) --- README.md | 16 +- docs/MODULE_FEDERATION_DEMO_GUIDE.md | 16 +- packages/auth/package.json | 7 +- packages/auth/rspack.config.ts | 8 +- .../app/src/main/res/values/styles.xml | 2 +- packages/host/ios/Podfile.lock | 893 +++++--- .../host/ios/host.xcodeproj/project.pbxproj | 4 +- packages/host/package.json | 15 +- packages/sdk/lib/dependencies.json | 36 +- packages/sdk/lib/devDependencies.json | 31 +- packages/trading/package.json | 4 +- .../src/screens/AssetDetailsScreen.tsx | 31 +- packages/trading/tsconfig.json | 4 +- packages/wallet/package.json | 4 +- patches/react-native-bottom-tabs@1.4.0.patch | 23 - pnpm-lock.yaml | 1985 +++++++++-------- pnpm-workspace.yaml | 91 +- 17 files changed, 1652 insertions(+), 1518 deletions(-) delete mode 100644 patches/react-native-bottom-tabs@1.4.0.patch diff --git a/README.md b/README.md index 0c07561..ac65c52 100644 --- a/README.md +++ b/README.md @@ -81,15 +81,15 @@ flowchart LR | | | | ----------------- | --------------------------------------------------------------- | -| React Native | 0.87.1 | -| React | 19.2.8 | -| Re.Pack | 5.4.2 (Rspack-based) | -| Module Federation | V2 (2.9.1) | -| Animations | react-native-reanimated 4.7.0 + react-native-worklets 0.13.0 | -| Charts | victory-native 42.0.1 (Skia-based) | -| Lists | @legendapp/list 3.4.0 | +| React Native | 0.88.0 | +| React | 19.3.1 | +| Re.Pack | 5.4.3-canary-20261022091009 (Rspack-based) | +| Module Federation | V2 (2.9.2) | +| Animations | react-native-reanimated 4.7.1 + react-native-worklets 0.13.0 | +| Charts | victory-native 43.0.1 (react-native-skia 2.15.1) | +| Lists | @legendapp/list 3.6.0 | | Bottom sheet | @gorhom/bottom-sheet 5.2.14 | -| Navigation | @react-navigation/native 7.4.1 + react-native-bottom-tabs 1.4.0 | +| Navigation | @react-navigation/native 7.5.1 + react-native-bottom-tabs 1.5.0 | | React Compiler | babel-plugin-react-compiler 1.x | ## Structure diff --git a/docs/MODULE_FEDERATION_DEMO_GUIDE.md b/docs/MODULE_FEDERATION_DEMO_GUIDE.md index 379afa3..b8e9d23 100644 --- a/docs/MODULE_FEDERATION_DEMO_GUIDE.md +++ b/docs/MODULE_FEDERATION_DEMO_GUIDE.md @@ -337,13 +337,13 @@ Yes, there is a CDN to manage and bundle versioning to think about. The trade-of | | | | ----------------- | --------------------------------------------------------------- | -| React Native | 0.87.1 | -| React | 19.2.8 | -| Re.Pack | 5.4.2 (Rspack-based) | -| Module Federation | V2 (2.9.1) | -| Animations | react-native-reanimated 4.7.0 + react-native-worklets 0.13.0 | -| Charts | victory-native 42.0.1 (Skia-based) | -| Lists | @legendapp/list 3.4.0 | +| React Native | 0.88.0 | +| React | 19.3.1 | +| Re.Pack | 5.4.3-canary-20261022091009 (Rspack-based) | +| Module Federation | V2 (2.9.2) | +| Animations | react-native-reanimated 4.7.1 + react-native-worklets 0.13.0 | +| Charts | victory-native 43.0.1 (react-native-skia 2.15.1) | +| Lists | @legendapp/list 3.6.0 | | Bottom sheet | @gorhom/bottom-sheet 5.2.14 | -| Navigation | @react-navigation/native 7.4.1 + react-native-bottom-tabs 1.4.0 | +| Navigation | @react-navigation/native 7.5.1 + react-native-bottom-tabs 1.5.0 | | React Compiler | babel-plugin-react-compiler 1.x | diff --git a/packages/auth/package.json b/packages/auth/package.json index 171f152..233a8e0 100644 --- a/packages/auth/package.json +++ b/packages/auth/package.json @@ -22,28 +22,27 @@ "@react-navigation/native-stack": "catalog:", "@react-native-vector-icons/material-design-icons": "catalog:", "@react-native-vector-icons/get-image": "catalog:", - "@shopify/react-native-skia": "catalog:", "react": "catalog:", "react-native": "catalog:", "react-native-bottom-tabs": "catalog:", - "react-native-edge-to-edge": "catalog:", "react-native-gesture-handler": "catalog:", "react-native-paper": "catalog:", "react-native-reanimated": "catalog:", "react-native-safe-area-context": "catalog:", "react-native-screens": "catalog:", + "react-native-skia": "catalog:", "react-native-worklets": "catalog:", "victory-native": "catalog:" }, "devDependencies": { "@babel/core": "catalog:", - "@babel/plugin-syntax-typescript": "catalog:", "@babel/preset-env": "catalog:", "@babel/runtime": "catalog:", "@callstack/repack": "catalog:", "@react-native-community/cli": "catalog:", "@react-native/babel-preset": "catalog:", "@react-native/js-polyfills": "catalog:", + "@react-native/metro-config": "catalog:", "@react-native/eslint-config": "catalog:", "@react-native/typescript-config": "catalog:", "@rnx-kit/align-deps": "catalog:", @@ -68,7 +67,7 @@ "../sdk/preset" ], "requirements": [ - "react-native@0.87.1" + "react-native@0.88.0" ], "capabilities": [ "super-app" diff --git a/packages/auth/rspack.config.ts b/packages/auth/rspack.config.ts index e601820..ba44cb8 100644 --- a/packages/auth/rspack.config.ts +++ b/packages/auth/rspack.config.ts @@ -37,7 +37,13 @@ export default Repack.defineRspackConfig(({mode}) => { {module: /@gorhom[\\/]bottom-sheet[\\/].*BottomSheetFlashList/}, ], entry: {}, - resolve: {...Repack.getResolveOptions({enablePackageExports: true})}, + resolve: { + ...Repack.getResolveOptions({enablePackageExports: true}), + // Vector Icons' runtime optionally probes expo-font on web only, and the + // require is wrapped in a try/catch. Same guard as the host config: the + // app always bundles the native font, so the probe is dead code. + alias: {'expo-font': false}, + }, output: { uniqueName: 'sas-auth', }, diff --git a/packages/host/android/app/src/main/res/values/styles.xml b/packages/host/android/app/src/main/res/values/styles.xml index f095b42..1678885 100644 --- a/packages/host/android/app/src/main/res/values/styles.xml +++ b/packages/host/android/app/src/main/res/values/styles.xml @@ -1,6 +1,6 @@