import React, { useState, useEffect } from 'react'; import { View, TextInput, TouchableOpacity, Image } from 'react-native'; import icons from '@/constants/icons'; interface Props { onSearch: (query: string) => void; } export function useDebounce(value: T, delay: number = 500): T { const [debouncedValue, setDebouncedValue] = useState(value); useEffect(() => { const timer = setTimeout(() => { setDebouncedValue(value); }, delay); return () => { clearTimeout(timer); }; }, [value, delay]); return debouncedValue; } const Search = ({ onSearch }: Props) => { const [searchQuery, setSearchQuery] = useState(''); const debouncedQuery = useDebounce(searchQuery); React.useEffect(() => { onSearch(debouncedQuery); }, [debouncedQuery]); return ( {searchQuery ? ( setSearchQuery('')}> ) : null} ); }; export default Search;