UNPKG

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
"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;