UNPKG

@atlaskit/profilecard

Version:

A React component to display a card with user information.

111 lines 6.29 kB
/* ReportingLinesDetails.tsx generated by @compiled/babel-plugin v0.39.1 */ import _defineProperty from "@babel/runtime/helpers/defineProperty"; import "./ReportingLinesDetails.compiled.css"; import { ax, ix } from "@compiled/react/runtime"; function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; } function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } import React from 'react'; import { FormattedMessage, useIntl } from 'react-intl-next'; import Avatar from '@atlaskit/avatar'; import AvatarGroup from '@atlaskit/avatar-group'; import { cx } from '@atlaskit/css'; import { Box, Pressable } from '@atlaskit/primitives/compiled'; import messages from '../../messages'; import { ManagerName, ManagerSection, OffsetWrapper, ReportingLinesSection } from '../../styled/ReportingLines'; import { PACKAGE_META_DATA } from '../../util/analytics'; import { getPageTime } from '../../util/performance'; function getProfileHref(userId, profileUrl) { return profileUrl ? profileUrl + userId : undefined; } var styles = { reportingLinesButton: "_ca0qze3t _u5f3ze3t _n3tdze3t _19bvze3t _bfhksm61 _irr31dpa", reportingLinesHeadingDefaultStyles: "_11c8i4vh _syazi7uo _k48p1pd9 _otyru2gc", reportingLinesHeadingStyles: "_otyrze3t" }; var avatarGroupMaxCount = 5; var ReportingLinesDetails = function ReportingLinesDetails(props) { var _manager$pii, _manager$pii2, _manager$pii3; var _useIntl = useIntl(), formatMessage = _useIntl.formatMessage; var fireAnalyticsWithDuration = props.fireAnalyticsWithDuration, _props$reportingLines = props.reportingLines, reportingLines = _props$reportingLines === void 0 ? {} : _props$reportingLines, reportingLinesProfileUrl = props.reportingLinesProfileUrl, onReportingLinesClick = props.onReportingLinesClick; var _reportingLines$manag = reportingLines.managers, managers = _reportingLines$manag === void 0 ? [] : _reportingLines$manag, _reportingLines$repor = reportingLines.reports, reports = _reportingLines$repor === void 0 ? [] : _reportingLines$repor; var manager = managers.length >= 1 ? managers[0] : undefined; var hasReports = reports.length > 0; var getReportingLinesOnClick = function getReportingLinesOnClick(user, userType) { return onReportingLinesClick ? function () { fireAnalyticsWithDuration('ui.profilecard.clicked.reportingLines', function (duration) { return _objectSpread({ duration: duration, userType: userType, firedAt: Math.round(getPageTime()) }, PACKAGE_META_DATA); }); onReportingLinesClick(user); } : undefined; }; var onReportingLinksClick = function onReportingLinksClick(user, userType, href) { var shouldPreventDefault = false; if (onReportingLinesClick) { shouldPreventDefault = onReportingLinesClick(user) === false; } fireAnalyticsWithDuration('ui.profilecard.clicked.reportingLines', function (duration) { return _objectSpread({ duration: duration, userType: userType, firedAt: Math.round(getPageTime()) }, PACKAGE_META_DATA); }); if (shouldPreventDefault) { return; } if (href) { window.location.href = href; } }; var showMoreButtonProps = { 'aria-label': formatMessage(messages.profileCardMoreReportingLinesLabel, { count: reports.length - avatarGroupMaxCount + 1 }) }; return /*#__PURE__*/React.createElement(React.Fragment, null, manager && /*#__PURE__*/React.createElement(ReportingLinesSection, null, /*#__PURE__*/React.createElement(Box, { xcss: cx(styles.reportingLinesHeadingDefaultStyles, styles.reportingLinesHeadingStyles) }, /*#__PURE__*/React.createElement(FormattedMessage, messages.managerSectionHeading)), /*#__PURE__*/React.createElement(OffsetWrapper, null, /*#__PURE__*/React.createElement(Pressable, { onClick: function onClick() { return onReportingLinksClick(manager, 'manager', getProfileHref(manager.accountIdentifier, reportingLinesProfileUrl)); }, isDisabled: !onReportingLinesClick, xcss: styles.reportingLinesButton, "aria-label": formatMessage(messages.viewManagerProfile, { name: (_manager$pii = manager.pii) === null || _manager$pii === void 0 ? void 0 : _manager$pii.name }) }, /*#__PURE__*/React.createElement(ManagerSection, null, /*#__PURE__*/React.createElement(Avatar, { size: "xsmall", src: (_manager$pii2 = manager.pii) === null || _manager$pii2 === void 0 ? void 0 : _manager$pii2.picture }), /*#__PURE__*/React.createElement(ManagerName, null, (_manager$pii3 = manager.pii) === null || _manager$pii3 === void 0 ? void 0 : _manager$pii3.name))))), hasReports && /*#__PURE__*/React.createElement(ReportingLinesSection, null, /*#__PURE__*/React.createElement(Box, { xcss: styles.reportingLinesHeadingDefaultStyles }, /*#__PURE__*/React.createElement(FormattedMessage, messages.directReportsSectionHeading)), /*#__PURE__*/React.createElement(AvatarGroup, { appearance: "stack", size: "small", data: reports.map(function (member) { var _member$pii, _member$pii2; return { key: member.accountIdentifier, name: ((_member$pii = member.pii) === null || _member$pii === void 0 ? void 0 : _member$pii.name) || '', src: (_member$pii2 = member.pii) === null || _member$pii2 === void 0 ? void 0 : _member$pii2.picture, href: getProfileHref(member.accountIdentifier, reportingLinesProfileUrl), onClick: getReportingLinesOnClick(member, 'direct-report') }; }), maxCount: avatarGroupMaxCount, testId: "profilecard-reports-avatar-group", showMoreButtonProps: showMoreButtonProps }))); }; export default ReportingLinesDetails;