UNPKG

mobile-more

Version:

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

90 lines (89 loc) 4.05 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 React = _interopRequireWildcard(require("react")); var _ut = require("ut2"); var _FormItem = _interopRequireDefault(require("../FormItem")); var _SuperCascader = _interopRequireDefault(require("./SuperCascader")); var _transform = require("../utils/transform"); var _BizConfigProvider = require("../../BizConfigProvider"); var _getDefaultPopupTitle = _interopRequireDefault(require("../utils/getDefaultPopupTitle")); var _utils = require("../../../utils/utils"); var _excluded = ["placeholder", "title", "options", "mapKeys", "renderCurrentValue", "separator", "cascaderProps", "names", "name", "readOnly", "disabled", "onClick", "required", "transform"]; var BizFormItemCascader = function BizFormItemCascader(props) { var _useConfig = (0, _BizConfigProvider.useConfig)(), locale = _useConfig.locale; var _props$placeholder = props.placeholder, placeholder = _props$placeholder === void 0 ? locale.form.common.selectPlaceholder : _props$placeholder, _props$title = props.title, title = _props$title === void 0 ? (0, _getDefaultPopupTitle.default)(props, locale) : _props$title, options = props.options, mapKeys = props.mapKeys, renderCurrentValue = props.renderCurrentValue, separator = props.separator, cascaderProps = props.cascaderProps, names = props.names, name = props.name, readOnly = props.readOnly, disabled = props.disabled, onClick = props.onClick, required = props.required, outTransform = props.transform, restProps = (0, _objectWithoutProperties2.default)(props, _excluded); var _React$useState = React.useState(false), _React$useState2 = (0, _slicedToArray2.default)(_React$useState, 2), visible = _React$useState2[0], setVisible = _React$useState2[1]; var currentName = React.useMemo(function () { return name || ((0, _ut.isArray)(names) && names.length > 0 ? (0, _utils.getTimestampString)('__item_cascader') : name); }, [name, names]); var handleClick = function handleClick(e, widgetRef) { if (!disabled && !readOnly) { setVisible(true); } onClick === null || onClick === void 0 ? void 0 : onClick(e, widgetRef); }; var transform = React.useCallback(function (value, currentLevelValues) { if (typeof outTransform === 'function') { return outTransform(value); } return (0, _transform.transformValueToNames)(value, currentLevelValues, names); }, [names, outTransform]); return /*#__PURE__*/React.createElement(_FormItem.default, (0, _objectSpread2.default)((0, _objectSpread2.default)({ name: currentName, rules: [{ validator: function validator(rule, value) { if (required && (!(0, _ut.isArray)(value) || value.length <= 0)) { return Promise.reject(locale.form.common.selectRequired); } return Promise.resolve(); } }], required: required, disabled: disabled, onClick: handleClick, transform: transform }, restProps), {}, { trigger: "onConfirm", validateTrigger: "onConfirm" }), /*#__PURE__*/React.createElement(_SuperCascader.default, (0, _objectSpread2.default)({ title: title, visible: visible, onClose: function onClose() { return setVisible(false); }, options: options, mapKeys: mapKeys, placeholder: placeholder, renderCurrentValue: renderCurrentValue, separator: separator }, cascaderProps))); }; var _default = exports.default = BizFormItemCascader;