UNPKG

@talend/react-components

Version:
162 lines (161 loc) 6.99 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _reactI18next = require("react-i18next"); var _propTypes = _interopRequireDefault(require("prop-types")); var _AppSwitcher = _interopRequireDefault(require("../AppSwitcher")); var _constants = _interopRequireDefault(require("../constants")); var _Inject = _interopRequireDefault(require("../Inject")); var _theme = require("../theme"); var _AppNotification = require("./primitives/AppNotification.component"); var _CallToAction = require("./primitives/CallToAction.component"); var _Environment = require("./primitives/Environment.component"); var _GenericAction = require("./primitives/GenericAction.component"); var _Help = require("./primitives/Help.component"); var _Information = require("./primitives/Information.component"); var _Intercom = require("./primitives/Intercom.component"); var _Logo = require("./primitives/Logo.component"); var _Search = require("./primitives/Search.component"); var _User = require("./primitives/User.component"); var _HeaderBarModule = _interopRequireDefault(require("./HeaderBar.module.scss")); var _lodash = require("lodash"); var _jsxRuntime = require("react/jsx-runtime"); function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; } const theme = (0, _theme.getTheme)(_HeaderBarModule.default); function HeaderBar(props) { const { t } = (0, _reactI18next.useTranslation)(_constants.default); const Components = _Inject.default.getAll(props.getComponent, { Logo: _Logo.Logo, Environment: _Environment.Environment, CallToAction: _CallToAction.CallToAction, GenericAction: _GenericAction.GenericAction, Search: _Search.Search, User: _User.User, Information: _Information.Information, Help: _Help.Help, AppNotification: _AppNotification.AppNotification, Intercom: _Intercom.Intercom }); const AppSwitcherComponent = props.AppSwitcher || _Inject.default.get(props.getComponent, 'AppSwitcher', _AppSwitcher.default); let notificationCenter; const { NotificationCenter } = props; if (NotificationCenter) { notificationCenter = /*#__PURE__*/(0, _jsxRuntime.jsx)(NotificationCenter, {}); } else if (props.notification) { // Deprecated: use @talend ee notificationCenter = /*#__PURE__*/(0, _jsxRuntime.jsx)(Components.AppNotification, { getComponent: props.getComponent, ...props.notification, t: t }); } let intercom; const { Intercom: CustomIntercom } = props; if (CustomIntercom) { intercom = /*#__PURE__*/(0, _jsxRuntime.jsx)(CustomIntercom, {}); } else if (props.intercom) { // Deprecated use @talend ee intercom = /*#__PURE__*/(0, _jsxRuntime.jsx)(Components.Intercom, { getComponent: props.getComponent, ...props.intercom }); } return /*#__PURE__*/(0, _jsxRuntime.jsxs)("nav", { className: theme('tc-header-bar', 'navbar', 'navbar-inverse'), children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)("ul", { className: theme('tc-header-bar-actions', 'navbar-nav'), children: [props.logo && /*#__PURE__*/(0, _jsxRuntime.jsx)(Components.Logo, { getComponent: props.getComponent, ...props.logo, t: t }), /*#__PURE__*/(0, _jsxRuntime.jsx)(AppSwitcherComponent, { ...props.brand, ...props.products, isSeparated: !!props.env }), props.env && /*#__PURE__*/(0, _jsxRuntime.jsx)(Components.Environment, { getComponent: props.getComponent, ...props.env })] }), /*#__PURE__*/(0, _jsxRuntime.jsxs)("ul", { className: theme('tc-header-bar-actions', 'navbar-nav', 'right'), children: [props.genericAction && /*#__PURE__*/(0, _jsxRuntime.jsx)(Components.GenericAction, { getComponent: props.getComponent, ...props.genericAction }), props.callToAction && /*#__PURE__*/(0, _jsxRuntime.jsx)(Components.CallToAction, { getComponent: props.getComponent, ...props.callToAction }), props.search && /*#__PURE__*/(0, _jsxRuntime.jsx)(Components.Search, { getComponent: props.getComponent, ...props.search }), notificationCenter && /*#__PURE__*/(0, _jsxRuntime.jsx)("li", { role: "presentation", className: theme('tc-header-bar-notification-center', 'tc-header-bar-action', 'separated'), children: notificationCenter }), intercom && /*#__PURE__*/(0, _jsxRuntime.jsx)("li", { role: "presentation", className: theme('tc-header-bar-intercom', 'tc-header-bar-action', 'separated'), children: intercom }), props.help && /*#__PURE__*/(0, _jsxRuntime.jsx)(Components.Help, { getComponent: props.getComponent, ...props.help, t: t }), !props.user && props.information && /*#__PURE__*/(0, _jsxRuntime.jsx)(Components.Information, { getComponent: props.getComponent, ...props.information, t: t }), props.user && /*#__PURE__*/(0, _jsxRuntime.jsx)(Components.User, { getComponent: props.getComponent, ...props.user, t: t })] })] }); } HeaderBar.Logo = _Logo.Logo; HeaderBar.Environment = _Environment.Environment; HeaderBar.CallToAction = _CallToAction.CallToAction; HeaderBar.Search = _Search.Search; HeaderBar.GenericAction = _GenericAction.GenericAction; HeaderBar.Help = _Help.Help; HeaderBar.Information = _Information.Information; HeaderBar.User = _User.User; HeaderBar.displayName = 'HeaderBar'; HeaderBar.propTypes = { AppSwitcher: _propTypes.default.func, Intercom: _propTypes.default.func, NotificationCenter: _propTypes.default.func, logo: _propTypes.default.shape((0, _lodash.omit)(_Logo.Logo.propTypes, 't')), brand: _propTypes.default.shape({ isSeparated: _propTypes.default.bool, renderers: _propTypes.default.shape({ Action: _propTypes.default.func }), icon: _propTypes.default.string, iconUrl: _propTypes.default.string }), env: _propTypes.default.shape(_Environment.Environment.propTypes), callToAction: _propTypes.default.shape(_CallToAction.CallToAction.propTypes), genericAction: _propTypes.default.shape(_GenericAction.GenericAction.propTypes), search: _propTypes.default.shape(_Search.Search.propTypes), help: _propTypes.default.shape((0, _lodash.omit)(_Help.Help.propTypes, 't')), information: _propTypes.default.shape((0, _lodash.omit)(_Information.Information.propTypes, 't')), intercom: _propTypes.default.shape(_Intercom.Intercom.propTypes), user: _propTypes.default.shape(_User.User.propTypes), notification: _propTypes.default.shape((0, _lodash.omit)(_AppNotification.AppNotification.propTypes, 't')), products: _propTypes.default.shape({ items: _propTypes.default.array, onSelect: _propTypes.default.func }), getComponent: _propTypes.default.func, t: _propTypes.default.func }; var _default = exports.default = HeaderBar; //# sourceMappingURL=HeaderBar.component.js.map