UNPKG

mobile-more

Version:

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

53 lines (52 loc) 2.52 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 _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties")); var React = _interopRequireWildcard(require("react")); var _excluded = ["fieldNames", "valueEnum", "value", "defaultLabel", "match", "component"]; var BaseDictionary = function BaseDictionary(_ref) { var fieldNames = _ref.fieldNames, valueEnum = _ref.valueEnum, value = _ref.value, _ref$defaultLabel = _ref.defaultLabel, defaultLabel = _ref$defaultLabel === void 0 ? '-' : _ref$defaultLabel, match = _ref.match, _ref$component = _ref.component, component = _ref$component === void 0 ? 'span' : _ref$component, restProps = (0, _objectWithoutProperties2.default)(_ref, _excluded); var _React$useMemo = React.useMemo(function () { return (0, _objectSpread2.default)({ label: 'label', value: 'value', props: 'props' }, fieldNames); }, [fieldNames]), labelKey = _React$useMemo.label, valueKey = _React$useMemo.value, propsKey = _React$useMemo.props; var matchMethod = React.useCallback(function (itemValue, value) { return typeof match === 'function' ? match(itemValue, value) : itemValue === value; }, [match]); var ret = React.useMemo(function () { return valueEnum.find(function (item) { return matchMethod(item[valueKey], value); }); }, [matchMethod, value, valueEnum, valueKey]); var props = (0, _objectSpread2.default)((0, _objectSpread2.default)({}, ret === null || ret === void 0 ? void 0 : ret[propsKey]), restProps); var child = (ret === null || ret === void 0 ? void 0 : ret[labelKey]) || defaultLabel; // html标签 if (typeof component === 'string') { return /*#__PURE__*/React.createElement(component, props, child); } // 自定义组件 if (/*#__PURE__*/React.isValidElement(component)) { return /*#__PURE__*/React.cloneElement(component, (0, _objectSpread2.default)((0, _objectSpread2.default)({}, props), (component === null || component === void 0 ? void 0 : component.props) || {}), child); } return child; }; var _default = exports.default = BaseDictionary;