import { useState, useEffect } from 'react' import { SearchIcon } from './SearchIcon' import { ClearButton } from './ClearButton' import { Input } from './ui' import { t } from '@/lib/i18n' interface SearchBarProps { value: string onChange: (value: string) => void placeholder?: string } export function SearchBar({ value, onChange, placeholder }: SearchBarProps): React.ReactElement { const defaultPlaceholder = placeholder ?? t('search.placeholder') const [localValue, setLocalValue] = useState(value) useEffect(() => { setLocalValue(value) }, [value]) const handleChange = (e: React.ChangeEvent): void => { const newValue = e.target.value setLocalValue(newValue) onChange(newValue) } const handleClear = (): void => { setLocalValue('') onChange('') } return ( } rightIcon={localValue ? : undefined} className="pr-10" /> ) }