@talend/react-components
Version:
Set of react components.
162 lines (161 loc) • 6.99 kB
JavaScript
"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