Build a separate driver app from the same codebase: APP_VARIANT=driver (app.config.ts) sets its name, bundle ID and scheme, eas.json gets driver build profiles, and Stack.Protected keeps each app to its own screens. metro.config.js keys Metro's cache by variant so switching apps never serves the other's baked-in config. Drivers get ride requests only in driving mode. While driving they see a waiting animation or, on a ride, turn-by-turn directions; requests slide up over either without disturbing it. Accepting mid-ride queues the ride (one in progress plus one queued). Going offline or online mid-round leaves or joins it. Simulated phones no longer touch the location API: each sits at a mocked position from its URL (default downtown San Francisco). Phone specs in sim.html move to named key=value options. Scenarios cover driving mode, interruptions, the ride queue and mocked location, each with a slow version. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
48 lines
1.7 KiB
JSON
48 lines
1.7 KiB
JSON
{
|
|
"name": "ridern",
|
|
"version": "1.0.0",
|
|
"main": "expo-router/entry",
|
|
"dependencies": {
|
|
"@expo/metro-runtime": "~57.0.16",
|
|
"@lottiefiles/dotlottie-react": "^0.13.5",
|
|
"@react-native-async-storage/async-storage": "2.2.0",
|
|
"expo": "~57.0.25",
|
|
"expo-constants": "~57.0.19",
|
|
"expo-linking": "~57.0.11",
|
|
"expo-location": "~57.0.20",
|
|
"expo-router": "~57.0.23",
|
|
"expo-status-bar": "~57.0.1",
|
|
"lottie-react-native": "~7.3.8",
|
|
"react": "19.2.3",
|
|
"react-dom": "19.2.3",
|
|
"react-native": "0.86.3",
|
|
"react-native-maps": "1.27.2",
|
|
"react-native-safe-area-context": "~5.7.0",
|
|
"react-native-screens": "~4.26.0",
|
|
"react-native-web": "^0.21.2"
|
|
},
|
|
"devDependencies": {
|
|
"@types/react": "~19.2.2",
|
|
"@types/ws": "^8.18.2",
|
|
"cypress": "^16.1.0",
|
|
"eslint": "^9.0.0",
|
|
"eslint-config-expo": "~57.0.2",
|
|
"start-server-and-test": "^3.0.12",
|
|
"typescript": "~6.0.3",
|
|
"ws": "^8.22.0"
|
|
},
|
|
"scripts": {
|
|
"start": "expo start",
|
|
"start:driver": "APP_VARIANT=driver expo start",
|
|
"android": "expo start --android",
|
|
"ios": "expo start --ios",
|
|
"web": "expo start --web",
|
|
"lint": "expo lint",
|
|
"dispatch": "node server/dispatch.mts",
|
|
"sim:web": "expo start --port 8090",
|
|
"e2e": "start-server-and-test dispatch http-get://localhost:8787/state sim:web http://localhost:8090 'cypress run --spec \"cypress/e2e/*.cy.ts\"'",
|
|
"e2e:open": "start-server-and-test dispatch http-get://localhost:8787/state sim:web http://localhost:8090 'cypress open --e2e'",
|
|
"e2e:slow": "start-server-and-test dispatch http-get://localhost:8787/state sim:web http://localhost:8090 'cypress run --headed --browser chrome --spec \"cypress/e2e/slow/*.cy.ts\"'"
|
|
},
|
|
"private": true
|
|
}
|