@atlaskit/profilecard 16.11.0 → 17.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +18 -0
- package/dist/cjs/client/ProfileCardClient.js +2 -2
- package/dist/cjs/client/TeamProfileCardClient.js +13 -12
- package/dist/cjs/client/UserProfileCardClient.js +25 -2
- package/dist/cjs/client/errorUtils.js +25 -0
- package/dist/cjs/components/Error/ErrorMessage.js +40 -77
- package/dist/cjs/components/Team/TeamLoadingState.js +1 -1
- package/dist/cjs/components/Team/TeamProfileCard.js +4 -4
- package/dist/cjs/components/Team/TeamProfileCardTrigger.js +3 -3
- package/dist/cjs/components/User/OverflowProfileCardButtons.js +44 -10
- package/dist/cjs/components/User/ProfileCard.js +195 -362
- package/dist/cjs/components/User/ProfileCardDetails.js +142 -0
- package/dist/cjs/components/User/ProfileCardResourced.js +25 -20
- package/dist/cjs/components/User/ProfileCardTrigger.js +35 -7
- package/dist/cjs/components/User/ReportingLinesDetails.js +13 -13
- package/dist/cjs/components/User/UserLoadingState.js +14 -2
- package/dist/cjs/util/analytics.js +31 -16
- package/dist/cjs/version.json +1 -1
- package/dist/es2019/client/ProfileCardClient.js +2 -2
- package/dist/es2019/client/TeamProfileCardClient.js +3 -9
- package/dist/es2019/client/UserProfileCardClient.js +23 -2
- package/dist/es2019/client/errorUtils.js +17 -0
- package/dist/es2019/components/Error/ErrorMessage.js +38 -42
- package/dist/es2019/components/Team/TeamLoadingState.js +2 -2
- package/dist/es2019/components/Team/TeamProfileCard.js +5 -5
- package/dist/es2019/components/Team/TeamProfileCardTrigger.js +4 -4
- package/dist/es2019/components/User/OverflowProfileCardButtons.js +30 -4
- package/dist/es2019/components/User/ProfileCard.js +161 -292
- package/dist/es2019/components/User/ProfileCardDetails.js +118 -0
- package/dist/es2019/components/User/ProfileCardResourced.js +21 -21
- package/dist/es2019/components/User/ProfileCardTrigger.js +32 -6
- package/dist/es2019/components/User/ReportingLinesDetails.js +10 -11
- package/dist/es2019/components/User/UserLoadingState.js +10 -2
- package/dist/es2019/util/analytics.js +13 -8
- package/dist/es2019/version.json +1 -1
- package/dist/esm/client/ProfileCardClient.js +2 -2
- package/dist/esm/client/TeamProfileCardClient.js +11 -12
- package/dist/esm/client/UserProfileCardClient.js +22 -2
- package/dist/esm/client/errorUtils.js +17 -0
- package/dist/esm/components/Error/ErrorMessage.js +35 -80
- package/dist/esm/components/Team/TeamLoadingState.js +2 -2
- package/dist/esm/components/Team/TeamProfileCard.js +5 -5
- package/dist/esm/components/Team/TeamProfileCardTrigger.js +4 -4
- package/dist/esm/components/User/OverflowProfileCardButtons.js +39 -9
- package/dist/esm/components/User/ProfileCard.js +180 -362
- package/dist/esm/components/User/ProfileCardDetails.js +120 -0
- package/dist/esm/components/User/ProfileCardResourced.js +17 -17
- package/dist/esm/components/User/ProfileCardTrigger.js +33 -7
- package/dist/esm/components/User/ReportingLinesDetails.js +12 -12
- package/dist/esm/components/User/UserLoadingState.js +7 -2
- package/dist/esm/util/analytics.js +21 -12
- package/dist/esm/version.json +1 -1
- package/dist/types/client/ProfileCardClient.d.ts +3 -2
- package/dist/types/client/TeamProfileCardClient.d.ts +2 -1
- package/dist/types/client/UserProfileCardClient.d.ts +2 -1
- package/dist/types/client/errorUtils.d.ts +6 -0
- package/dist/types/components/Error/ErrorMessage.d.ts +6 -15
- package/dist/types/components/Team/TeamProfileCardTrigger.d.ts +5 -11
- package/dist/types/components/User/OverflowProfileCardButtons.d.ts +4 -3
- package/dist/types/components/User/ProfileCard.d.ts +5 -29
- package/dist/types/components/User/ProfileCardDetails.d.ts +3 -0
- package/dist/types/components/User/ProfileCardResourced.d.ts +7 -3
- package/dist/types/components/User/ProfileCardTrigger.d.ts +3 -40
- package/dist/types/components/User/ReportingLinesDetails.d.ts +2 -4
- package/dist/types/components/User/UserLoadingState.d.ts +5 -1
- package/dist/types/components/User/lazyProfileCard.d.ts +1 -1
- package/dist/types/types.d.ts +11 -10
- package/dist/types/util/analytics.d.ts +22 -13
- package/package.json +9 -9
- package/report.api.md +71 -124
- package/dist/cjs/internal/analytics.js +0 -15
- package/dist/es2019/internal/analytics.js +0 -8
- package/dist/esm/internal/analytics.js +0 -8
- package/dist/types/internal/analytics.d.ts +0 -8
|
@@ -2,415 +2,248 @@
|
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
4
|
|
|
5
|
+
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
6
|
+
|
|
5
7
|
Object.defineProperty(exports, "__esModule", {
|
|
6
8
|
value: true
|
|
7
9
|
});
|
|
8
|
-
exports.default = void 0;
|
|
9
|
-
|
|
10
|
-
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
11
|
-
|
|
12
|
-
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
|
|
10
|
+
exports.default = exports.ProfilecardInternal = void 0;
|
|
13
11
|
|
|
14
12
|
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
|
15
13
|
|
|
16
|
-
var
|
|
17
|
-
|
|
18
|
-
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
19
|
-
|
|
20
|
-
var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
|
|
21
|
-
|
|
22
|
-
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
|
23
|
-
|
|
24
|
-
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
|
|
25
|
-
|
|
26
|
-
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
|
|
14
|
+
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
27
15
|
|
|
28
|
-
var
|
|
16
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
29
17
|
|
|
30
|
-
var _react =
|
|
18
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
31
19
|
|
|
32
20
|
var _reactIntlNext = require("react-intl-next");
|
|
33
21
|
|
|
22
|
+
var _analyticsNext = require("@atlaskit/analytics-next");
|
|
23
|
+
|
|
34
24
|
var _avatar = _interopRequireDefault(require("@atlaskit/avatar"));
|
|
35
25
|
|
|
36
26
|
var _customThemeButton = _interopRequireDefault(require("@atlaskit/button/custom-theme-button"));
|
|
37
27
|
|
|
38
|
-
var _lozenge = _interopRequireDefault(require("@atlaskit/lozenge"));
|
|
39
|
-
|
|
40
28
|
var _spinner = _interopRequireDefault(require("@atlaskit/spinner"));
|
|
41
29
|
|
|
42
30
|
var _colors = require("@atlaskit/theme/colors");
|
|
43
31
|
|
|
44
32
|
var _tokens = require("@atlaskit/tokens");
|
|
45
33
|
|
|
46
|
-
var _analytics = require("../../internal/analytics");
|
|
47
|
-
|
|
48
|
-
var _relativeDate = _interopRequireDefault(require("../../internal/relative-date"));
|
|
49
|
-
|
|
50
34
|
var _messages = _interopRequireDefault(require("../../messages"));
|
|
51
35
|
|
|
52
36
|
var _Card = require("../../styled/Card");
|
|
53
37
|
|
|
38
|
+
var _analytics = require("../../util/analytics");
|
|
39
|
+
|
|
54
40
|
var _click = require("../../util/click");
|
|
55
41
|
|
|
56
|
-
var
|
|
42
|
+
var _performance = require("../../util/performance");
|
|
57
43
|
|
|
58
|
-
var
|
|
44
|
+
var _Error = require("../Error");
|
|
59
45
|
|
|
60
46
|
var _OverflowProfileCardButtons = require("./OverflowProfileCardButtons");
|
|
61
47
|
|
|
62
|
-
var
|
|
48
|
+
var _ProfileCardDetails = require("./ProfileCardDetails");
|
|
63
49
|
|
|
64
|
-
|
|
50
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
65
51
|
|
|
66
|
-
function
|
|
52
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
67
53
|
|
|
68
|
-
|
|
54
|
+
var GIVE_KUDOS_ACTION_ID = 'give-kudos';
|
|
69
55
|
|
|
70
|
-
var
|
|
71
|
-
(0,
|
|
56
|
+
var useKudos = function useKudos(cloudId, userId, teamCentralBaseUrl, openKudosDrawer) {
|
|
57
|
+
var kudosUrl = (0, _react.useMemo)(function () {
|
|
58
|
+
var recipientId = userId ? "&recipientId=".concat(userId) : '';
|
|
59
|
+
var cloudIdParam = cloudId ? "&cloudId=".concat(cloudId) : '';
|
|
60
|
+
return "".concat(teamCentralBaseUrl || '', "/kudos/give?type=individual").concat(recipientId).concat(cloudIdParam);
|
|
61
|
+
}, [cloudId, teamCentralBaseUrl, userId]);
|
|
62
|
+
var kudosButtonCallback = (0, _react.useCallback)(function () {
|
|
63
|
+
if (openKudosDrawer) {
|
|
64
|
+
openKudosDrawer();
|
|
65
|
+
} else {
|
|
66
|
+
window.open(kudosUrl);
|
|
67
|
+
}
|
|
68
|
+
}, [kudosUrl, openKudosDrawer]);
|
|
69
|
+
var kudosAction = (0, _react.useMemo)(function () {
|
|
70
|
+
return {
|
|
71
|
+
label: /*#__PURE__*/_react.default.createElement(_reactIntlNext.FormattedMessage, _messages.default.giveKudosButton),
|
|
72
|
+
id: GIVE_KUDOS_ACTION_ID,
|
|
73
|
+
callback: kudosButtonCallback,
|
|
74
|
+
link: kudosUrl
|
|
75
|
+
};
|
|
76
|
+
}, [kudosButtonCallback, kudosUrl]);
|
|
77
|
+
return {
|
|
78
|
+
kudosAction: kudosAction,
|
|
79
|
+
kudosButtonCallback: kudosButtonCallback,
|
|
80
|
+
kudosUrl: kudosUrl
|
|
81
|
+
};
|
|
82
|
+
};
|
|
83
|
+
|
|
84
|
+
var Wrapper = function Wrapper(props) {
|
|
85
|
+
return /*#__PURE__*/_react.default.createElement(_Card.CardWrapper, {
|
|
86
|
+
"data-testid": "profilecard"
|
|
87
|
+
}, props.children);
|
|
88
|
+
};
|
|
89
|
+
|
|
90
|
+
var ProfilecardInternal = function ProfilecardInternal(props) {
|
|
91
|
+
var _useState = (0, _react.useState)((0, _performance.getPageTime)()),
|
|
92
|
+
_useState2 = (0, _slicedToArray2.default)(_useState, 1),
|
|
93
|
+
openTime = _useState2[0];
|
|
94
|
+
|
|
95
|
+
var createAnalyticsEvent = props.createAnalyticsEvent;
|
|
96
|
+
var fireAnalytics = (0, _react.useCallback)(function (payload) {
|
|
97
|
+
if (createAnalyticsEvent) {
|
|
98
|
+
(0, _analytics.fireEvent)(createAnalyticsEvent, payload);
|
|
99
|
+
}
|
|
100
|
+
}, [createAnalyticsEvent]);
|
|
101
|
+
var fireAnalyticsWithDuration = (0, _react.useCallback)(function (generator) {
|
|
102
|
+
var elapsed = (0, _performance.getPageTime)() - openTime;
|
|
103
|
+
var event = generator(elapsed);
|
|
104
|
+
fireAnalytics(event);
|
|
105
|
+
}, [fireAnalytics, openTime]);
|
|
106
|
+
|
|
107
|
+
var _useKudos = useKudos(props.cloudId, props.userId, props.teamCentralBaseUrl, props.openKudosDrawer),
|
|
108
|
+
kudosAction = _useKudos.kudosAction;
|
|
109
|
+
|
|
110
|
+
var _props$actions = props.actions,
|
|
111
|
+
actions = _props$actions === void 0 ? [] : _props$actions,
|
|
112
|
+
isCurrentUser = props.isCurrentUser,
|
|
113
|
+
isKudosEnabled = props.isKudosEnabled,
|
|
114
|
+
_props$status = props.status,
|
|
115
|
+
status = _props$status === void 0 ? 'active' : _props$status;
|
|
116
|
+
var realActions = (0, _react.useMemo)(function () {
|
|
117
|
+
if (isCurrentUser || !isKudosEnabled || status !== 'active') {
|
|
118
|
+
return actions;
|
|
119
|
+
}
|
|
72
120
|
|
|
73
|
-
|
|
121
|
+
return actions.concat([kudosAction]);
|
|
122
|
+
}, [actions, isCurrentUser, isKudosEnabled, kudosAction, status]);
|
|
123
|
+
var isLoading = props.isLoading,
|
|
124
|
+
fullName = props.fullName,
|
|
125
|
+
hasError = props.hasError;
|
|
126
|
+
var canRender = !hasError && !isLoading && !!(fullName || status === 'closed');
|
|
127
|
+
(0, _react.useEffect)(function () {
|
|
128
|
+
if (canRender) {
|
|
129
|
+
fireAnalyticsWithDuration(function (duration) {
|
|
130
|
+
return (0, _analytics.profileCardRendered)('user', 'content', {
|
|
131
|
+
duration: duration,
|
|
132
|
+
numActions: realActions.length
|
|
133
|
+
});
|
|
134
|
+
});
|
|
135
|
+
}
|
|
136
|
+
}, [canRender, fireAnalyticsWithDuration, realActions]);
|
|
137
|
+
|
|
138
|
+
if (hasError) {
|
|
139
|
+
return /*#__PURE__*/_react.default.createElement(Wrapper, null, /*#__PURE__*/_react.default.createElement(_Error.ErrorMessage, {
|
|
140
|
+
reload: props.clientFetchProfile,
|
|
141
|
+
errorType: props.errorType || null,
|
|
142
|
+
fireAnalytics: fireAnalytics
|
|
143
|
+
}));
|
|
144
|
+
}
|
|
74
145
|
|
|
75
|
-
|
|
76
|
-
|
|
146
|
+
if (isLoading) {
|
|
147
|
+
return /*#__PURE__*/_react.default.createElement(Wrapper, null, /*#__PURE__*/_react.default.createElement(LoadingView, {
|
|
148
|
+
fireAnalyticsWithDuration: fireAnalyticsWithDuration
|
|
149
|
+
}));
|
|
150
|
+
}
|
|
77
151
|
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "durationSince", function (from) {
|
|
82
|
-
var fromParsed = from || 0;
|
|
83
|
-
return fromParsed > 0 ? Date.now() - fromParsed : null;
|
|
84
|
-
});
|
|
85
|
-
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "callClientFetchProfile", function () {
|
|
86
|
-
if (_this.props.clientFetchProfile) {
|
|
87
|
-
var _this$props;
|
|
152
|
+
if (!canRender) {
|
|
153
|
+
return null;
|
|
154
|
+
}
|
|
88
155
|
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
return _this.onActionClick(action, args, event);
|
|
121
|
-
},
|
|
122
|
-
href: action.link
|
|
123
|
-
}, action.label, isGiveKudosActionButton && /*#__PURE__*/_react.default.createElement(_Card.KudosBlobAnimation, null));
|
|
124
|
-
|
|
125
|
-
if (isGiveKudosActionButton) {
|
|
126
|
-
return /*#__PURE__*/_react.default.createElement(_Card.AnimatedKudosButton, null, actionButton);
|
|
127
|
-
}
|
|
128
|
-
|
|
129
|
-
return actionButton;
|
|
156
|
+
var isDisabledUser = status === 'inactive' || status === 'closed';
|
|
157
|
+
return /*#__PURE__*/_react.default.createElement(Wrapper, null, /*#__PURE__*/_react.default.createElement(_Card.CardContainer, {
|
|
158
|
+
isDisabledUser: isDisabledUser,
|
|
159
|
+
withoutElevation: props.withoutElevation
|
|
160
|
+
}, /*#__PURE__*/_react.default.createElement(_Card.ProfileImage, null, /*#__PURE__*/_react.default.createElement(_avatar.default, {
|
|
161
|
+
size: "xlarge",
|
|
162
|
+
src: status !== 'closed' ? props.avatarUrl : undefined,
|
|
163
|
+
borderColor: (0, _tokens.token)('elevation.shadow.overlay', _colors.N0)
|
|
164
|
+
})), /*#__PURE__*/_react.default.createElement(_Card.CardContent, null, /*#__PURE__*/_react.default.createElement(_ProfileCardDetails.ProfileCardDetails, (0, _extends2.default)({}, props, {
|
|
165
|
+
status: status,
|
|
166
|
+
fireAnalyticsWithDuration: fireAnalyticsWithDuration
|
|
167
|
+
})), realActions && /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_Card.ActionsFlexSpacer, null), /*#__PURE__*/_react.default.createElement(Actions, {
|
|
168
|
+
actions: realActions,
|
|
169
|
+
fireAnalyticsWithDuration: fireAnalyticsWithDuration
|
|
170
|
+
})))));
|
|
171
|
+
};
|
|
172
|
+
|
|
173
|
+
exports.ProfilecardInternal = ProfilecardInternal;
|
|
174
|
+
|
|
175
|
+
var Actions = function Actions(_ref) {
|
|
176
|
+
var actions = _ref.actions,
|
|
177
|
+
fireAnalyticsWithDuration = _ref.fireAnalyticsWithDuration;
|
|
178
|
+
var onActionClick = (0, _react.useCallback)(function (action, args, event, index) {
|
|
179
|
+
fireAnalyticsWithDuration(function (duration) {
|
|
180
|
+
return (0, _analytics.actionClicked)('user', {
|
|
181
|
+
duration: duration,
|
|
182
|
+
hasHref: !!action.link,
|
|
183
|
+
hasOnClick: !!action.callback,
|
|
184
|
+
index: index,
|
|
185
|
+
actionId: action.id || 'no-id-specified'
|
|
186
|
+
});
|
|
130
187
|
});
|
|
131
|
-
_this.timeOpen = null;
|
|
132
188
|
|
|
133
|
-
|
|
134
|
-
|
|
189
|
+
if (action.callback && (0, _click.isBasicClick)(event)) {
|
|
190
|
+
event.preventDefault();
|
|
191
|
+
action.callback.apply(action, [event].concat((0, _toConsumableArray2.default)(args)));
|
|
192
|
+
}
|
|
193
|
+
}, [fireAnalyticsWithDuration]);
|
|
135
194
|
|
|
136
|
-
|
|
195
|
+
if (!actions || actions.length === 0) {
|
|
196
|
+
return null;
|
|
197
|
+
}
|
|
137
198
|
|
|
138
|
-
|
|
139
|
-
|
|
199
|
+
var regularActions = actions.slice(0, _OverflowProfileCardButtons.ACTION_OVERFLOW_THRESHOLD);
|
|
200
|
+
var overflowActions = actions.length > _OverflowProfileCardButtons.ACTION_OVERFLOW_THRESHOLD ? actions.slice(_OverflowProfileCardButtons.ACTION_OVERFLOW_THRESHOLD) : undefined;
|
|
201
|
+
return /*#__PURE__*/_react.default.createElement(_Card.ActionButtonGroup, {
|
|
202
|
+
"data-testid": "profilecard-actions"
|
|
203
|
+
}, regularActions.map(function (action, index) {
|
|
204
|
+
var isKudos = action.id === GIVE_KUDOS_ACTION_ID;
|
|
205
|
+
|
|
206
|
+
var button = /*#__PURE__*/_react.default.createElement(_customThemeButton.default, {
|
|
207
|
+
appearance: "default",
|
|
208
|
+
key: action.id || index,
|
|
209
|
+
onClick: function onClick(event) {
|
|
210
|
+
for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
|
|
211
|
+
args[_key - 1] = arguments[_key];
|
|
212
|
+
}
|
|
140
213
|
|
|
141
|
-
|
|
142
|
-
|
|
214
|
+
return onActionClick(action, args, event, index);
|
|
215
|
+
},
|
|
216
|
+
href: action.link
|
|
217
|
+
}, action.label, isKudos && /*#__PURE__*/_react.default.createElement(_Card.KudosBlobAnimation, null));
|
|
143
218
|
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
value: function componentDidMount() {
|
|
147
|
-
this.timeOpen = Date.now();
|
|
148
|
-
this.callAnalytics(_analytics.AnalyticsName.PROFILE_CARD_VIEW, {});
|
|
149
|
-
}
|
|
150
|
-
}, {
|
|
151
|
-
key: "renderErrorMessage",
|
|
152
|
-
value: function renderErrorMessage() {
|
|
153
|
-
return /*#__PURE__*/_react.default.createElement(_Error.ErrorMessage, {
|
|
154
|
-
reload: this.props.clientFetchProfile && this.clientFetchProfile,
|
|
155
|
-
errorType: this.props.errorType
|
|
156
|
-
});
|
|
219
|
+
if (isKudos) {
|
|
220
|
+
return /*#__PURE__*/_react.default.createElement(_Card.AnimatedKudosButton, null, button);
|
|
157
221
|
}
|
|
158
|
-
}, {
|
|
159
|
-
key: "getActions",
|
|
160
|
-
value: function getActions() {
|
|
161
|
-
var _this3 = this;
|
|
162
|
-
|
|
163
|
-
var actions = this.props.actions || [];
|
|
164
|
-
|
|
165
|
-
if (!this.props.isCurrentUser && this.props.isKudosEnabled) {
|
|
166
|
-
var kudosAction = {
|
|
167
|
-
label: /*#__PURE__*/_react.default.createElement(_reactIntlNext.FormattedMessage, _messages.default.giveKudosButton),
|
|
168
|
-
id: this.GIVE_KUDOS_ACTION_ID,
|
|
169
|
-
callback: function callback() {
|
|
170
|
-
_this3.kudosButtonCallback();
|
|
171
|
-
},
|
|
172
|
-
link: this.kudosUrl()
|
|
173
|
-
};
|
|
174
|
-
return actions.concat([kudosAction]);
|
|
175
|
-
}
|
|
176
222
|
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
if (this.props.actions && this.props.actions.length === 0) {
|
|
185
|
-
return null;
|
|
186
|
-
}
|
|
187
|
-
|
|
188
|
-
var actions = this.getActions();
|
|
189
|
-
var firstTwoActions = actions.slice(0, 2);
|
|
190
|
-
var restOfActions = actions && actions.length > 2 ? actions.slice(2) : undefined;
|
|
191
|
-
return /*#__PURE__*/_react.default.createElement(_Card.ActionButtonGroup, null, firstTwoActions.map(function (action, idx) {
|
|
192
|
-
return _this4.renderButton(action, idx);
|
|
193
|
-
}), restOfActions && /*#__PURE__*/_react.default.createElement(_OverflowProfileCardButtons.OverflowProfileCardButtons, {
|
|
194
|
-
actions: restOfActions,
|
|
195
|
-
onItemClick: function onItemClick(action, args, event) {
|
|
196
|
-
return _this4.onActionClick(action, args, event);
|
|
197
|
-
}
|
|
198
|
-
}));
|
|
223
|
+
return button;
|
|
224
|
+
}), overflowActions && /*#__PURE__*/_react.default.createElement(_OverflowProfileCardButtons.OverflowProfileCardButtons, {
|
|
225
|
+
actions: overflowActions,
|
|
226
|
+
fireAnalyticsWithDuration: fireAnalyticsWithDuration,
|
|
227
|
+
onItemClick: function onItemClick(action, args, event, index) {
|
|
228
|
+
return onActionClick(action, args, event, index + _OverflowProfileCardButtons.ACTION_OVERFLOW_THRESHOLD);
|
|
199
229
|
}
|
|
200
|
-
}
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
230
|
+
}));
|
|
231
|
+
};
|
|
232
|
+
|
|
233
|
+
var LoadingView = function LoadingView(_ref2) {
|
|
234
|
+
var fireAnalyticsWithDuration = _ref2.fireAnalyticsWithDuration;
|
|
235
|
+
(0, _react.useEffect)(function () {
|
|
236
|
+
fireAnalyticsWithDuration(function (duration) {
|
|
237
|
+
return (0, _analytics.profileCardRendered)('user', 'spinner', {
|
|
238
|
+
duration: duration
|
|
206
239
|
});
|
|
240
|
+
});
|
|
241
|
+
}, [fireAnalyticsWithDuration]);
|
|
242
|
+
return /*#__PURE__*/_react.default.createElement(_Card.SpinnerContainer, {
|
|
243
|
+
"data-testid": "profilecard-spinner-container"
|
|
244
|
+
}, /*#__PURE__*/_react.default.createElement(_spinner.default, null));
|
|
245
|
+
};
|
|
207
246
|
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
}
|
|
212
|
-
}
|
|
213
|
-
}, {
|
|
214
|
-
key: "renderCardDetailsDefault",
|
|
215
|
-
value: function renderCardDetailsDefault() {
|
|
216
|
-
var _this5 = this;
|
|
217
|
-
|
|
218
|
-
var _this$props2 = this.props,
|
|
219
|
-
meta = _this$props2.meta,
|
|
220
|
-
location = _this$props2.location,
|
|
221
|
-
email = _this$props2.email,
|
|
222
|
-
timestring = _this$props2.timestring,
|
|
223
|
-
companyName = _this$props2.companyName,
|
|
224
|
-
customLozenges = _this$props2.customLozenges;
|
|
225
|
-
return /*#__PURE__*/_react.default.createElement(_Card.DetailsGroup, null, this.renderFullNameAndPublicName(meta), meta && /*#__PURE__*/_react.default.createElement(_Card.JobTitleLabel, null, meta), customLozenges && this.renderCustomLozenges(customLozenges), /*#__PURE__*/_react.default.createElement(_Icon.IconLabel, {
|
|
226
|
-
icon: "email"
|
|
227
|
-
}, email), /*#__PURE__*/_react.default.createElement(_Icon.IconLabel, {
|
|
228
|
-
icon: "time"
|
|
229
|
-
}, timestring), /*#__PURE__*/_react.default.createElement(_Icon.IconLabel, {
|
|
230
|
-
icon: "companyName"
|
|
231
|
-
}, companyName), /*#__PURE__*/_react.default.createElement(_Icon.IconLabel, {
|
|
232
|
-
icon: "location"
|
|
233
|
-
}, location), /*#__PURE__*/_react.default.createElement(_ReportingLinesDetails.default, {
|
|
234
|
-
reportingLines: this.props.reportingLines,
|
|
235
|
-
reportingLinesProfileUrl: this.props.reportingLinesProfileUrl,
|
|
236
|
-
onReportingLinesClick: this.props.onReportingLinesClick,
|
|
237
|
-
analytics: this.props.analytics,
|
|
238
|
-
getDuration: function getDuration() {
|
|
239
|
-
return _this5.durationSince(_this5.timeOpen);
|
|
240
|
-
}
|
|
241
|
-
}));
|
|
242
|
-
}
|
|
243
|
-
}, {
|
|
244
|
-
key: "renderCardDetailsForDisabledAccount",
|
|
245
|
-
value: function renderCardDetailsForDisabledAccount() {
|
|
246
|
-
var _this$props3 = this.props,
|
|
247
|
-
status = _this$props3.status,
|
|
248
|
-
companyName = _this$props3.companyName,
|
|
249
|
-
hasDisabledAccountLozenge = _this$props3.hasDisabledAccountLozenge;
|
|
250
|
-
return /*#__PURE__*/_react.default.createElement(_Card.DetailsGroup, null, /*#__PURE__*/_react.default.createElement(_Card.FullNameLabel, {
|
|
251
|
-
noMeta: true,
|
|
252
|
-
isDisabledAccount: true
|
|
253
|
-
}, this.getDisabledAccountName()), hasDisabledAccountLozenge && /*#__PURE__*/_react.default.createElement(_Card.LozengeWrapper, null, /*#__PURE__*/_react.default.createElement(_lozenge.default, {
|
|
254
|
-
appearance: "default",
|
|
255
|
-
isBold: true
|
|
256
|
-
}, status === 'inactive' && /*#__PURE__*/_react.default.createElement(_reactIntlNext.FormattedMessage, _messages.default.inactiveAccountMsg), status === 'closed' && /*#__PURE__*/_react.default.createElement(_reactIntlNext.FormattedMessage, _messages.default.closedAccountMsg))), /*#__PURE__*/_react.default.createElement(_Card.DisabledInfo, null, this.getDisabledAccountDesc()), status === 'inactive' && /*#__PURE__*/_react.default.createElement(_Icon.IconLabel, {
|
|
257
|
-
icon: "companyName"
|
|
258
|
-
}, companyName));
|
|
259
|
-
}
|
|
260
|
-
}, {
|
|
261
|
-
key: "getDisabledAccountName",
|
|
262
|
-
value: function getDisabledAccountName() {
|
|
263
|
-
var _this$props4 = this.props,
|
|
264
|
-
nickname = _this$props4.nickname,
|
|
265
|
-
fullName = _this$props4.fullName,
|
|
266
|
-
status = _this$props4.status;
|
|
267
|
-
|
|
268
|
-
if (status === 'inactive') {
|
|
269
|
-
return fullName || nickname;
|
|
270
|
-
} else if (status === 'closed') {
|
|
271
|
-
return nickname || /*#__PURE__*/_react.default.createElement(_reactIntlNext.FormattedMessage, _messages.default.disabledAccountDefaultName);
|
|
272
|
-
}
|
|
273
|
-
|
|
274
|
-
return null;
|
|
275
|
-
}
|
|
276
|
-
}, {
|
|
277
|
-
key: "getDisabledAccountDesc",
|
|
278
|
-
value: function getDisabledAccountDesc() {
|
|
279
|
-
var _this$props5 = this.props,
|
|
280
|
-
_this$props5$status = _this$props5.status,
|
|
281
|
-
status = _this$props5$status === void 0 ? 'closed' : _this$props5$status,
|
|
282
|
-
statusModifiedDate = _this$props5.statusModifiedDate,
|
|
283
|
-
disabledAccountMessage = _this$props5.disabledAccountMessage;
|
|
284
|
-
var date = statusModifiedDate ? new Date(statusModifiedDate * 1000) : null;
|
|
285
|
-
var relativeDateKey = (0, _relativeDate.default)(date); // consumer does not want to use built-in message
|
|
286
|
-
|
|
287
|
-
if (disabledAccountMessage) {
|
|
288
|
-
return disabledAccountMessage;
|
|
289
|
-
}
|
|
290
|
-
|
|
291
|
-
var secondSentence = null;
|
|
292
|
-
|
|
293
|
-
if (relativeDateKey) {
|
|
294
|
-
secondSentence = /*#__PURE__*/_react.default.createElement(_reactIntlNext.FormattedMessage // @ts-ignore
|
|
295
|
-
, _messages.default["".concat(status, "AccountDescMsgHasDate").concat(relativeDateKey)]);
|
|
296
|
-
} else {
|
|
297
|
-
secondSentence =
|
|
298
|
-
/*#__PURE__*/
|
|
299
|
-
// @ts-ignore
|
|
300
|
-
_react.default.createElement(_reactIntlNext.FormattedMessage, _messages.default["".concat(status, "AccountDescMsgNoDate")]);
|
|
301
|
-
}
|
|
302
|
-
|
|
303
|
-
return /*#__PURE__*/_react.default.createElement("p", null, /*#__PURE__*/_react.default.createElement(_reactIntlNext.FormattedMessage, _messages.default.generalDescMsgForDisabledUser), ' ', secondSentence);
|
|
304
|
-
}
|
|
305
|
-
}, {
|
|
306
|
-
key: "renderFullNameAndPublicName",
|
|
307
|
-
value: function renderFullNameAndPublicName(meta) {
|
|
308
|
-
var _this$props6 = this.props,
|
|
309
|
-
nickname = _this$props6.nickname,
|
|
310
|
-
fullName = _this$props6.fullName;
|
|
311
|
-
|
|
312
|
-
if (!fullName && !nickname) {
|
|
313
|
-
return null;
|
|
314
|
-
}
|
|
315
|
-
|
|
316
|
-
var displayName = fullName === nickname ? fullName : "".concat(fullName).concat(nickname ? " (".concat(nickname, ") ") : '');
|
|
317
|
-
return /*#__PURE__*/_react.default.createElement(_Card.FullNameLabel, {
|
|
318
|
-
noMeta: !meta
|
|
319
|
-
}, displayName);
|
|
320
|
-
} // Pass lozenges as an array rather taking it from the props. This will allow us combine the
|
|
321
|
-
// other lozenges (like the "deactivated" lozenge) if we need to.
|
|
322
|
-
|
|
323
|
-
}, {
|
|
324
|
-
key: "renderCustomLozenges",
|
|
325
|
-
value: function renderCustomLozenges(lozenges) {
|
|
326
|
-
return lozenges.length > 0 ? /*#__PURE__*/_react.default.createElement(_Card.CustomLozengeContainer, null, lozenges.map(function (_ref, index) {
|
|
327
|
-
var text = _ref.text,
|
|
328
|
-
otherProps = (0, _objectWithoutProperties2.default)(_ref, _excluded);
|
|
329
|
-
return /*#__PURE__*/_react.default.createElement(_lozenge.default, (0, _extends2.default)({}, otherProps, {
|
|
330
|
-
key: index
|
|
331
|
-
}), text);
|
|
332
|
-
})) : null;
|
|
333
|
-
}
|
|
334
|
-
}, {
|
|
335
|
-
key: "renderCardDetailsApp",
|
|
336
|
-
value: function renderCardDetailsApp() {
|
|
337
|
-
return /*#__PURE__*/_react.default.createElement(_Card.DetailsGroup, null, this.renderFullNameAndPublicName(), /*#__PURE__*/_react.default.createElement(_Card.AppTitleLabel, null, "App"));
|
|
338
|
-
}
|
|
339
|
-
}, {
|
|
340
|
-
key: "renderCardDetails",
|
|
341
|
-
value: function renderCardDetails() {
|
|
342
|
-
var _this$props7 = this.props,
|
|
343
|
-
isBot = _this$props7.isBot,
|
|
344
|
-
status = _this$props7.status;
|
|
345
|
-
|
|
346
|
-
if (isBot) {
|
|
347
|
-
return this.renderCardDetailsApp();
|
|
348
|
-
}
|
|
349
|
-
|
|
350
|
-
if (status === 'inactive' || status === 'closed') {
|
|
351
|
-
return this.renderCardDetailsForDisabledAccount();
|
|
352
|
-
}
|
|
353
|
-
|
|
354
|
-
return this.renderCardDetailsDefault();
|
|
355
|
-
}
|
|
356
|
-
}, {
|
|
357
|
-
key: "render",
|
|
358
|
-
value: function render() {
|
|
359
|
-
var _this$props8 = this.props,
|
|
360
|
-
fullName = _this$props8.fullName,
|
|
361
|
-
status = _this$props8.status,
|
|
362
|
-
withoutElevation = _this$props8.withoutElevation,
|
|
363
|
-
reportingLines = _this$props8.reportingLines;
|
|
364
|
-
var cardContent = null; // @FIXME do closed users have empty fullName field?
|
|
365
|
-
|
|
366
|
-
var canRender = fullName || status === 'closed';
|
|
367
|
-
|
|
368
|
-
if (this.props.hasError) {
|
|
369
|
-
this.callAnalytics(_analytics.AnalyticsName.PROFILE_CARD_ERROR, {});
|
|
370
|
-
cardContent = this.renderErrorMessage();
|
|
371
|
-
} else if (this.props.isLoading) {
|
|
372
|
-
cardContent = /*#__PURE__*/_react.default.createElement(_Card.SpinnerContainer, null, /*#__PURE__*/_react.default.createElement(_spinner.default, null));
|
|
373
|
-
} else if (canRender) {
|
|
374
|
-
var _reportingLines$manag, _reportingLines$repor;
|
|
375
|
-
|
|
376
|
-
var isDisabledUser = status === 'inactive' || status === 'closed';
|
|
377
|
-
var actions = this.renderActionsButtons();
|
|
378
|
-
this.callAnalytics(_analytics.AnalyticsName.PROFILE_CARD_LOADED, {
|
|
379
|
-
duration: this.durationSince(this.timeOpen),
|
|
380
|
-
managersCount: (reportingLines === null || reportingLines === void 0 ? void 0 : (_reportingLines$manag = reportingLines.managers) === null || _reportingLines$manag === void 0 ? void 0 : _reportingLines$manag.length) || 0,
|
|
381
|
-
directReportsCount: (reportingLines === null || reportingLines === void 0 ? void 0 : (_reportingLines$repor = reportingLines.reports) === null || _reportingLines$repor === void 0 ? void 0 : _reportingLines$repor.length) || 0
|
|
382
|
-
});
|
|
383
|
-
cardContent = /*#__PURE__*/_react.default.createElement(_Card.CardContainer, {
|
|
384
|
-
isDisabledUser: isDisabledUser,
|
|
385
|
-
withoutElevation: withoutElevation
|
|
386
|
-
}, /*#__PURE__*/_react.default.createElement(_Card.ProfileImage, null, /*#__PURE__*/_react.default.createElement(_avatar.default, {
|
|
387
|
-
size: "xlarge",
|
|
388
|
-
src: this.props.status !== 'closed' ? this.props.avatarUrl : undefined,
|
|
389
|
-
borderColor: (0, _tokens.token)('elevation.surface.overlay', _colors.N0)
|
|
390
|
-
})), /*#__PURE__*/_react.default.createElement(_Card.CardContent, null, this.renderCardDetails(), actions ? /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_Card.ActionsFlexSpacer, null), actions) : null));
|
|
391
|
-
}
|
|
392
|
-
|
|
393
|
-
return /*#__PURE__*/_react.default.createElement(_Card.CardWrapper, null, cardContent);
|
|
394
|
-
}
|
|
395
|
-
}]);
|
|
396
|
-
return Profilecard;
|
|
397
|
-
}(_react.default.PureComponent);
|
|
398
|
-
|
|
399
|
-
exports.default = Profilecard;
|
|
400
|
-
(0, _defineProperty2.default)(Profilecard, "defaultProps", {
|
|
401
|
-
isLoading: false,
|
|
402
|
-
hasError: false,
|
|
403
|
-
errorType: null,
|
|
404
|
-
status: 'active',
|
|
405
|
-
isBot: false,
|
|
406
|
-
isNotMentionable: false,
|
|
407
|
-
actions: [],
|
|
408
|
-
hasDisabledAccountLozenge: true,
|
|
409
|
-
customLozenges: [],
|
|
410
|
-
analytics: function analytics() {
|
|
411
|
-
return null;
|
|
412
|
-
},
|
|
413
|
-
clientFetchProfile: function clientFetchProfile() {
|
|
414
|
-
return null;
|
|
415
|
-
}
|
|
416
|
-
});
|
|
247
|
+
var _default = (0, _analyticsNext.withAnalyticsEvents)()(ProfilecardInternal);
|
|
248
|
+
|
|
249
|
+
exports.default = _default;
|