Skip to content

Use Expo Router#399

Open
manuthecoder wants to merge 101 commits into
mainfrom
use-expo-router
Open

Use Expo Router#399
manuthecoder wants to merge 101 commits into
mainfrom
use-expo-router

Conversation

@manuthecoder

Copy link
Copy Markdown

Rewrites HCB Mobile from React Native navigation → Expo Router for better code quality

Copilot AI review requested due to automatic review settings February 15, 2026 08:29
@manuthecoder manuthecoder requested a review from a team as a code owner February 15, 2026 08:29
@manuthecoder manuthecoder marked this pull request as draft February 15, 2026 08:30

This comment was marked as spam.

Move App.tsx to app/_layout.tsx and rename the component to Layout
Replace NavigationContainer with expo-router Stack and update imports
Move login page into app/ routing and adjust tsconfig include paths
Add a minimal test page and fix asset/import path references
Introduce events index and event detail pages with transactions UI
and Tap-to-Pay / mock transaction support. Add events Stack layout.

Refactor app layout: move AppContent into expo-router layout, add
cards/receipts/settings routes, share-intent handling, and reorderable
organizations list.

Add TS path aliases and SWRCacheProvider context.
Comment thread app/(app)/(events)/index.tsx Fixed
Comment thread app/(app)/(events)/index.tsx Fixed
Comment thread app/(app)/(events)/_layout.tsx Fixed
Comment thread app/(app)/(events)/index.tsx Fixed
Add app/(app)/(events)/[id]/transactions.tsx to host the transactions
list and related logic. Introduce ListItemButton and ListItemText
helpers in index.tsx, update imports (router, Ionicons, Pressable, Text,
ScrollView), and register the new route in _layout.tsx. Remove unused
tab bar/footer code and adjust navigation/data fetching usage.
Set the default fontSize to 16 in components/Text and remove the
explicit fontSize from ListItemText so it uses the new default.

Add a TabBarStyling component to the events layout that uses
usePathname/useNavigation to hide the tab bar when the events stack
is not at its root path.
Comment thread app/(app)/_layout.tsx Fixed
Move full Cards and Receipts implementations into app/(app) routes
and remove the legacy src/pages versions. Add a reusable PageTitle
component and use it in Cards (and import into Events). Update
Navigator imports to point to the new Cards page location.
Comment thread app/(app)/(events)/index.tsx Fixed
Comment thread app/(app)/(events)/index.tsx Fixed
Comment thread app/(app)/receipts.tsx Fixed
Comment thread app/(app)/receipts.tsx Fixed
Add PageTitle as the ListHeaderComponent for Receipts and increase
contentContainerStyle paddingTop to 62 to prevent header overlap
Comment thread app/(app)/receipts.tsx Fixed
Comment thread app/(app)/receipts.tsx Fixed
Comment thread app/(app)/receipts.tsx Fixed
Comment thread app/(app)/receipts.tsx Fixed
Implement a detailed transaction viewer (sharing, comments, admin tools,
type-specific renderers). Use NavigationProp for TransactionViewProps to
align with expo-router and remove unused imports in receipts
@socket-security

socket-security Bot commented May 22, 2026

Copy link
Copy Markdown

Review the following changes in direct dependencies. Learn more about Socket for GitHub.

Diff Package Supply Chain
Security
Vulnerability Quality Maintenance License
Updatedexpo-insights@​0.10.7 ⏵ 56.0.12100 +110061 +4100 +1100
Addedexpo-router@​56.2.57310078100100
Updatedexpo-status-bar@​3.0.8 ⏵ 56.0.474 +110082 +1100 +1100
Updatedexpo-system-ui@​6.0.8 ⏵ 56.0.574 +110078 +1100100
Updatedexpo-haptics@​15.0.7 ⏵ 56.0.374 +110084100 +1100
Updatedexpo-checkbox@​5.0.7 ⏵ 56.0.1100 +110075100 +1100
Updatedexpo-document-picker@​14.0.7 ⏵ 56.0.475 +110088 +1100100
Updatedexpo-linear-gradient@​15.0.7 ⏵ 56.0.475 +110083 +1100100
Updatedeas-build-cache-provider@​16.4.2 ⏵ 16.30.099 +11007593 -2100
Updatedexpo-constants@​17.1.7 ⏵ 56.0.1476 +110079 +1100 +1100
Updatedexpo-linking@​7.1.7 ⏵ 56.0.117610080 +1100 +2100
Updatedexpo-clipboard@​8.0.7 ⏵ 56.0.37610083 +1100100
Updatedexpo-font@​14.0.9 ⏵ 56.0.577 +110085 +1100 +2100
Updatedexpo@​54.0.18 ⏵ 56.0.377 -2110078 +1100 +1100
Updatedexpo-task-manager@​14.0.8 ⏵ 56.0.1377 -2310083 +1100 +1100
Updatedexpo-build-properties@​1.0.9 ⏵ 56.0.1377 -2210085 +1100 +1100
Updatedexpo-crypto@​15.0.7 ⏵ 56.0.377 +210084 +2100100
Updatedexpo-web-browser@​15.0.8 ⏵ 56.0.57710084100100
Updatedexpo-image-picker@​17.0.8 ⏵ 56.0.1277 -23100100100 +1100
Addedreact-native-qrcode-styled@​0.3.39810010077100
Added@​expo/​ui@​56.0.129910078100100
Updatedexpo-splash-screen@​31.0.10 ⏵ 56.0.978 +4100100100100
Updatedexpo-auth-session@​7.0.8 ⏵ 56.0.1178 -21100100 +1100 +1100
Updatedexpo-image@​3.0.10 ⏵ 56.0.878 +110091 +1100100
Addedreact-native-safe-area-context@​5.7.0991007890100
Updatedexpo-notifications@​0.32.12 ⏵ 56.0.1278 -2110084 +1100 +2100
Updatedexpo-dev-client@​6.0.16 ⏵ 56.0.1410010078100 +1100
Updatedexpo-file-system@​19.0.17 ⏵ 56.0.779 +110086 +1100 +2100
Updated@​types/​react@​19.1.17 ⏵ 19.2.14100 +110079 +196100
Addedreact-native-gesture-handler@​2.31.2801009498100
Addedreact-native-alert-notification@​0.4.28210010080100
Addedreact-native-progress@​5.0.110010010080100
See 28 more rows in the dashboard

View full report

Comment thread app/(app)/(events)/index.tsx Fixed
Comment thread app/(app)/(events)/index.tsx Fixed
@socket-security

socket-security Bot commented May 24, 2026

Copy link
Copy Markdown

Warning

Review the following alerts detected in dependencies.

According to your organization's Security Policy, it is recommended to resolve "Warn" alerts. Learn more about Socket for GitHub.

Action Severity Alert  (click "▶" to expand/collapse)
Warn High
Obfuscated code: npm @expo/cli is 90.0% likely obfuscated

Confidence: 0.90

Location: Package overview

From: package-lock.jsonnpm/expo@56.0.3npm/@expo/cli@56.1.10

ℹ Read more on: This package | This alert | What is obfuscated code?

Next steps: Take a moment to review the security alert above. Review the linked package source code to understand the potential risk. Ensure the package is not malicious before proceeding. If you're unsure how to proceed, reach out to your security team or ask the Socket team for help at support@socket.dev.

Suggestion: Packages should not obfuscate their code. Consider not using packages with obfuscated code.

Mark the package as acceptable risk. To ignore this alert only in this pull request, reply with the comment @SocketSecurity ignore npm/@expo/cli@56.1.10. You can also ignore all packages with @SocketSecurity ignore-all. To ignore an alert for all future pull requests, use Socket's Dashboard to change the triage state of this alert.

Warn High
Obfuscated code: npm @react-native/debugger-frontend is 90.0% likely obfuscated

Confidence: 0.90

Location: Package overview

From: package-lock.jsonnpm/react-native@0.85.3npm/expo@56.0.3npm/@react-native/debugger-frontend@0.85.3

ℹ Read more on: This package | This alert | What is obfuscated code?

Next steps: Take a moment to review the security alert above. Review the linked package source code to understand the potential risk. Ensure the package is not malicious before proceeding. If you're unsure how to proceed, reach out to your security team or ask the Socket team for help at support@socket.dev.

Suggestion: Packages should not obfuscate their code. Consider not using packages with obfuscated code.

Mark the package as acceptable risk. To ignore this alert only in this pull request, reply with the comment @SocketSecurity ignore npm/@react-native/debugger-frontend@0.85.3. You can also ignore all packages with @SocketSecurity ignore-all. To ignore an alert for all future pull requests, use Socket's Dashboard to change the triage state of this alert.

Warn High
Obfuscated code: npm @react-native/debugger-frontend is 90.0% likely obfuscated

Confidence: 0.90

Location: Package overview

From: package-lock.jsonnpm/react-native@0.85.3npm/expo@56.0.3npm/@react-native/debugger-frontend@0.85.3

ℹ Read more on: This package | This alert | What is obfuscated code?

Next steps: Take a moment to review the security alert above. Review the linked package source code to understand the potential risk. Ensure the package is not malicious before proceeding. If you're unsure how to proceed, reach out to your security team or ask the Socket team for help at support@socket.dev.

Suggestion: Packages should not obfuscate their code. Consider not using packages with obfuscated code.

Mark the package as acceptable risk. To ignore this alert only in this pull request, reply with the comment @SocketSecurity ignore npm/@react-native/debugger-frontend@0.85.3. You can also ignore all packages with @SocketSecurity ignore-all. To ignore an alert for all future pull requests, use Socket's Dashboard to change the triage state of this alert.

Warn High
Obfuscated code: npm @sentry-internal/feedback is 90.0% likely obfuscated

Confidence: 0.90

Location: Package overview

From: package-lock.jsonnpm/@sentry/react-native@7.11.0npm/@sentry-internal/feedback@10.37.0

ℹ Read more on: This package | This alert | What is obfuscated code?

Next steps: Take a moment to review the security alert above. Review the linked package source code to understand the potential risk. Ensure the package is not malicious before proceeding. If you're unsure how to proceed, reach out to your security team or ask the Socket team for help at support@socket.dev.

Suggestion: Packages should not obfuscate their code. Consider not using packages with obfuscated code.

Mark the package as acceptable risk. To ignore this alert only in this pull request, reply with the comment @SocketSecurity ignore npm/@sentry-internal/feedback@10.37.0. You can also ignore all packages with @SocketSecurity ignore-all. To ignore an alert for all future pull requests, use Socket's Dashboard to change the triage state of this alert.

Warn High
Obfuscated code: npm @sentry/browser is 90.0% likely obfuscated

Confidence: 0.90

Location: Package overview

From: package-lock.jsonnpm/@sentry/react-native@7.11.0npm/@sentry/browser@10.37.0

ℹ Read more on: This package | This alert | What is obfuscated code?

Next steps: Take a moment to review the security alert above. Review the linked package source code to understand the potential risk. Ensure the package is not malicious before proceeding. If you're unsure how to proceed, reach out to your security team or ask the Socket team for help at support@socket.dev.

Suggestion: Packages should not obfuscate their code. Consider not using packages with obfuscated code.

Mark the package as acceptable risk. To ignore this alert only in this pull request, reply with the comment @SocketSecurity ignore npm/@sentry/browser@10.37.0. You can also ignore all packages with @SocketSecurity ignore-all. To ignore an alert for all future pull requests, use Socket's Dashboard to change the triage state of this alert.

Warn High
Obfuscated code: npm @sentry/core is 90.0% likely obfuscated

Confidence: 0.90

Location: Package overview

From: package-lock.jsonnpm/@sentry/react-native@7.11.0npm/@sentry/core@10.37.0

ℹ Read more on: This package | This alert | What is obfuscated code?

Next steps: Take a moment to review the security alert above. Review the linked package source code to understand the potential risk. Ensure the package is not malicious before proceeding. If you're unsure how to proceed, reach out to your security team or ask the Socket team for help at support@socket.dev.

Suggestion: Packages should not obfuscate their code. Consider not using packages with obfuscated code.

Mark the package as acceptable risk. To ignore this alert only in this pull request, reply with the comment @SocketSecurity ignore npm/@sentry/core@10.37.0. You can also ignore all packages with @SocketSecurity ignore-all. To ignore an alert for all future pull requests, use Socket's Dashboard to change the triage state of this alert.

Warn High
Obfuscated code: npm expo-updates is 90.0% likely obfuscated

Confidence: 0.90

Location: Package overview

From: package-lock.jsonnpm/expo-updates@56.0.15

ℹ Read more on: This package | This alert | What is obfuscated code?

Next steps: Take a moment to review the security alert above. Review the linked package source code to understand the potential risk. Ensure the package is not malicious before proceeding. If you're unsure how to proceed, reach out to your security team or ask the Socket team for help at support@socket.dev.

Suggestion: Packages should not obfuscate their code. Consider not using packages with obfuscated code.

Mark the package as acceptable risk. To ignore this alert only in this pull request, reply with the comment @SocketSecurity ignore npm/expo-updates@56.0.15. You can also ignore all packages with @SocketSecurity ignore-all. To ignore an alert for all future pull requests, use Socket's Dashboard to change the triage state of this alert.

Warn High
Obfuscated code: npm node-forge is 90.0% likely obfuscated

Confidence: 0.90

Location: Package overview

From: package-lock.jsonnpm/expo-updates@56.0.15npm/expo@56.0.3npm/node-forge@1.4.0

ℹ Read more on: This package | This alert | What is obfuscated code?

Next steps: Take a moment to review the security alert above. Review the linked package source code to understand the potential risk. Ensure the package is not malicious before proceeding. If you're unsure how to proceed, reach out to your security team or ask the Socket team for help at support@socket.dev.

Suggestion: Packages should not obfuscate their code. Consider not using packages with obfuscated code.

Mark the package as acceptable risk. To ignore this alert only in this pull request, reply with the comment @SocketSecurity ignore npm/node-forge@1.4.0. You can also ignore all packages with @SocketSecurity ignore-all. To ignore an alert for all future pull requests, use Socket's Dashboard to change the triage state of this alert.

View full report

Comment thread lib/tokenManager.ts
}

if (reason) {
console.error("[TokenManager] Forced logout", { reason });
Comment thread app/(app)/(events)/index.tsx Fixed
Comment thread app/(app)/(events)/index.tsx Fixed
Comment thread app/(app)/(events)/index.tsx Fixed
Comment thread app/(app)/(events)/index.tsx Fixed
Comment thread app/(app)/receipts/index.tsx Fixed
Comment thread components/organizations/Header.tsx Fixed
Comment thread components/organizations/Event.tsx Fixed
Comment thread components/organizations/NoOrganizationsEmptyState.tsx Fixed
Comment thread components/organizations/SectionCard.tsx Fixed
Comment thread app/(app)/(events)/index.tsx Fixed
Comment thread app/(app)/(events)/index.tsx Fixed
const [refreshing, setRefreshing] = useState(false);

const handleDragStart = useCallback(() => {
"worklet";
}, [refreshing]);

const handleDragEnd = useCallback(() => {
"worklet";
Comment thread utils/cardActions.ts
import * as Haptics from "./haptics";
import { renderMoney } from "./util";
import parse from "date-fns/esm/fp/parse/index.js";
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants