@teamix/user-info
Version:
70 lines • 2.59 kB
JavaScript
import * as React from 'react';
import styles from './index.module.scss';
import { Avatar, Icon } from '@alicloudfe/components';
import TeamixIcon from '@teamix/icon';
var isTeamixIcon = function isTeamixIcon(type) {
if (type === void 0) {
type = '';
}
return type.endsWith('-line') || type.endsWith('-fill');
};
var InfoBlock = function InfoBlock(_ref) {
var _ref$title = _ref.title,
title = _ref$title === void 0 ? '' : _ref$title,
_ref$infoList = _ref.infoList,
infoList = _ref$infoList === void 0 ? [] : _ref$infoList,
children = _ref.children;
return /*#__PURE__*/React.createElement("div", {
className: styles.infoContainer
}, /*#__PURE__*/React.createElement("header", {
className: styles.infoTitle
}, title), /*#__PURE__*/React.createElement("div", {
className: styles.infoContent
}, infoList.map(function (_ref2, i) {
var icon = _ref2.icon,
text = _ref2.text;
return /*#__PURE__*/React.createElement("div", {
className: styles.info,
key: i
}, isTeamixIcon(icon) ? /*#__PURE__*/React.createElement(TeamixIcon, {
type: icon,
className: styles.infoIcon,
size: "small"
}) : /*#__PURE__*/React.createElement(Icon, {
type: icon,
className: styles.infoIcon,
size: "small"
}), /*#__PURE__*/React.createElement("div", {
className: styles.infoText
}, text));
})));
};
var UserInfo = function UserInfo(props) {
var title = props.title,
subtitle = props.subtitle,
_props$avatar = props.avatar,
avatar = _props$avatar === void 0 ? {
src: ''
} : _props$avatar,
_props$infoTitle = props.infoTitle,
infoTitle = _props$infoTitle === void 0 ? '基本信息' : _props$infoTitle,
_props$infoList = props.infoList,
infoList = _props$infoList === void 0 ? [] : _props$infoList,
style = props.style,
_props$className = props.className,
className = _props$className === void 0 ? '' : _props$className;
var avatarProps = Object.assign({
size: 100
}, avatar);
return /*#__PURE__*/React.createElement("section", {
className: styles.UserInfo + " " + className,
style: style
}, /*#__PURE__*/React.createElement("div", {
className: styles.top
}, /*#__PURE__*/React.createElement(Avatar, avatarProps), /*#__PURE__*/React.createElement("header", null, title), /*#__PURE__*/React.createElement("p", null, subtitle)), infoList.length > 0 ? /*#__PURE__*/React.createElement(InfoBlock, {
title: infoTitle,
infoList: infoList
}) : null);
};
UserInfo.defaultProps = {};
export default UserInfo;