feat: Sprint 5 — PIN lock, biometric auth, sync screen, QR code, merge logic

- lib/pinService.ts: PIN storage/verification via expo-secure-store
- lib/syncService.ts: sync abstraction with full merge logic (mDNS/TCP stubbed)
- app/lock.tsx: full-screen PIN lock with biometric support
- components/ui/PinPad.tsx: reusable 6-digit PIN pad component
- components/sync/QRScanner.tsx: QR code scanner via expo-camera
- app/(tabs)/sync.tsx: Sync tab with QR display, partner input, history
- app/sync-progress.tsx: animated sync progress screen with summary
- app/(tabs)/settings.tsx: full settings with PIN setup, security, data sections
- app/(tabs)/_layout.tsx: added Sync tab (RefreshCw icon)
- app/_layout.tsx: AppState listener locks app after 60s background
- package.json: added expo-secure-store, react-native-qrcode-svg
This commit is contained in:
2026-02-18 19:57:35 +08:00
parent 123b21f4db
commit 6fe6ebef13
12 changed files with 18385 additions and 22 deletions

View File

@@ -20,8 +20,10 @@
"expo-sharing": "~12.0.0",
"expo-document-picker": "~12.0.0",
"expo-file-system": "~18.0.0",
"react": "18.3.2",
"react-native": "0.76.0",
"react": "18.3.1",
"react-native": "0.76.7",
"expo-secure-store": "~14.0.1",
"react-native-qrcode-svg": "^6.3.0",
"react-native-safe-area-context": "4.12.0",
"react-native-screens": "~4.0.0",
"react-native-gesture-handler": "~2.20.0",