design-system-govbr-rnp
Version:
## Padrão Digital de Governo - React Biblioteca de componentes React que implementa o [Padrão Visual digital do governo](https://www.gov.br/ds/). O objetivo da biblioteca é facilitar a implementação e promover a padronização das interfaces de sistemas do
68 lines (67 loc) • 2.58 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _react = _interopRequireDefault(require("react"));
var _propTypes = _interopRequireDefault(require("prop-types"));
var _freeSolidSvgIcons = require("@fortawesome/free-solid-svg-icons");
var _reactRouterDom = require("react-router-dom");
var _Button = _interopRequireDefault(require("../Button/Button"));
var _styles = require("./styles");
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var Breadcrumb = function Breadcrumb(_ref) {
var breadcrumbs = _ref.breadcrumbs;
var renderHomePage = function renderHomePage(index) {
return /*#__PURE__*/_react.default.createElement("li", {
key: index
}, /*#__PURE__*/_react.default.createElement(_Button.default, {
circle: true,
iconProps: {
icon: _freeSolidSvgIcons.faHome,
ariaLabel: "Ícone Cidade"
}
}), /*#__PURE__*/_react.default.createElement(_styles.Icon, {
"aria-hidden": "true",
icon: _freeSolidSvgIcons.faChevronRight
}));
};
var renderCurrentPage = function renderCurrentPage(breadcrumb, index) {
return /*#__PURE__*/_react.default.createElement("li", {
key: index,
"aria-current": "page"
}, /*#__PURE__*/_react.default.createElement("p", null, breadcrumb.name));
};
var renderCrumbLink = function renderCrumbLink(breadcrumb, index) {
return /*#__PURE__*/_react.default.createElement("li", {
key: index
}, /*#__PURE__*/_react.default.createElement(_reactRouterDom.Link, {
to: breadcrumb.url
}, breadcrumb.name), /*#__PURE__*/_react.default.createElement(_styles.Icon, {
"aria-hidden": "true",
icon: _freeSolidSvgIcons.faChevronRight
}));
};
var renderList = function renderList() {
return breadcrumbs.map(function (breadcrumb, index) {
if (breadcrumbs.length - 1 === index) {
return renderCurrentPage(breadcrumb, index);
}
if (breadcrumb === breadcrumbs[0]) {
return renderHomePage(breadcrumb, index);
}
return renderCrumbLink(breadcrumb, index);
});
};
return /*#__PURE__*/_react.default.createElement(_styles.Nav, {
"aria-label": "Breadcrumb"
}, /*#__PURE__*/_react.default.createElement("ol", null, renderList()));
};
_Button.default.propTypes = {
breadcrumbs: _propTypes.default.arrayOf(_propTypes.default.shape({
name: _propTypes.default.string,
url: _propTypes.default.string
})).isRequired
};
var _default = Breadcrumb;
exports.default = _default;