UNPKG

@teamix/user-info

Version:
70 lines 2.59 kB
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;