linkmore-design
Version:
🌈 🚀lm组件库。🚀
53 lines (51 loc) • 1.87 kB
JavaScript
import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
var _excluded = ["data", "props", "componentProps"];
import React, { useMemo } from 'react';
import Controls from "../../controls";
var Item = /*#__PURE__*/React.memo(function (_ref) {
var item = _ref.item,
instance = _ref.instance;
// 若不显示则返回null
if (item.show === false) return null;
var getFilterValue = instance.getFilterValue,
setFilterValue = instance.setFilterValue;
var data = item.data,
itemProps = item.props,
componentProps = item.componentProps,
restItem = _objectWithoutProperties(item, _excluded);
var filterValue = useMemo(function () {
return getFilterValue === null || getFilterValue === void 0 ? void 0 : getFilterValue(item);
}, [getFilterValue, item]);
// 参数重组, 与Contols参数保持一致
var resetItem = _objectSpread(_objectSpread({}, restItem), {}, {
value: filterValue,
onChange: function onChange(val) {
return setFilterValue(val, item);
},
options: data,
componentProps: itemProps || componentProps
});
// 寻找对应控件
return /*#__PURE__*/React.createElement(Controls, resetItem);
});
var List = function List(_ref2) {
var dataSource = _ref2.dataSource,
instance = _ref2.instance;
return dataSource.map(function (v, index) {
return /*#__PURE__*/React.createElement(Item, {
key: (v === null || v === void 0 ? void 0 : v.field) || index,
item: v,
instance: instance
});
});
};
var Basic = function Basic(_ref3) {
var instance = _ref3.instance;
var dataSource = instance.dataSource;
return /*#__PURE__*/React.createElement(List, {
dataSource: dataSource,
instance: instance
});
};
export default /*#__PURE__*/React.memo(Basic);