@talend/react-components
Version:
Set of react components.
58 lines • 1.55 kB
JavaScript
import PropTypes from 'prop-types';
import Inject from '../../Inject';
import ActionDropdown from '../../Actions/ActionDropdown';
import { getTheme } from '../../theme';
import headerBarCssModule from '../HeaderBar.module.scss';
import { jsx as _jsx } from "react/jsx-runtime";
const theme = getTheme(headerBarCssModule);
export function User({
name,
firstName,
lastName,
getComponent,
t,
...rest
}) {
const className = theme('tc-header-bar-action', 'tc-header-bar-user', 'separated');
const Renderers = Inject.getAll(getComponent, {
ActionDropdown
});
function getDisplayName(params) {
if (params.firstName && params.lastName) {
return `${params.firstName} ${params.lastName}`;
}
return params.name;
}
const displayName = getDisplayName({
name,
firstName,
lastName
});
const ariaLabel = t('HEADERBAR_USER_MENU', {
defaultValue: 'Open user menu. Current user: {{name}}.',
name: displayName
});
return /*#__PURE__*/_jsx("li", {
role: "presentation",
className: className,
children: /*#__PURE__*/_jsx(Renderers.ActionDropdown, {
bsStyle: "link",
icon: "talend-user-circle",
pullRight: true,
label: displayName,
"aria-label": ariaLabel,
...rest
})
});
}
User.propTypes = {
firstName: PropTypes.string,
lastName: PropTypes.string,
getComponent: PropTypes.func,
name: PropTypes.string,
renderers: PropTypes.shape({
ActionDropdown: PropTypes.func
}),
t: PropTypes.func
};
//# sourceMappingURL=User.component.js.map