react-json-schema-editor-antd
Version:
Json Schema Editor
42 lines (41 loc) • 1.85 kB
JavaScript
function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
import { isArray } from 'lodash';
import React, { useMemo } from 'react';
import SchemaItem from "../..";
var CombinedMode = function CombinedMode(props) {
var combinedData = props.combinedData,
_props$nodeDepth = props.nodeDepth,
nodeDepth = _props$nodeDepth === void 0 ? 0 : _props$nodeDepth,
_props$namePath = props.namePath,
namePath = _props$namePath === void 0 ? [] : _props$namePath,
propertyName = props.propertyName,
nameType = props.nameType;
// 缓存 namePath 的衍生值
var cachedPaths = useMemo(function () {
return isArray(combinedData) ? combinedData.map(function (_, index) {
return namePath.concat(nameType, index);
}) : [];
}, [combinedData, namePath.join(), nameType]);
return /*#__PURE__*/React.createElement("div", {
className: "sortable-table-container"
}, isArray(combinedData) && combinedData.map(function (item, index) {
return /*#__PURE__*/React.createElement(SchemaItem, _extends({
key: "".concat(propertyName, "-").concat(index)
}, props, {
isArrayItems: false,
isCombinedItems: true,
nodeDepth: nodeDepth,
namePath: cachedPaths[index],
propertyName: String(index),
schema: item,
isFirstCombinedData: index === 0
}));
return /*#__PURE__*/React.createElement(React.Fragment, null);
}), /*#__PURE__*/React.createElement("div", {
className: "dash-line",
style: {
left: "".concat(nodeDepth * 10, "px")
}
}));
};
export default CombinedMode;