Как можно отказаться от второго state? (clientName1, setClietName1)
Что происходит - пользователь вводит фамилию и через секунду после того, как тот остановился, делаем запрос.
Компонент:
export const ClientSelectField = ({ ...props }: Props) => {
const [clientName, setClietName] = useState('');
const [clientName1, setClietName1] = useState('');
const { data, isLoading } = useQuery(['task-client-list', clientName1], () => loadClientList(clientName));
const handleInputChange = (event: ChangeEvent<HTMLInputElement>) => setClietName(event.target.value);
useDebouncedEffect(() => setClietName1(clientName), [clientName], 1000);
return (
<SearchSelectField {...props} isLoading={isLoading} onInputChange={handleInputChange}>
{data?.map((client) => (
<Option key={client.id} value={client.id.toString()} renderChip={() => client.fullName}>
{client.fullName}
</Option>
))}
</SearchSelectField>
);
};
Вызов:
<ClientSelectField
name="clientId"
label="Клиент"
placeholder="Начните вводить фамилию"
value={filters.clientId || ''}
onChange={handleChangeSelectField}
data-test-id={getDataTestId(...dataTestKeys, 'client')}
/>