feat: add paid job submission with inline Lightning invoice on mobile
Some checks failed
CI / Typecheck & Lint (pull_request) Failing after 0s

Add a lightning bolt button next to the mic on the Timmy tab that opens
a bottom sheet for submitting paid jobs. The sheet includes:
- Text input for job prompts
- Estimate button (POST /api/jobs/estimate) showing cost in sats
- Submit button (POST /api/jobs) that creates the job
- BOLT-11 invoice rendered as QR code for Lightning wallet scanning
- 3s polling loop showing progress states (awaiting payment → paid → executing → complete)
- Expandable result card on completion
- Clear error states for rejected/failed/expired jobs

Works on iOS, Android, and web. Fixes #25

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Alexander Whitestone
2026-03-22 21:34:29 -04:00
parent 609acc8f66
commit f20813f483
4 changed files with 916 additions and 20 deletions

View File

@@ -58,6 +58,7 @@
"dependencies": {
"@react-native-voice/voice": "^3.2.4",
"expo-speech": "^14.0.8",
"react-native-qrcode-svg": "^6.3.21",
"react-native-webview": "^13.15.0"
}
}