UNPKG

mobile-more

Version:

基于 antd-mobile v5 扩展移动端 UI 组件

46 lines 1.87 kB
import _extends from "@babel/runtime/helpers/esm/extends"; import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray"; import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties"; var _excluded = ["options", "mapKeys", "multiple", "radioMode", "defaultValue"]; import { Selector } from 'antd-mobile'; import { useControllableValue } from 'rc-hooks'; import React from 'react'; import { isArray, isUndefined } from 'ut2'; import transformKeys from "../utils/transformKeys"; function SuperSelector(props) { var _props$options = props.options, outOptions = _props$options === void 0 ? [] : _props$options, mapKeys = props.mapKeys, _props$multiple = props.multiple, multiple = _props$multiple === void 0 ? false : _props$multiple, _props$radioMode = props.radioMode, radioMode = _props$radioMode === void 0 ? true : _props$radioMode, defaultValue = props.defaultValue, restProps = _objectWithoutProperties(props, _excluded); var _useControllableValue = useControllableValue(props), _useControllableValue2 = _slicedToArray(_useControllableValue, 2), state = _useControllableValue2[0], setState = _useControllableValue2[1]; var options = React.useMemo(function () { if (mapKeys) { return transformKeys(outOptions, mapKeys); } return outOptions; }, [mapKeys, outOptions]); var handleChange = function handleChange(v, info) { if (multiple) { setState(v, info); } else { var fmtValue = v.length > 0 ? v[0] : radioMode ? state : undefined; setState(fmtValue, info); } }; return /*#__PURE__*/React.createElement(Selector, _extends({ options: options, multiple: multiple }, restProps, { value: isArray(state) ? state : !isUndefined(state) ? [state] : [], onChange: handleChange })); } export default SuperSelector;