UNPKG

@cainiaofe/cn-ui-layout

Version:

- 安装 cone-cli | [Cone-CLI 使用指引](https://alidocs.dingtalk.com/i/nodes/xdqZp24KneBJzvGM6XezJvyb7RA0Nr1E) - `tnpm i -g @alife/cone-cli@latest` - 安装依赖包 - `cone install` - 启动研发 - `cone start`

88 lines (86 loc) 3.54 kB
import _extends from "@babel/runtime/helpers/extends"; import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/objectWithoutPropertiesLoose"; var _excluded = ["avatar", "title", "label", "desc", "className", "children", "mode", "noBottomPadding", "divider", "fullWidth"]; import React, { useContext } from 'react'; import classNames from 'classnames'; import Context from "../common/context"; var CustomCnTag = function CustomCnTag(props) { var clsPrefix = "cn-layout-page-header"; return /*#__PURE__*/React.createElement("div", { className: clsPrefix + "-tag" }, /*#__PURE__*/React.createElement("span", null, props === null || props === void 0 ? void 0 : props.children)); }; var PageHeader = function PageHeader(props) { var _classNames; var avatar = props.avatar, title = props.title, label = props.label, desc = props.desc, className = props.className, children = props.children, mode = props.mode, noBottomPadding = props.noBottomPadding, divider = props.divider, fullWidth = props.fullWidth, others = _objectWithoutPropertiesLoose(props, _excluded); var _useContext = useContext(Context), prefix = _useContext.prefix; var clsPrefix = prefix + "page-header"; var headerCls = classNames(className, clsPrefix, (_classNames = {}, _classNames[clsPrefix + "--dividing"] = divider, _classNames[clsPrefix + "--fullwidth"] = fullWidth, _classNames[prefix + "bg--" + mode] = !!mode, _classNames)); /** * 标签区域 */ var renderTags = function renderTags() { if (typeof label === 'string') { return /*#__PURE__*/React.createElement(CustomCnTag, null, label); } if (Array.isArray(label) && (label === null || label === void 0 ? void 0 : label.length) !== 0) { return /*#__PURE__*/React.createElement("div", { className: clsPrefix + "-tag-list" }, label === null || label === void 0 ? void 0 : label.map(function (text) { return /*#__PURE__*/React.createElement(CustomCnTag, null, text); })); } return null; }; /** * title 区域 */ var renderTitle = function renderTitle() { return /*#__PURE__*/React.createElement("div", { className: clsPrefix + "-title-wrapper" }, (title || label) && /*#__PURE__*/React.createElement("div", { className: clsPrefix + "-title" }, title && /*#__PURE__*/React.createElement("div", { className: clsPrefix + "-title-text" }, title), renderTags()), desc && /*#__PURE__*/React.createElement("div", { className: clsPrefix + "-desc" }, /*#__PURE__*/React.createElement("div", { title: desc, className: clsPrefix + "-desc-content" }, desc))); }; return /*#__PURE__*/React.createElement("header", _extends({}, others, { className: headerCls }), /*#__PURE__*/React.createElement("div", { className: prefix + "page-header-inner" }, /*#__PURE__*/React.createElement("div", { className: clsPrefix + "-main" }, avatar && /*#__PURE__*/React.createElement("div", { className: clsPrefix + "-avatar" }, /*#__PURE__*/React.createElement("img", { className: clsPrefix + "-avatar-img", src: avatar === null || avatar === void 0 ? void 0 : avatar.src })), renderTitle()), /*#__PURE__*/React.createElement("div", { className: clsPrefix + "-extra" }, children))); }; PageHeader.displayName = 'Header'; PageHeader.typeMark = 'Header'; PageHeader.defaultProps = { noBottomPadding: false, divider: false, fullWidth: false, mode: 'surface' }; export default PageHeader;