import React from 'react';
import { Descriptions, Skeleton } from 'antd';
import PropTypes from 'prop-types';
import { generateId } from 'utils/index';
import styles from './index.less';
const Infos = ({ title, descriptions, loading }) => {
const descItems = descriptions.map((it) => {
if (typeof it.content === 'number') {
it.content = it.content.toString();
}
return (
<Descriptions.Item
label={it.label}
className={styles.item}
key={`label-${generateId()}`}
>
{it.content}
</Descriptions.Item>
);
});
return (
<Skeleton loading={loading}>
<Descriptions colon={false} title={title}>
{descItems}
</Descriptions>
</Skeleton>
);
};
const detailProps = PropTypes.shape({
label: PropTypes.oneOfType([PropTypes.string, PropTypes.node]),
content: PropTypes.any,
});
Infos.propTypes = {
title: PropTypes.oneOfType([PropTypes.string, PropTypes.node]),
descriptions: PropTypes.arrayOf(detailProps),
loading: PropTypes.bool,
};
export default Infos;