From 75ede459d208bde92734802cdbe7aeae0542f891 Mon Sep 17 00:00:00 2001 From: Jake Jarvis Date: Sun, 4 Oct 2026 13:47:13 -0400 Subject: [PATCH] =?UTF-8?q?chore:=20upgrade=20Expo=20SDK=2055=20=E2=86=92?= =?UTF-8?q?=2057=20and=20React=20Native=200.83=20=E2=86=92=200.86=20(#54)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/claude-code-review.yml | 48 - .github/workflows/claude.yml | 49 - .github/workflows/crowdin.yml | 8 +- .github/workflows/docker.yml | 14 +- .github/workflows/eas-build.yml | 6 +- .github/workflows/eas-submit.yml | 6 +- .github/workflows/test.yml | 6 +- .gitignore | 1 + .oxlintrc.json | 30 +- apps/native/app.json | 13 +- apps/native/package.json | 110 +- apps/native/src/app/(auth)/login.tsx | 4 +- .../src/app/(tabs)/(library)/_layout.tsx | 24 +- .../src/app/(tabs)/(settings)/index.tsx | 101 +- apps/native/src/app/_layout.tsx | 2 +- apps/native/src/app/person/[id].tsx | 2 +- apps/native/src/app/title/[id].tsx | 6 +- apps/native/src/components/auth-screen.tsx | 3 +- .../src/components/dashboard/stats-card.tsx | 43 +- apps/native/src/components/header-avatar.tsx | 126 +- .../src/components/library/sort-menu.tsx | 52 +- .../components/navigation/native-tab-bar.tsx | 2 +- .../src/components/navigation/tab-stack.tsx | 24 +- .../components/titles/season-accordion.tsx | 18 +- apps/native/src/lib/mmkv.ts | 28 +- apps/native/src/lib/orpc.ts | 4 +- apps/native/src/lib/server.ts | 19 +- apps/native/src/lib/theme.ts | 2 +- apps/native/src/lib/widgets.test.ts | 32 +- apps/native/tsconfig.json | 1 - apps/public-api/package.json | 6 +- apps/server/package.json | 4 +- apps/server/src/cron.ts | 8 +- apps/server/src/routes/auth.ts | 9 + apps/web/package.json | 42 +- apps/web/src/components/auth-form.tsx | 4 +- .../explore/filterable-title-row.tsx | 6 +- apps/web/src/components/route-error.tsx | 5 +- .../components/settings/account-section.tsx | 2 +- .../components/settings/imports-section.tsx | 19 +- apps/web/src/components/sofa-logo.tsx | 1 - apps/web/src/components/title-card.tsx | 2 +- .../web/src/components/titles/star-rating.tsx | 4 +- apps/web/src/components/tmdb-logo.tsx | 1 - apps/web/src/components/ui/button-group.tsx | 1 - apps/web/src/components/ui/field.tsx | 1 - apps/web/src/components/ui/input-group.tsx | 11 +- apps/web/src/components/ui/item.tsx | 1 - apps/web/src/components/ui/slider.tsx | 4 +- apps/web/src/components/ui/spinner.tsx | 1 - apps/web/src/hooks/use-mobile.ts | 5 +- apps/web/src/lib/auth/client.ts | 4 +- apps/web/src/routeTree.gen.ts | 244 +- apps/web/src/routes/__root.tsx | 15 +- bun.lock | 2845 ++++++++--------- docs/bun.lock | 732 +++-- .../account/account.integrations.create.mdx | 18 +- .../account/account.integrations.delete.mdx | 15 +- .../api/account/account.integrations.list.mdx | 18 +- .../account.integrations.regenerateToken.mdx | 18 +- .../docs/api/account/account.platforms.mdx | 15 +- .../docs/api/account/account.removeAvatar.mdx | 15 +- .../docs/api/account/account.updateName.mdx | 15 +- .../api/account/account.updatePlatforms.mdx | 15 +- .../docs/api/account/account.uploadAvatar.mdx | 18 +- .../docs/api/admin/admin.backups.create.mdx | 18 +- .../docs/api/admin/admin.backups.delete.mdx | 15 +- .../docs/api/admin/admin.backups.list.mdx | 15 +- .../docs/api/admin/admin.backups.restore.mdx | 18 +- .../docs/api/admin/admin.backups.schedule.mdx | 15 +- .../admin/admin.backups.updateSchedule.mdx | 20 +- .../docs/api/admin/admin.purgeImageCache.mdx | 18 +- .../api/admin/admin.purgeMetadataCache.mdx | 18 +- .../docs/api/admin/admin.settings.get.mdx | 20 +- .../docs/api/admin/admin.settings.update.mdx | 18 +- .../docs/api/admin/admin.systemHealth.mdx | 18 +- .../docs/api/admin/admin.triggerJob.mdx | 18 +- .../docs/api/discover/discover.browse.mdx | 18 +- .../docs/api/discover/discover.genres.mdx | 18 +- .../docs/api/discover/discover.platforms.mdx | 18 +- .../docs/api/discover/discover.popular.mdx | 18 +- .../api/discover/discover.recommendations.mdx | 18 +- .../docs/api/discover/discover.search.mdx | 18 +- .../docs/api/discover/discover.trending.mdx | 18 +- .../docs/api/imports/imports.cancelJob.mdx | 18 +- .../docs/api/imports/imports.createJob.mdx | 15 +- .../docs/api/imports/imports.getJob.mdx | 15 +- .../docs/api/imports/imports.jobEvents.mdx | 20 +- .../docs/api/imports/imports.parseFile.mdx | 20 +- .../docs/api/imports/imports.parsePayload.mdx | 18 +- .../api/library/library.continueWatching.mdx | 18 +- .../docs/api/library/library.genres.mdx | 18 +- .../content/docs/api/library/library.list.mdx | 18 +- .../docs/api/library/library.stats.mdx | 15 +- .../docs/api/library/library.upcoming.mdx | 18 +- docs/content/docs/api/people/people.get.mdx | 18 +- .../docs/api/system/system.publicInfo.mdx | 18 +- .../content/docs/api/system/system.status.mdx | 18 +- docs/content/docs/api/titles/titles.get.mdx | 18 +- .../docs/api/titles/titles.similar.mdx | 20 +- .../docs/api/tracking/tracking.rate.mdx | 15 +- .../docs/api/tracking/tracking.stats.mdx | 18 +- .../docs/api/tracking/tracking.unwatch.mdx | 20 +- .../api/tracking/tracking.updateStatus.mdx | 18 +- .../docs/api/tracking/tracking.userInfo.mdx | 18 +- .../docs/api/tracking/tracking.watch.mdx | 20 +- docs/content/docs/mobile-app.mdx | 9 +- docs/next.config.mjs | 2 +- docs/package.json | 50 +- docs/public/openapi.json | 113 +- docs/src/app/llms.txt/route.ts | 4 +- docs/src/components/api-page.client.tsx | 4 +- docs/src/components/api-page.tsx | 21 +- docs/src/components/mdx.tsx | 4 +- docs/src/lib/source.ts | 32 +- docs/tsconfig.json | 3 +- package.json | 87 +- packages/auth/package.json | 2 +- packages/auth/src/config.ts | 18 + packages/auth/src/server.ts | 25 +- packages/core/package.json | 5 +- packages/core/src/discovery.ts | 1 - packages/core/src/metadata.ts | 6 +- packages/core/src/system-health.ts | 6 +- packages/core/test/availability.test.ts | 4 +- packages/core/test/credits.test.ts | 8 +- packages/core/test/import-processor.test.ts | 10 +- packages/core/test/lists.test.ts | 5 +- packages/core/test/metadata-refresh.test.ts | 2 +- packages/core/test/person-detail.test.ts | 6 +- packages/core/test/thumbhash.test.ts | 2 +- packages/core/test/webhooks.test.ts | 12 +- packages/db/src/client.ts | 47 +- packages/i18n/src/po/ar.po | 152 - packages/i18n/src/po/de.po | 152 - packages/i18n/src/po/en.po | 151 - packages/i18n/src/po/es.po | 152 - packages/i18n/src/po/fr.po | 152 - packages/i18n/src/po/he.po | 152 - packages/i18n/src/po/it.po | 152 - packages/i18n/src/po/ja.po | 152 - packages/i18n/src/po/ko.po | 152 - packages/i18n/src/po/nl.po | 152 - packages/i18n/src/po/pt.po | 152 - packages/i18n/src/po/zh.po | 152 - packages/logger/package.json | 4 +- packages/test/package.json | 4 +- packages/test/src/db.ts | 2 +- turbo.json | 1 + 149 files changed, 3193 insertions(+), 4768 deletions(-) delete mode 100644 .github/workflows/claude-code-review.yml delete mode 100644 .github/workflows/claude.yml diff --git a/.github/workflows/claude-code-review.yml b/.github/workflows/claude-code-review.yml deleted file mode 100644 index 2b06373..0000000 --- a/.github/workflows/claude-code-review.yml +++ /dev/null @@ -1,48 +0,0 @@ -name: Claude Code Review - -on: - pull_request: - types: [opened, synchronize, ready_for_review, reopened] - # Optional: Only run on specific file changes - # paths: - # - "src/**/*.ts" - # - "src/**/*.tsx" - # - "src/**/*.js" - # - "src/**/*.jsx" - -jobs: - claude-review: - # Skip for bot PRs and fork PRs due to OIDC token limitations in pull_request_target - # Fork PRs fail because the actor in OIDC context is the fork contributor (read-only) - if: | - github.event.pull_request.draft == false && - github.event.pull_request.user.type != 'Bot' && - github.event.pull_request.head.repo.full_name == github.repository - - runs-on: ubuntu-latest - permissions: - contents: read - pull-requests: read - issues: read - id-token: write - - steps: - - name: Checkout repository - uses: actions/checkout@v4 - with: - fetch-depth: 1 - - - name: Run Claude Code Review - id: claude-review - uses: anthropics/claude-code-action@v1 - with: - claude_code_oauth_token: ${{ secrets.CLAUDE_CODE_OAUTH_TOKEN }} - plugin_marketplaces: "https://github.com/anthropics/claude-code.git" - plugins: "code-review@claude-code-plugins" - prompt: "/code-review:code-review ${{ github.repository }}/pull/${{ github.event.pull_request.number }}" - # See https://github.com/anthropics/claude-code-action/blob/main/docs/usage.md - # or https://code.claude.com/docs/en/cli-reference for available options - track_progress: true - claude_args: | - --model 'claude-opus-4-6' - --allowedTools 'mcp__github_inline_comment__create_inline_comment,Bash(gh pr comment:*),Bash(gh pr diff:*),Bash(gh pr view:*)' diff --git a/.github/workflows/claude.yml b/.github/workflows/claude.yml deleted file mode 100644 index 08e2eba..0000000 --- a/.github/workflows/claude.yml +++ /dev/null @@ -1,49 +0,0 @@ -name: Claude Code - -on: - issue_comment: - types: [created] - pull_request_review_comment: - types: [created] - issues: - types: [opened, assigned] - pull_request_review: - types: [submitted] - -jobs: - claude: - if: | - (github.event_name == 'issue_comment' && contains(github.event.comment.body, '@claude')) || - (github.event_name == 'pull_request_review_comment' && contains(github.event.comment.body, '@claude')) || - (github.event_name == 'pull_request_review' && contains(github.event.review.body, '@claude')) || - (github.event_name == 'issues' && (contains(github.event.issue.body, '@claude') || contains(github.event.issue.title, '@claude'))) - runs-on: ubuntu-latest - permissions: - contents: read - pull-requests: read - issues: read - id-token: write - actions: read # Required for Claude to read CI results on PRs - steps: - - name: Checkout repository - uses: actions/checkout@v4 - with: - fetch-depth: 1 - - - name: Run Claude Code - id: claude - uses: anthropics/claude-code-action@v1 - with: - claude_code_oauth_token: ${{ secrets.CLAUDE_CODE_OAUTH_TOKEN }} - - # This is an optional setting that allows Claude to read CI results on PRs - additional_permissions: | - actions: read - - # Optional: Give a custom prompt to Claude. If this is not specified, Claude will perform the instructions specified in the comment that tagged it. - # prompt: 'Update the pull request description to include a summary of changes.' - - # Optional: Add claude_args to customize behavior and configuration - # See https://github.com/anthropics/claude-code-action/blob/main/docs/usage.md - # or https://code.claude.com/docs/en/cli-reference for available options - claude_args: "--model claude-opus-4-6" diff --git a/.github/workflows/crowdin.yml b/.github/workflows/crowdin.yml index 0b6c29f..f422b3a 100644 --- a/.github/workflows/crowdin.yml +++ b/.github/workflows/crowdin.yml @@ -19,10 +19,10 @@ jobs: runs-on: ubuntu-latest if: github.event_name == 'push' steps: - - uses: actions/checkout@v6 + - uses: actions/checkout@v7 - name: Upload sources to Crowdin - uses: crowdin/github-action@v2 + uses: crowdin/github-action@v3 with: upload_sources: true upload_translations: false @@ -37,10 +37,10 @@ jobs: runs-on: ubuntu-latest if: github.event_name == 'workflow_dispatch' || github.event_name == 'schedule' steps: - - uses: actions/checkout@v6 + - uses: actions/checkout@v7 - name: Download translations from Crowdin - uses: crowdin/github-action@v2 + uses: crowdin/github-action@v3 with: upload_sources: false upload_translations: false diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml index 18dbef1..94b7d79 100644 --- a/.github/workflows/docker.yml +++ b/.github/workflows/docker.yml @@ -30,23 +30,23 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout - uses: actions/checkout@v4 + uses: actions/checkout@v7 - name: Set up QEMU - uses: docker/setup-qemu-action@v3 + uses: docker/setup-qemu-action@v4 - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v3 + uses: docker/setup-buildx-action@v4 - name: Login to GHCR - uses: docker/login-action@v3 + uses: docker/login-action@v4 with: registry: ghcr.io username: ${{ github.repository_owner }} password: ${{ secrets.GITHUB_TOKEN }} - name: Login to Docker Hub - uses: docker/login-action@v3 + uses: docker/login-action@v4 with: username: ${{ vars.DOCKERHUB_USERNAME }} password: ${{ secrets.DOCKERHUB_TOKEN }} @@ -57,7 +57,7 @@ jobs: - name: Docker metadata id: meta - uses: docker/metadata-action@v5 + uses: docker/metadata-action@v6 with: images: | ${{ env.GHCR_IMAGE }} @@ -70,7 +70,7 @@ jobs: type=sha,prefix=sha- - name: Build and push - uses: docker/build-push-action@v6 + uses: docker/build-push-action@v7 with: context: . platforms: linux/amd64,linux/arm64 diff --git a/.github/workflows/eas-build.yml b/.github/workflows/eas-build.yml index e4d170d..3dbbc05 100644 --- a/.github/workflows/eas-build.yml +++ b/.github/workflows/eas-build.yml @@ -30,16 +30,16 @@ jobs: name: EAS Build runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v7 - - uses: actions/setup-node@v4 + - uses: actions/setup-node@v7 with: node-version: 22 - uses: oven-sh/setup-bun@v2 - name: Setup EAS - uses: expo/expo-github-action@v8 + uses: expo/expo-github-action@v9 with: eas-version: latest token: ${{ secrets.EXPO_TOKEN }} diff --git a/.github/workflows/eas-submit.yml b/.github/workflows/eas-submit.yml index 4a18388..21b6827 100644 --- a/.github/workflows/eas-submit.yml +++ b/.github/workflows/eas-submit.yml @@ -17,16 +17,16 @@ jobs: name: EAS Submit runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v7 - - uses: actions/setup-node@v4 + - uses: actions/setup-node@v7 with: node-version: 22 - uses: oven-sh/setup-bun@v2 - name: Setup EAS - uses: expo/expo-github-action@v8 + uses: expo/expo-github-action@v9 with: eas-version: latest token: ${{ secrets.EXPO_TOKEN }} diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index de79f9a..5dd8361 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -10,10 +10,10 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout - uses: actions/checkout@v4 + uses: actions/checkout@v7 - name: Setup Node - uses: actions/setup-node@v4 + uses: actions/setup-node@v7 with: node-version: 24 @@ -43,6 +43,6 @@ jobs: run: bunx turbo run test -- --coverage - name: Upload coverage reports to Codecov - uses: codecov/codecov-action@v5 + uses: codecov/codecov-action@v7 with: token: ${{ secrets.CODECOV_TOKEN }} diff --git a/.gitignore b/.gitignore index 5341e15..389d7ae 100644 --- a/.gitignore +++ b/.gitignore @@ -8,6 +8,7 @@ node_modules # Build outputs dist build +.build *.tsbuildinfo .tanstack diff --git a/.oxlintrc.json b/.oxlintrc.json index 967e0ca..ab453a1 100644 --- a/.oxlintrc.json +++ b/.oxlintrc.json @@ -1,7 +1,6 @@ { "$schema": "./node_modules/oxlint/configuration_schema.json", "plugins": ["oxc", "eslint", "typescript", "react", "import", "unicorn", "vitest", "jsx-a11y"], - "jsPlugins": ["@e18e/eslint-plugin"], "env": { "builtin": true }, @@ -15,30 +14,27 @@ "react/style-prop-object": "off", "import/no-unassigned-import": "off", "import/no-named-as-default-member": "off", + "no-underscore-dangle": ["warn", { "allow": ["__APP_VERSION__", "__GIT_COMMIT_SHA__"] }], "oxc/no-barrel-file": ["warn", { "threshold": 0 }], "unicorn/no-array-sort": "off", "unicorn/consistent-function-scoping": "off", + "no-unused-vars": [ + "error", + { + "argsIgnorePattern": "^_", + "varsIgnorePattern": "^_", + "caughtErrorsIgnorePattern": "^_", + "destructuredArrayIgnorePattern": "^_", + "ignoreRestSiblings": true + } + ], "no-new": "off", "no-await-in-loop": "off", "react/no-array-index-key": "off", "react/jsx-no-useless-fragment": "error", "react/rules-of-hooks": "error", - "e18e/prefer-array-at": "error", - "e18e/prefer-array-fill": "error", - "e18e/prefer-array-from-map": "error", - "e18e/prefer-array-some": "error", - "e18e/prefer-array-to-reversed": "error", - "e18e/prefer-array-to-sorted": "error", - "e18e/prefer-array-to-spliced": "error", - "e18e/prefer-date-now": "error", - "e18e/prefer-includes": "error", - "e18e/prefer-nullish-coalescing": "error", - "e18e/prefer-object-has-own": "error", - "e18e/prefer-regex-test": "error", - "e18e/prefer-spread-syntax": "off", - "e18e/prefer-static-regex": "error", - "e18e/prefer-timer-args": "error", - "e18e/prefer-url-canparse": "error" + "react/preserve-manual-memoization": "off", + "react/capitalized-calls": "off" }, "ignorePatterns": ["node_modules", "dist", "build", "docs", "**/routeTree.gen.ts"] } diff --git a/apps/native/app.json b/apps/native/app.json index c02d3ad..f4bd09e 100644 --- a/apps/native/app.json +++ b/apps/native/app.json @@ -10,6 +10,7 @@ "config": { "usesNonExemptEncryption": false }, + "deploymentTarget": "16.4", "icon": "./assets/images/sofa.icon", "bundleIdentifier": "com.jakejarvis.sofa", "appleTeamId": "B5ZWKBCUTU", @@ -65,14 +66,6 @@ "package": "com.jakejarvis.sofa" }, "plugins": [ - [ - "expo-build-properties", - { - "ios": { - "deploymentTarget": "16.2" - } - } - ], "expo-router", "expo-secure-store", [ @@ -177,7 +170,9 @@ "organization": "jarvis-0a", "project": "sofa-native" } - ] + ], + "expo-image", + "expo-status-bar" ], "experiments": { "typedRoutes": true, diff --git a/apps/native/package.json b/apps/native/package.json index 825ddda..f14d3ce 100644 --- a/apps/native/package.json +++ b/apps/native/package.json @@ -17,76 +17,70 @@ }, "dependencies": { "@better-auth/expo": "catalog:", - "@expo/metro-runtime": "55.0.6", - "@expo/ui": "55.0.5", - "@formatjs/intl-datetimeformat": "7.3.1", - "@formatjs/intl-getcanonicallocales": "3.2.2", - "@formatjs/intl-locale": "5.3.1", - "@formatjs/intl-numberformat": "9.3.1", - "@formatjs/intl-pluralrules": "6.3.1", - "@formatjs/intl-relativetimeformat": "12.3.1", + "@expo/material-symbols": "0.1.1", + "@expo/metro-runtime": "~57.0.16", + "@expo/ui": "~57.0.21", + "@formatjs/intl-datetimeformat": "7.8.0", + "@formatjs/intl-getcanonicallocales": "3.2.12", + "@formatjs/intl-locale": "5.3.12", + "@formatjs/intl-numberformat": "9.4.3", + "@formatjs/intl-pluralrules": "6.3.15", + "@formatjs/intl-relativetimeformat": "12.3.15", "@lingui/core": "catalog:", "@lingui/react": "catalog:", "@orpc/client": "catalog:", "@orpc/contract": "catalog:", "@orpc/tanstack-query": "catalog:", - "@react-native-menu/menu": "2.0.0", - "@react-navigation/elements": "2.9.11", - "@react-navigation/native": "7.1.34", - "@sentry/react-native": "8.6.0", + "@sentry/react-native": "~8.29.0", "@shopify/flash-list": "2.0.2", "@sofa/api": "workspace:*", "@sofa/i18n": "workspace:*", - "@tabler/icons-react-native": "3.40.0", - "@tanstack/query-async-storage-persister": "5.95.2", + "@tabler/icons-react-native": "3.48.0", + "@tanstack/query-async-storage-persister": "5.104.1", "@tanstack/react-form": "catalog:", "@tanstack/react-query": "catalog:", - "@tanstack/react-query-persist-client": "5.95.2", + "@tanstack/react-query-persist-client": "5.104.1", "better-auth": "catalog:", "burnt": "0.13.0", - "expo": "55.0.8", - "expo-application": "55.0.10", - "expo-build-properties": "55.0.10", - "expo-clipboard": "55.0.9", - "expo-constants": "55.0.9", - "expo-dev-client": "55.0.18", - "expo-device": "55.0.10", - "expo-font": "55.0.4", - "expo-glass-effect": "55.0.8", - "expo-haptics": "55.0.9", - "expo-image": "55.0.6", - "expo-image-picker": "55.0.13", - "expo-linear-gradient": "55.0.9", - "expo-linking": "55.0.8", - "expo-localization": "55.0.9", - "expo-network": "55.0.9", - "expo-router": "55.0.7", - "expo-secure-store": "55.0.9", - "expo-splash-screen": "55.0.12", - "expo-status-bar": "55.0.4", - "expo-system-ui": "55.0.10", - "expo-updates": "55.0.15", - "expo-web-browser": "55.0.10", - "expo-widgets": "55.0.7", - "posthog-react-native": "4.37.6", + "expo": "~57.0.26", + "expo-application": "~57.0.3", + "expo-clipboard": "~57.0.2", + "expo-constants": "~57.0.20", + "expo-dev-client": "~57.0.19", + "expo-device": "~57.0.2", + "expo-font": "~57.0.4", + "expo-glass-effect": "~57.0.4", + "expo-haptics": "~57.0.3", + "expo-image": "~57.0.5", + "expo-image-picker": "~57.0.20", + "expo-linear-gradient": "~57.0.2", + "expo-linking": "~57.0.11", + "expo-localization": "~57.0.2", + "expo-network": "~57.0.2", + "expo-router": "~57.0.24", + "expo-secure-store": "~57.0.4", + "expo-splash-screen": "~57.0.9", + "expo-status-bar": "~57.0.1", + "expo-system-ui": "~57.0.4", + "expo-updates": "~57.0.24", + "expo-web-browser": "~57.0.3", + "expo-widgets": "~57.0.22", + "posthog-react-native": "4.78.4", "react": "catalog:", "react-dom": "catalog:", - "react-native": "0.83.2", - "react-native-gesture-handler": "2.30.0", - "react-native-ios-context-menu": "3.2.0", - "react-native-ios-utilities": "5.2.0", - "react-native-keyboard-controller": "1.20.7", - "react-native-mmkv": "4.2.0", - "react-native-nitro-modules": "0.35.0", - "react-native-reanimated": "4.2.1", - "react-native-safe-area-context": "5.6.2", - "react-native-screens": "4.23.0", - "react-native-svg": "15.15.3", - "react-native-worklets": "0.7.2", + "react-native": "0.86.3", + "react-native-gesture-handler": "~2.32.0", + "react-native-keyboard-controller": "1.21.9", + "react-native-mmkv": "~4.3.2", + "react-native-nitro-modules": "~0.37.1", + "react-native-reanimated": "4.5.1", + "react-native-safe-area-context": "~5.7.0", + "react-native-screens": "~4.26.0", + "react-native-svg": "15.15.4", + "react-native-worklets": "0.10.1", "tailwind-merge": "catalog:", "tailwindcss": "catalog:", - "uniwind": "1.6.1", - "zeego": "3.0.6", + "uniwind": "1.12.1", "zod": "catalog:" }, "devDependencies": { @@ -95,5 +89,13 @@ "@types/node": "catalog:", "@types/react": "catalog:", "typescript": "catalog:" + }, + "expo": { + "install": { + "exclude": [ + "@sentry/react-native", + "typescript" + ] + } } } diff --git a/apps/native/src/app/(auth)/login.tsx b/apps/native/src/app/(auth)/login.tsx index c8f0a1f..3d9bdae 100644 --- a/apps/native/src/app/(auth)/login.tsx +++ b/apps/native/src/app/(auth)/login.tsx @@ -99,8 +99,8 @@ export default function LoginScreen() {