UNPKG

mobile-more

Version:

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

60 lines 2.12 kB
import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2"; 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 * as React from 'react'; import { isArray } 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, _ref) { var items = _ref.items; if (multiple) { setState(v, { items: items }); } else { var fmtValue = v.length > 0 ? v[0] : radioMode ? state : undefined; setState(fmtValue, { items: items }); } }; var realValue = React.useMemo(function () { if (isArray(state)) { return state; } if (typeof state !== 'undefined') { return [state]; } return []; }, [state]); return /*#__PURE__*/React.createElement(Selector, _objectSpread(_objectSpread({ options: options, multiple: multiple }, restProps), {}, { value: realValue, onChange: handleChange })); } export default SuperSelector;