@vtex/styleguide
Version:
> VTEX Styleguide React components ([Docs](https://vtex.github.io/styleguide))
96 lines (73 loc) • 3.16 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
var _react = require("react");
var _react2 = _interopRequireDefault(_react);
var _propTypes = require("prop-types");
var _propTypes2 = _interopRequireDefault(_propTypes);
var _ArrowBack = require("../icon/ArrowBack");
var _ArrowBack2 = _interopRequireDefault(_ArrowBack);
var _ButtonPlain = require("../ButtonPlain");
var _ButtonPlain2 = _interopRequireDefault(_ButtonPlain);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }
var PageHeader =
/*#__PURE__*/
function (_PureComponent) {
_inheritsLoose(PageHeader, _PureComponent);
function PageHeader() {
var _this;
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
args[_key] = arguments[_key];
}
_this = _PureComponent.call.apply(_PureComponent, [this].concat(args)) || this;
_this.handleClick = function (e) {
_this.props.onLinkClick && _this.props.onLinkClick(e);
};
return _this;
}
var _proto = PageHeader.prototype;
_proto.render = function render() {
var _this$props = this.props,
linkLabel = _this$props.linkLabel,
children = _this$props.children,
subtitle = _this$props.subtitle;
return _react2.default.createElement("div", {
className: "vtex-pageHeader__container pa5 pa7-ns"
}, linkLabel && _react2.default.createElement("div", {
className: "vtex-pageHeader-link__container mb3"
}, _react2.default.createElement(_ButtonPlain2.default, {
onClick: this.handleClick
}, _react2.default.createElement(_ArrowBack2.default, {
color: "currentColor"
}), _react2.default.createElement("span", {
className: "ml3 ttu t-action--small"
}, linkLabel))), _react2.default.createElement("div", {
className: "c-on-base flex flex-wrap flex-row justify-between\n " + (linkLabel ? 'mt0' : 'mt7')
}, _react2.default.createElement("div", {
className: "vtex-pageHeader__title t-heading-2 order-0 flex-grow-1"
}, this.props.title), children && _react2.default.createElement("div", {
className: "vtex-pageHeader__children order-2 order-0-ns " + (subtitle ? 'mt5' : '') + " mt0-ns"
}, children), _react2.default.createElement("div", {
className: "w-100",
style: {
height: 0
}
}), subtitle && _react2.default.createElement("div", {
className: "vtex-pageHeader__subtitle t-body lh-copy c-muted-1 mv5 order-1 order-0-ns"
}, subtitle)));
};
return PageHeader;
}(_react.PureComponent);
PageHeader.propTypes = {
/** Title for the header */
title: _propTypes2.default.node.isRequired,
/** Subtitle for the header */
subtitle: _propTypes2.default.node,
/** Label for the back button */
linkLabel: _propTypes2.default.node,
onLinkClick: _propTypes2.default.func,
children: _propTypes2.default.node
};
exports.default = PageHeader;