import React, { useState } from 'react'; import { View, TextInput, StyleSheet, TouchableOpacity } from 'react-native'; import { Ionicons } from '@expo/vector-icons'; import { colors, spacing, borderRadius } from '../constants/theme'; interface SearchBarProps { placeholder?: string; onSearch: (query: string) => void; value?: string; onChangeText?: (text: string) => void; } export function SearchBar({ placeholder = 'Buscar medicamentos...', onSearch, value, onChangeText }: SearchBarProps) { const [localValue, setLocalValue] = useState(value || ''); const handleChange = (text: string) => { setLocalValue(text); onChangeText?.(text); }; const handleSubmit = () => { onSearch(localValue); }; const handleClear = () => { setLocalValue(''); onChangeText?.(''); onSearch(''); }; return ( {localValue.length > 0 && ( )} ); } const styles = StyleSheet.create({ container: { flexDirection: 'row', alignItems: 'center', backgroundColor: colors.card, borderRadius: borderRadius.md, paddingHorizontal: spacing.md, paddingVertical: spacing.sm, marginHorizontal: spacing.md, marginVertical: spacing.sm, }, icon: { marginRight: spacing.sm, }, input: { flex: 1, fontSize: 16, color: colors.text, paddingVertical: spacing.xs, }, clearButton: { marginLeft: spacing.sm, }, });