UNPKG

@atlaskit/atlassian-navigation

Version:

A horizontal navigation component for Atlassian products.

94 lines (91 loc) 3.51 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.default = exports.Create = void 0; var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty")); var _react = require("react"); var _react2 = require("@emotion/react"); var _customThemeButton = _interopRequireDefault(require("@atlaskit/button/custom-theme-button")); var _add = _interopRequireDefault(require("@atlaskit/icon/glyph/editor/add")); var _tooltip = _interopRequireDefault(require("@atlaskit/tooltip")); var _constants = require("../../common/constants"); var _theme = require("../../theme"); var _IconButton = require("../IconButton"); var _styles = require("./styles"); /** @jsx jsx */ var wrapperStyles = (0, _react2.css)({ display: 'flex', alignItems: 'center', // eslint-disable-next-line @repo/internal/styles/no-nested-styles '& [data-hide-on-smallscreens]': (0, _defineProperty2.default)({}, "@media (max-width: ".concat(_constants.CREATE_BREAKPOINT - 1, "px)"), { display: 'none !important' }), // eslint-disable-next-line @repo/internal/styles/no-nested-styles '& [data-hide-on-largescreens]': (0, _defineProperty2.default)({}, "@media (min-width: ".concat(_constants.CREATE_BREAKPOINT, "px)"), { display: 'none !important' }), // eslint-disable-next-line @repo/internal/styles/no-nested-styles '&&': { marginLeft: _constants.gridSize * 1.5 } }); var TooltipSwitch = function TooltipSwitch(_ref) { var buttonTooltip = _ref.buttonTooltip, children = _ref.children; return buttonTooltip ? (0, _react2.jsx)(_tooltip.default, { content: buttonTooltip, hideTooltipOnClick: true }, children) : (0, _react2.jsx)(_react.Fragment, null, children); }; /** * _Create__ * * A call to action button that can be passed into `AtlassianNavigation`'s * `renderCreate` prop. It is shown after all other primary buttons. * * - [Examples](https://atlassian.design/components/atlassian-navigation/examples#create) * - [Code](https://atlassian.design/components/atlassian-navigation/code) */ var Create = function Create(_ref2) { var onClick = _ref2.onClick, href = _ref2.href, text = _ref2.text, buttonTooltip = _ref2.buttonTooltip, iconButtonTooltip = _ref2.iconButtonTooltip, testId = _ref2.testId; var theme = (0, _theme.useTheme)(); return (0, _react2.jsx)("div", { css: wrapperStyles, "data-testid": "create-button-wrapper" }, (0, _react2.jsx)(TooltipSwitch, { buttonTooltip: buttonTooltip }, (0, _react2.jsx)(_customThemeButton.default, { id: "createGlobalItem", onClick: onClick, href: href // eslint-disable-next-line @repo/internal/react/no-unsafe-overrides , theme: (0, _styles.getCreateButtonTheme)(theme), testId: testId && "".concat(testId, "-button"), "data-hide-on-smallscreens": true }, text)), (0, _react2.jsx)(_IconButton.IconButton, { id: "createGlobalItemIconButton", testId: testId && "".concat(testId, "-icon-button"), icon: (0, _react2.jsx)(_add.default, { label: text }), onClick: onClick, href: href, tooltip: iconButtonTooltip // eslint-disable-next-line @repo/internal/react/no-unsafe-overrides , theme: (0, _styles.getCreateButtonTheme)(theme), "aria-label": text, "data-hide-on-largescreens": true })); }; exports.Create = Create; var _default = Create; exports.default = _default;