UNPKG

acud

Version:

acg react 组件库

49 lines • 2.04 kB
import _extends from "@babel/runtime/helpers/esm/extends"; import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray"; import React from 'react'; import classNames from 'classnames'; import Select from '../select'; import { ConfigContext } from '../config-provider'; import { isValidElement } from '../_util/reactNode'; import toArray from "rc-util/es/Children/toArray"; var Option = Select.Option; function isSelectOptionOrSelectOptGroup(child) { return child && child.type && (child.type.isSelectOption || child.type.isSelectOptGroup); } var AutoComplete = function AutoComplete(props, ref) { var customizePrefixCls = props.prefixCls, className = props.className, children = props.children; var _React$useContext = React.useContext(ConfigContext), getPrefixCls = _React$useContext.getPrefixCls; var prefixCls = getPrefixCls('select', customizePrefixCls); var childNodes = toArray(children); // ============================= Input ============================= var customizeInput; if (childNodes.length === 1 && isValidElement(childNodes[0]) && !isSelectOptionOrSelectOptGroup(childNodes[0])) { var _childNodes = _slicedToArray(childNodes, 1); customizeInput = _childNodes[0]; } var getInputElement = customizeInput ? function () { return customizeInput; } : undefined; // ============================ Options ============================ var optionChildren; if (childNodes.length && isSelectOptionOrSelectOptGroup(childNodes[0])) { optionChildren = children; } else { optionChildren = []; } return /*#__PURE__*/React.createElement(Select, _extends({ ref: ref }, props, { prefixCls: prefixCls, className: classNames("".concat(prefixCls, "-auto-complete"), className), mode: Select.SECRET_COMBOBOX_MODE_DO_NOT_USE, getInputElement: getInputElement }), optionChildren); }; var RefAutoComplete = /*#__PURE__*/React.forwardRef(AutoComplete); RefAutoComplete.Option = Option; export default RefAutoComplete; // export default AutoComplete;