import React, { useState } from 'react'; import { Icon, CircularLoader } from 'UI'; import { Button } from 'antd'; import cn from 'classnames'; import { debounce } from 'App/utils'; import stl from './widgetAutoComplete.module.css'; function WidgetAutoComplete(props) { const { className, placeholder = 'Search for Resource', itemStyle = {}, filterParams = {}, } = props; const [selected, setSelected] = useState(null); const [focused, setFocused] = useState(props.autoFocus); const fetchOptions = debounce(props.fetchOptions, 300); const handleChange = ({ target: { name, value } }) => { fetchOptions({ ...filterParams, q: value }); }; const onSelected = (opt) => { setSelected(opt); props.onSelect(opt); }; const onItemClick = (e, { name, value }) => { props.onSelect({ url: value }); setSelected(value); }; const onClearHandle = (e) => { e.preventDefault(); e.stopPropagation(); setSelected(null); props.onSelect({}); }; return (
!focused && setFocused(true)} > {!focused && selected && (
{selected.value}
)} {(focused || !selected) && ( setFocused(true)} onBlur={() => setFocused(false)} /> )}
{props.loading && }
{focused && props.options.length > 0 && (
{props.options.map((opt) => (
onSelected(opt)} style={itemStyle} > {opt.text || opt.value}
))}
)}
); } export default WidgetAutoComplete;