UNPKG

mobile-more

Version:

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

68 lines (67 loc) 2.65 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default; var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2")); var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray")); var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties")); var _antdMobile = require("antd-mobile"); var _rcHooks = require("rc-hooks"); var React = _interopRequireWildcard(require("react")); var _ut = require("ut2"); var _transformKeys = _interopRequireDefault(require("../utils/transformKeys")); var _excluded = ["options", "mapKeys", "multiple", "radioMode", "defaultValue"]; 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 = (0, _objectWithoutProperties2.default)(props, _excluded); var _useControllableValue = (0, _rcHooks.useControllableValue)(props), _useControllableValue2 = (0, _slicedToArray2.default)(_useControllableValue, 2), state = _useControllableValue2[0], setState = _useControllableValue2[1]; var options = React.useMemo(function () { if (mapKeys) { return (0, _transformKeys.default)(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 ((0, _ut.isArray)(state)) { return state; } if (typeof state !== 'undefined') { return [state]; } return []; }, [state]); return /*#__PURE__*/React.createElement(_antdMobile.Selector, (0, _objectSpread2.default)((0, _objectSpread2.default)({ options: options, multiple: multiple }, restProps), {}, { value: realValue, onChange: handleChange })); } var _default = exports.default = SuperSelector;