Skip to content

Commit 5c9375c

Browse files
chore: bump expo to v54, tailwind to v4 (#1413)
Co-authored-by: Julius Marminge <julius0216@outlook.com> Co-authored-by: Vanja Popovic <VaniaPopovic@users.noreply.github.com> Co-authored-by: Vanja Popovic <vaniapopovic@icloud.com>
1 parent 0ab77a8 commit 5c9375c

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

42 files changed

+3642
-2914
lines changed

.vscode/settings.json

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,12 +14,13 @@
1414
{ "pattern": "packages/*/" },
1515
{ "pattern": "tooling/*/" }
1616
],
17+
"files.associations": {
18+
"*.css": "tailwindcss"
19+
},
1720
"prettier.ignorePath": ".gitignore",
1821
"tailwindCSS.classFunctions": ["cva", "cx", "cn"],
19-
"tailwindCSS.experimental.configFile": "./tooling/tailwind/web.ts",
2022
"typescript.enablePromptUseWorkspaceTsdk": true,
2123
"typescript.preferences.autoImportFileExcludePatterns": [
22-
"zod/dist/types/index.d.ts", // Force auto-imports to v4
2324
"next/router.d.ts",
2425
"next/dist/client/router.d.ts"
2526
],

README.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -37,15 +37,15 @@ It uses [Turborepo](https://turborepo.com) and contains:
3737
└─ Recommended extensions and settings for VSCode users
3838
apps
3939
├─ expo
40-
│ ├─ Expo SDK 53
41-
│ ├─ React Native using React 19
40+
│ ├─ Expo SDK 54
41+
│ ├─ React Native 0.81 using React 19
4242
│ ├─ Navigation using Expo Router
43-
│ ├─ Tailwind using NativeWind
43+
│ ├─ Tailwind CSS v4 using NativeWind v5
4444
│ └─ Typesafe API calls using tRPC
4545
└─ next.js
4646
├─ Next.js 15
4747
├─ React 19
48-
├─ Tailwind CSS
48+
├─ Tailwind CSS v4
4949
└─ E2E Typesafe API Server & Client
5050
packages
5151
├─ api
@@ -62,7 +62,7 @@ tooling
6262
├─ prettier
6363
│ └─ shared prettier configuration
6464
├─ tailwind
65-
│ └─ shared tailwind configuration
65+
│ └─ shared tailwind theme and configuration
6666
└─ typescript
6767
└─ shared tsconfig you can extend from
6868
```

apps/expo/.prettierignore

Lines changed: 0 additions & 1 deletion
This file was deleted.

apps/expo/app.config.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,8 @@ export default ({ config }: ConfigContext): ExpoConfig => ({
3838
experiments: {
3939
tsconfigPaths: true,
4040
typedRoutes: true,
41+
reactCanary: true,
42+
reactCompiler: true,
4143
},
4244
plugins: [
4345
"expo-router",

apps/expo/babel.config.js

Lines changed: 0 additions & 11 deletions
This file was deleted.

apps/expo/metro.config.js

Lines changed: 9 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -2,26 +2,15 @@
22
const path = require("node:path");
33
const { getDefaultConfig } = require("expo/metro-config");
44
const { FileStore } = require("metro-cache");
5-
const { withNativeWind } = require("nativewind/metro");
5+
const { withNativewind } = require("nativewind/metro");
66

7-
module.exports = withTurborepoManagedCache(
8-
withNativeWind(getDefaultConfig(__dirname), {
9-
input: "./src/styles.css",
10-
configPath: "./tailwind.config.ts",
7+
const config = getDefaultConfig(__dirname);
8+
9+
config.cacheStores = [
10+
new FileStore({
11+
root: path.join(__dirname, "node_modules", ".cache", "metro"),
1112
}),
12-
);
13+
];
1314

14-
/**
15-
* Move the Metro cache to the `.cache/metro` folder.
16-
* If you have any environment variables, you can configure Turborepo to invalidate it when needed.
17-
*
18-
* @see https://turborepo.com/docs/reference/configuration#env
19-
* @param {import('expo/metro-config').MetroConfig} config
20-
* @returns {import('expo/metro-config').MetroConfig}
21-
*/
22-
function withTurborepoManagedCache(config) {
23-
config.cacheStores = [
24-
new FileStore({ root: path.join(__dirname, ".cache/metro") }),
25-
];
26-
return config;
27-
}
15+
/** @type {import('expo/metro-config').MetroConfig} */
16+
module.exports = withNativewind(config);

apps/expo/nativewind-env.d.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
1-
/// <reference types="nativewind/types" />
1+
/// <reference types="react-native-css/types" />
22

3-
// NOTE: This file should not be edited and should be committed with your source code. It is generated by NativeWind.
3+
// NOTE: This file should not be edited and should be committed with your source code. It is generated by react-native-css. If you need to move or disable this file, please see the documentation.

apps/expo/package.json

Lines changed: 22 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -14,32 +14,34 @@
1414
"typecheck": "tsc --noEmit"
1515
},
1616
"dependencies": {
17-
"@better-auth/expo": "1.3.8",
18-
"@expo/metro-config": "^0.20.14",
19-
"@legendapp/list": "^2.0.2",
17+
"@better-auth/expo": "1.3.27",
18+
"@expo/metro-config": "~54.0.6",
19+
"@legendapp/list": "^2.0.11",
2020
"@tanstack/react-query": "catalog:",
2121
"@trpc/client": "catalog:",
2222
"@trpc/server": "catalog:",
2323
"@trpc/tanstack-react-query": "catalog:",
24-
"better-auth": "1.3.8",
25-
"expo": "53.0.9",
26-
"expo-constants": "17.1.6",
27-
"expo-dev-client": "5.1.8",
28-
"expo-linking": "7.1.5",
29-
"expo-router": "5.0.7",
30-
"expo-secure-store": "14.2.3",
31-
"expo-splash-screen": "0.30.8",
32-
"expo-status-bar": "2.2.3",
33-
"expo-system-ui": "~5.0.7",
34-
"expo-web-browser": "14.1.6",
35-
"nativewind": "~4.1.23",
24+
"better-auth": "1.3.27",
25+
"expo": "~54.0.13",
26+
"expo-constants": "~18.0.9",
27+
"expo-dev-client": "~6.0.15",
28+
"expo-linking": "~8.0.8",
29+
"expo-router": "~6.0.12",
30+
"expo-secure-store": "~15.0.7",
31+
"expo-splash-screen": "~31.0.10",
32+
"expo-status-bar": "~3.0.8",
33+
"expo-system-ui": "~6.0.7",
34+
"expo-web-browser": "~15.0.8",
35+
"nativewind": "5.0.0-preview.1",
3636
"react": "catalog:react19",
3737
"react-dom": "catalog:react19",
38-
"react-native": "0.79.2",
39-
"react-native-gesture-handler": "~2.25.0",
40-
"react-native-reanimated": "~3.18.0",
41-
"react-native-safe-area-context": "~5.4.1",
42-
"react-native-screens": "~4.11.1",
38+
"react-native": "~0.81.4",
39+
"react-native-css": "3.0.0",
40+
"react-native-gesture-handler": "~2.28.0",
41+
"react-native-reanimated": "~4.1.3",
42+
"react-native-safe-area-context": "~5.6.1",
43+
"react-native-screens": "~4.16.0",
44+
"react-native-worklets": "~0.5.1",
4345
"superjson": "2.2.2"
4446
},
4547
"devDependencies": {
@@ -48,10 +50,6 @@
4850
"@acme/prettier-config": "workspace:*",
4951
"@acme/tailwind-config": "workspace:*",
5052
"@acme/tsconfig": "workspace:*",
51-
"@babel/core": "^7.28.4",
52-
"@babel/preset-env": "^7.28.3",
53-
"@babel/runtime": "^7.28.4",
54-
"@types/babel__core": "^7.20.5",
5553
"@types/react": "catalog:react19",
5654
"eslint": "catalog:",
5755
"prettier": "catalog:",

apps/expo/postcss.config.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
module.exports = require("@acme/tailwind-config/postcss-config");

apps/expo/src/app/_layout.tsx

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
1+
import { useColorScheme } from "react-native";
12
import { Stack } from "expo-router";
23
import { StatusBar } from "expo-status-bar";
34
import { QueryClientProvider } from "@tanstack/react-query";
4-
import { useColorScheme } from "nativewind";
55

66
import { queryClient } from "~/utils/api";
77

@@ -10,8 +10,7 @@ import "../styles.css";
1010
// This is the main layout of the app
1111
// It wraps your pages with the providers they need
1212
export default function RootLayout() {
13-
const { colorScheme } = useColorScheme();
14-
13+
const colorScheme = useColorScheme();
1514
return (
1615
<QueryClientProvider client={queryClient}>
1716
{/*
@@ -21,7 +20,7 @@ export default function RootLayout() {
2120
<Stack
2221
screenOptions={{
2322
headerStyle: {
24-
backgroundColor: "#f472b6",
23+
backgroundColor: "#c03484",
2524
},
2625
contentStyle: {
2726
backgroundColor: colorScheme == "dark" ? "#09090B" : "#FFFFFF",

0 commit comments

Comments
 (0)