/* eslint-disable compat/compat */ import React, { useState } from 'react'; import { Select } from 'antd'; import type { SelectProps } from 'antd'; import type { AnyObject } from 'antd/es/_util/type'; let timeout: ReturnType | null; let currentValue: string; const toURLSearchParams = (record: T) => { const params = new URLSearchParams(); for (const [key, value] of Object.entries(record)) { params.append(key, value); } return params; }; const fetchData = (value: string, callback: (data: { value: string; text: string }[]) => void) => { if (timeout) { clearTimeout(timeout); timeout = null; } currentValue = value; const params = toURLSearchParams({ code: 'utf-8', q: value }); const fake = () => { fetch(`https://suggest.taobao.com/sug?${params.toString()}`) .then((response) => response.json()) .then(({ result }) => { if (currentValue === value) { const data = result.map((item: any) => ({ value: item[0], text: item[0] })); callback(data); } }); }; if (value) { timeout = setTimeout(fake, 300); } else { callback([]); } }; const SearchInput: React.FC<{ placeholder: string; style: React.CSSProperties }> = (props) => { const [data, setData] = useState([]); const [value, setValue] = useState(); const handleSearch = (newValue: string) => { fetchData(newValue, setData); }; const handleChange = (newValue: string) => { setValue(newValue); }; return (