@boomerang-io/carbon-addons-boomerang-react
Version:
Carbon Addons for Boomerang apps
62 lines (59 loc) • 2.9 kB
JavaScript
import React from 'react';
import { HeaderMenuItem as HeaderMenuItem$2 } from '@carbon/react';
import { ArrowRight } from '@carbon/react/icons';
import Avatar from '../Avatar/Avatar.js';
import cx from 'classnames';
import { prefix } from '../../internal/settings.js';
/*
IBM Confidential
694970X, 69497O0
© Copyright IBM Corp. 2022, 2024
*/
function HeaderMenuItem(props, ref) {
if (props.type === "button") {
const { icon, onClick, type, text, variant = "default", ...rest } = props;
return (React.createElement(HeaderMenuItem$2
// eslint-disable-next-line no-script-url
, {
// eslint-disable-next-line no-script-url
href: "javascript:void(0)", onClick: onClick, role: "menuitem", ref: ref, ...rest },
React.createElement("div", { className: `${prefix}--bmrg-header-menu-item__content ${variant === "danger" ? "--danger" : ""}` },
React.createElement("span", { className: `${prefix}--bmrg-header-menu-item__text` },
icon,
text))));
}
if (props.type === "link") {
const { href, icon, kind, onClick, text, type, variant = "default", ...rest } = props;
const externalProps = kind === "external" ? { target: "_blank", rel: "noopener noreferrer" } : {};
let linkTypeIcon;
switch (kind) {
case "external":
break;
case "internal":
linkTypeIcon = React.createElement(ArrowRight, { title: "Opens link within same platform" });
break;
// no-op
}
return (React.createElement(HeaderMenuItem$2, { href: href, ...externalProps, onClick: onClick, role: "menuitem", ref: ref, ...rest },
React.createElement("div", { className: cx(`${prefix}--bmrg-header-menu-item__content`, { "--danger": variant === "danger" }) },
React.createElement("span", { className: `${prefix}--bmrg-header-menu-item__text` },
icon,
text),
linkTypeIcon)));
}
if (props.type === "user") {
const { icon, onClick = "default", src, type, userName, ...rest } = props;
return (
// eslint-disable-next-line no-script-url
React.createElement(HeaderMenuItem$2, { href: "javascript:void(0)", onClick: onClick, role: "menuitem", ref: ref, ...rest },
React.createElement("div", { className: `${prefix}--bmrg-header-menu-user` },
React.createElement(Avatar, { size: "medium", src: src, userName: userName }),
React.createElement("p", { className: `${prefix}--bmrg-header-menu-user__name` },
" ",
userName ? userName : "",
" "))));
}
return null;
}
var HeaderMenuItem$1 = React.forwardRef(HeaderMenuItem);
export { HeaderMenuItem$1 as default };