Use Expo Router#399
Conversation
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.
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.
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.
Add PageTitle as the ListHeaderComponent for Receipts and increase contentContainerStyle paddingTop to 62 to prevent header overlap
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
|
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.
|
| } | ||
|
|
||
| if (reason) { | ||
| console.error("[TokenManager] Forced logout", { reason }); |
| const [refreshing, setRefreshing] = useState(false); | ||
|
|
||
| const handleDragStart = useCallback(() => { | ||
| "worklet"; |
| }, [refreshing]); | ||
|
|
||
| const handleDragEnd = useCallback(() => { | ||
| "worklet"; |
| import * as Haptics from "./haptics"; | ||
| import { renderMoney } from "./util"; | ||
| import parse from "date-fns/esm/fp/parse/index.js"; |
Rewrites HCB Mobile from React Native navigation → Expo Router for better code quality