UNPKG

qt-public-ui

Version:

新设计规范下业务组件库

44 lines 1.65 kB
import _extends from "@babel/runtime/helpers/esm/extends"; import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose"; var _excluded = ["allOption", "fetch", "defer", "onDropdownVisibleChange", "loading"]; import React, { useState, useEffect } from 'react'; import Select from './select'; var AsyncSelect = function AsyncSelect(props) { var allOption = props.allOption, fetch = props.fetch, defer = props.defer, onDropdownVisibleChange = props.onDropdownVisibleChange, antdLoading = props.loading, selectProps = _objectWithoutPropertiesLoose(props, _excluded); var _useState = useState(false), loaded = _useState[0], setLoaded = _useState[1]; var _useState2 = useState(false), loading = _useState2[0], setLoading = _useState2[1]; var _useState3 = useState(allOption ? [allOption] : []), options = _useState3[0], setOptions = _useState3[1]; var loadOptions = function loadOptions() { setLoading(true); fetch && fetch().then(function (data) { setLoading(false); setLoaded(true); setOptions(allOption ? [allOption].concat(data) : data); }); }; var dropdown = function dropdown(open) { open && !loaded && defer && !loading && loadOptions(); typeof onDropdownVisibleChange === 'function' && onDropdownVisibleChange(open); }; useEffect(function () { defer || loadOptions(); }, []); return /*#__PURE__*/React.createElement(Select, _extends({ onDropdownVisibleChange: dropdown, loading: loading, options: options }, selectProps)); }; AsyncSelect.displayName = 'Async'; export default AsyncSelect;