import React, { useCallback, useEffect, useMemo, useRef, useState } from 'react' import { createPortal } from 'react-dom' import { SearchIcon, ChevronDownIcon, CloseIcon } from './Icons' /** * 可搜索下拉(combobox) * * 供应商 272 家、产品 300+ 个,原生 { setQuery(e.target.value); setActive(0) }} onFocus={openMenu} onKeyDown={onKeyDown} /> {showClear && ( )} {open && pos && createPortal(
{filtered.length === 0 ? (
{emptyText}
) : (
{filtered.map((o, i) => (
setActive(i)} onMouseDown={(e) => { e.preventDefault(); pick(o) }} onClick={() => pick(o)} > {o.label} {o.hint != null && o.hint !== '' && {o.hint}}
))}
)}
, document.body )} ) } /** * 列表上方的内联搜索框:用于「列表本身」的即时过滤(供应商详情的供货清单、 * 产品详情里的货号表这类)。和 SearchSelect 同一套外观语言。 */ export function SearchField({ value, onChange, placeholder = '搜索…', size = 'md', style, className = '' }) { return (
onChange(e.target.value)} /> {value !== '' && value != null && ( )}
) } export default SearchSelect