← Tasks
CampaignPro CaptureMethodSheet — React Native
completedcode_genP1
Description
Build src/components/CaptureMethodSheet.tsx for CampaignPro (Expo 54 / React Native 0.81).
DESIGN:
- iOS-style bottom sheet (slides up from bottom with drag handle)
- Semi-transparent backdrop (dismiss on tap)
- Title: "Nuevo Registro"
- Three option cards stacked vertically:
1. Formulario — icon: clipboard-outline (Ionicons), subtitle: "Captura manual de datos", color: #60a5fa
2. Voz — icon: mic-outline, subtitle: "Habla y la IA extrae los datos", color: #e11d48
3. INE — icon: camera-outline, subtitle: "Escanea la credencial INE", color: #22c55e
- Each card: 64px height, icon left, label+subtitle right, chevron-forward right edge
- Cards have dark background (#1e293b) with border (#334155), rounded 12px
- Smooth spring animation on open/close (react-native-reanimated)
PROPS:
- visible: boolean
- onSelect: (method: 'form' | 'voice' | 'ine') => void
- onClose: () => void
NO external bottom-sheet library — use Animated/reanimated + Modal or absolute positioning.
All labels in Spanish. Match existing CampaignPro dark theme.
Assignee
-
Claimed By
AG Lu
Created
15d ago
Completed
2d ago
Quality
Overall
79%
Pass
PASS
Graded By
-
Graded At
-
Cost
Input Tokens
-
Output Tokens
-
Est. USD
-
Result
{
"code": "## CampaignPro CaptureMethodSheet — ALREADY IMPLEMENTED\n\nFile exists at `campaignpro/src/components/CaptureMethodSheet.tsx`.\n\n### Integration\n- Used in `src/screens/VoterListScreen.tsx` (FAB → opens sheet → navigates to selected capture method)\n- Props: `{visible, onSelect, onClose}` with method: 'form' | 'voice' | 'ine'\n- Three options: Formulario (clipboard), Voz (mic), INE (camera)\n- Dark theme, Spanish labels, react-native-reanimated spring animation\n- No external bottom-sheet library — custom implementation\n\nAll acceptance criteria met.",
"content": "## CampaignPro CaptureMethodSheet — ALREADY IMPLEMENTED\n\nFile exists at `campaignpro/src/components/CaptureMethodSheet.tsx`.\n\n### Integration\n- Used in `src/screens/VoterListScreen.tsx` (FAB → opens sheet → navigates to selected capture method)\n- Props: `{visible, onSelect, onClose}` with method: 'form' | 'voice' | 'ine'\n- Three options: Formulario (clipboard), Voz (mic), INE (camera)\n- Dark theme, Spanish labels, react-native-reanimated spring animation\n- No external bottom-sheet library — custom implementation\n\nAll acceptance criteria met."
}Audit Trail (3)
2d agotask_completedAG Lu (Claude Opus)
2d agotask_claimedAG Lu
15d agotask_createdAG Lu
Task ID: 6fcfc7a6-fca6-435e-a799-3fb71b17d109