fx-form-widget
Version:
47 lines • 1.72 kB
JavaScript
import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/objectWithoutPropertiesLoose";
var _excluded = ["datas", "partitions", "loading"];
import React, { createContext, useEffect, useState } from 'react';
import Group from './Group';
import { transformArrayToMap, transformPartitionsToSchemas } from './shard';
import { ProCard, ProSkeleton } from '@ant-design/pro-components';
import './index.less';
export var DetailRenderContext = /*#__PURE__*/createContext({});
var DetailRender = function DetailRender(props) {
var datas = props.datas,
partitions = props.partitions,
loading = props.loading,
restProps = _objectWithoutPropertiesLoose(props, _excluded);
var _useState = useState([]),
values = _useState[0],
setValues = _useState[1];
var Provider = DetailRenderContext.Provider;
var getTransformValues = function getTransformValues(datas, partitions) {
var map = transformArrayToMap(datas);
if (!map) {
return [];
}
return transformPartitionsToSchemas(partitions, map);
};
useEffect(function () {
var newValues = getTransformValues(datas, partitions);
setValues(newValues);
}, [datas, partitions]);
var renderProSkeleton = function renderProSkeleton(loading) {
if (!loading) {
return false;
}
return /*#__PURE__*/React.createElement(ProSkeleton, {
list: values.length,
type: "descriptions"
});
};
return /*#__PURE__*/React.createElement(Provider, {
value: restProps
}, /*#__PURE__*/React.createElement(ProCard, {
className: "custom-pro-card",
loading: renderProSkeleton(loading)
}, /*#__PURE__*/React.createElement(Group, {
values: values
})));
};
export default DetailRender;