mobile-more
Version:
基于 antd-mobile v5 扩展移动端 UI 组件
59 lines (56 loc) • 3.17 kB
JavaScript
"use strict";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
var _react = _interopRequireDefault(require("react"));
var _antdMobile = require("antd-mobile");
var _ut = require("ut2");
var _excluded = ["fieldNames", "valueEnum", "value", "type", "defaultLabel", "match", "component", "tagProps", "textProps"];
var BaseDictionary = function BaseDictionary(_ref) {
var _ret$type;
var fieldNames = _ref.fieldNames,
valueEnum = _ref.valueEnum,
value = _ref.value,
_ref$type = _ref.type,
type = _ref$type === void 0 ? 'text' : _ref$type,
_ref$defaultLabel = _ref.defaultLabel,
defaultLabel = _ref$defaultLabel === void 0 ? '-' : _ref$defaultLabel,
match = _ref.match,
component = _ref.component,
tagProps = _ref.tagProps,
textProps = _ref.textProps,
restProps = (0, _objectWithoutProperties2.default)(_ref, _excluded);
var _label$value$props$fi = (0, _objectSpread2.default)({
label: 'label',
value: 'value',
props: 'props'
}, fieldNames),
labelKey = _label$value$props$fi.label,
valueKey = _label$value$props$fi.value,
propsKey = _label$value$props$fi.props;
var matchMethod = function matchMethod(itemValue, value) {
return typeof match === 'function' ? match(itemValue, value) : itemValue === value;
};
var ret = valueEnum.find(function (item) {
return matchMethod(item[valueKey], value);
});
var child = ret ? ((_ret$type = ret[type]) === null || _ret$type === void 0 ? void 0 : _ret$type.alias) || ret[labelKey] || defaultLabel : defaultLabel;
if (type === 'tag') {
return /*#__PURE__*/_react.default.createElement(_antdMobile.Tag, (0, _extends2.default)({}, restProps, (0, _ut.omit)(ret === null || ret === void 0 ? void 0 : ret.tag, ['alias']), tagProps), child);
}
// html标签
if (typeof component === 'string') {
return /*#__PURE__*/_react.default.createElement(component, (0, _objectSpread2.default)((0, _objectSpread2.default)({}, ret === null || ret === void 0 ? void 0 : ret[propsKey]), restProps), child);
}
// 自定义组件
if ( /*#__PURE__*/_react.default.isValidElement(component)) {
return /*#__PURE__*/_react.default.cloneElement(component, (0, _objectSpread2.default)((0, _objectSpread2.default)((0, _objectSpread2.default)({}, ret === null || ret === void 0 ? void 0 : ret[propsKey]), restProps), (component === null || component === void 0 ? void 0 : component.props) || {}), child);
}
return /*#__PURE__*/_react.default.createElement("span", (0, _extends2.default)({}, ret === null || ret === void 0 ? void 0 : ret[propsKey], restProps, (0, _ut.omit)(ret === null || ret === void 0 ? void 0 : ret.text, ['alias']), textProps), child);
};
var _default = exports.default = BaseDictionary;