import { Text } from '@/components/ui/text'; import { View } from '@/components/ui/view'; import { useColor } from '@/hooks/useColor'; import { useHaptics } from '@/hooks/useHaptics'; import { BORDER_RADIUS } from '@/theme/globals'; import { Check } from 'lucide-react-native'; import React from 'react'; import { TextStyle, TouchableOpacity } from 'react-native'; interface CheckboxProps { checked: boolean; label?: string; error?: string; disabled?: boolean; labelStyle?: TextStyle; onCheckedChange: (checked: boolean) => void; accessibilityLabel?: string; haptic?: boolean; } export function Checkbox({ checked, error, disabled = false, label, labelStyle, onCheckedChange, accessibilityLabel, haptic = true, }: CheckboxProps) { const primary = useColor('primary'); const primaryForegroundColor = useColor('primaryForeground'); const danger = useColor('red'); const borderColor = useColor('border'); const feedback = useHaptics(haptic); const handlePress = () => { if (disabled) return; feedback(checked ? 'toggle-off' : 'toggle-on'); onCheckedChange(!checked); }; return ( {checked && ( )} {label && ( {label} )} ); }