@atlaskit/profilecard 23.4.0 → 23.4.2
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 +16 -0
- package/afm-cc/tsconfig.json +3 -0
- package/afm-jira/tsconfig.json +3 -0
- package/afm-post-office/tsconfig.json +3 -0
- package/dist/cjs/client/getOrgIdForCloudIdFromAGG.js +1 -1
- package/dist/cjs/client/getTeamFromAGG.js +1 -1
- package/dist/cjs/components/Team/TeamProfileCard.js +43 -4
- package/dist/cjs/components/Team/TeamProfileCardTrigger.js +30 -4
- package/dist/cjs/components/team-profile-card/main.compiled.css +6 -7
- package/dist/cjs/components/team-profile-card/main.js +30 -40
- package/dist/cjs/messages.js +5 -0
- package/dist/cjs/util/analytics.js +1 -1
- package/dist/es2019/client/getOrgIdForCloudIdFromAGG.js +1 -1
- package/dist/es2019/client/getTeamFromAGG.js +1 -1
- package/dist/es2019/components/Team/TeamProfileCard.js +41 -4
- package/dist/es2019/components/Team/TeamProfileCardTrigger.js +31 -5
- package/dist/es2019/components/team-profile-card/main.compiled.css +6 -7
- package/dist/es2019/components/team-profile-card/main.js +19 -28
- package/dist/es2019/messages.js +5 -0
- package/dist/es2019/util/analytics.js +1 -1
- package/dist/esm/client/getOrgIdForCloudIdFromAGG.js +1 -1
- package/dist/esm/client/getTeamFromAGG.js +1 -1
- package/dist/esm/components/Team/TeamProfileCard.js +43 -4
- package/dist/esm/components/Team/TeamProfileCardTrigger.js +31 -5
- package/dist/esm/components/team-profile-card/main.compiled.css +6 -7
- package/dist/esm/components/team-profile-card/main.js +29 -39
- package/dist/esm/messages.js +5 -0
- package/dist/esm/util/analytics.js +1 -1
- package/dist/types/components/Team/TeamProfileCardTrigger.d.ts +6 -19
- package/dist/types/messages.d.ts +5 -0
- package/dist/types/types.d.ts +12 -4
- package/dist/types-ts4.5/components/Team/TeamProfileCardTrigger.d.ts +6 -19
- package/dist/types-ts4.5/messages.d.ts +5 -0
- package/dist/types-ts4.5/types.d.ts +12 -4
- package/package.json +10 -6
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,21 @@
|
|
|
1
1
|
# @atlaskit/profilecard
|
|
2
2
|
|
|
3
|
+
## 23.4.2
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- [#130443](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/pull-requests/130443)
|
|
8
|
+
[`85df6ddb8d6de`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/85df6ddb8d6de) -
|
|
9
|
+
[ux] few UI update for the team profile card
|
|
10
|
+
|
|
11
|
+
## 23.4.1
|
|
12
|
+
|
|
13
|
+
### Patch Changes
|
|
14
|
+
|
|
15
|
+
- [#128871](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/pull-requests/128871)
|
|
16
|
+
[`a4f35151d2de5`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/a4f35151d2de5) -
|
|
17
|
+
Fix a11y issue on team profile card toggletip
|
|
18
|
+
|
|
3
19
|
## 23.4.0
|
|
4
20
|
|
|
5
21
|
### Minor Changes
|
package/afm-cc/tsconfig.json
CHANGED
package/afm-jira/tsconfig.json
CHANGED
|
@@ -11,7 +11,7 @@ var _graphqlUtils = require("./graphqlUtils");
|
|
|
11
11
|
var ORG_ID_FROM_CLOUD_ID_QUERY = "query OrgIdFromCloudId($cloudId: ID!) {\n\ttenantContexts(cloudIds: [$cloudId]) {\n\t\torgId\n\t}\n}";
|
|
12
12
|
var addHeaders = function addHeaders(headers) {
|
|
13
13
|
headers.append('atl-client-name', "@atlaskit/profilecard");
|
|
14
|
-
headers.append('atl-client-version', "23.4.
|
|
14
|
+
headers.append('atl-client-version', "23.4.2");
|
|
15
15
|
return headers;
|
|
16
16
|
};
|
|
17
17
|
function getOrgIdForCloudIdFromAGG(_x, _x2) {
|
|
@@ -66,7 +66,7 @@ var addHeaders = exports.addHeaders = function addHeaders(headers) {
|
|
|
66
66
|
headers.append('X-ExperimentalApi', 'teams-beta');
|
|
67
67
|
headers.append('X-ExperimentalApi', 'team-members-beta');
|
|
68
68
|
headers.append('atl-client-name', "@atlaskit/profilecard");
|
|
69
|
-
headers.append('atl-client-version', "23.4.
|
|
69
|
+
headers.append('atl-client-version', "23.4.2");
|
|
70
70
|
return headers;
|
|
71
71
|
};
|
|
72
72
|
function getTeamFromAGG(_x, _x2, _x3) {
|
|
@@ -12,6 +12,7 @@ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")
|
|
|
12
12
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
13
13
|
var _react = _interopRequireWildcard(require("react"));
|
|
14
14
|
var _reactIntlNext = require("react-intl-next");
|
|
15
|
+
var _avatar = _interopRequireDefault(require("@atlaskit/avatar"));
|
|
15
16
|
var _avatarGroup = _interopRequireDefault(require("@atlaskit/avatar-group"));
|
|
16
17
|
var _loadingButton = _interopRequireDefault(require("@atlaskit/button/loading-button"));
|
|
17
18
|
var _new = _interopRequireWildcard(require("@atlaskit/button/new"));
|
|
@@ -61,7 +62,8 @@ var TeamMembers = function TeamMembers(_ref) {
|
|
|
61
62
|
generateUserLink = _ref.generateUserLink,
|
|
62
63
|
members = _ref.members,
|
|
63
64
|
onUserClick = _ref.onUserClick,
|
|
64
|
-
includingYou = _ref.includingYou
|
|
65
|
+
includingYou = _ref.includingYou,
|
|
66
|
+
isTriggeredByKeyboard = _ref.isTriggeredByKeyboard;
|
|
65
67
|
var _useIntl = (0, _reactIntlNext.useIntl)(),
|
|
66
68
|
formatMessage = _useIntl.formatMessage;
|
|
67
69
|
var count = members ? members.length : 0;
|
|
@@ -70,6 +72,14 @@ var TeamMembers = function TeamMembers(_ref) {
|
|
|
70
72
|
// Use a ref to track whether this is currently open, so we can fire events
|
|
71
73
|
// iff the more section is being opened (not closed).
|
|
72
74
|
var isMoreMembersOpen = (0, _react.useRef)(false);
|
|
75
|
+
var avatarRef = (0, _react.useRef)(null);
|
|
76
|
+
var ref = function ref(element) {
|
|
77
|
+
if (isTriggeredByKeyboard) {
|
|
78
|
+
var _avatarRef$current;
|
|
79
|
+
avatarRef.current = element;
|
|
80
|
+
(_avatarRef$current = avatarRef.current) === null || _avatarRef$current === void 0 || _avatarRef$current.focus();
|
|
81
|
+
}
|
|
82
|
+
};
|
|
73
83
|
var onMoreClick = (0, _react.useCallback)(function () {
|
|
74
84
|
var isOpen = isMoreMembersOpen.current;
|
|
75
85
|
if (!isOpen) {
|
|
@@ -93,7 +103,34 @@ var TeamMembers = function TeamMembers(_ref) {
|
|
|
93
103
|
values: {
|
|
94
104
|
count: count
|
|
95
105
|
}
|
|
96
|
-
}))), members && members.length > 0 && /*#__PURE__*/_react.default.createElement(_TeamCard.AvatarSection, null, /*#__PURE__*/_react.default.createElement(_avatarGroup.default, {
|
|
106
|
+
}))), members && members.length > 0 && /*#__PURE__*/_react.default.createElement(_TeamCard.AvatarSection, null, (0, _platformFeatureFlags.fg)('enable_team_profilecard_toggletip_a11y_fix') ? /*#__PURE__*/_react.default.createElement(_avatarGroup.default, {
|
|
107
|
+
appearance: "stack",
|
|
108
|
+
data: members.map(function (member, index) {
|
|
109
|
+
var href = generateUserLink === null || generateUserLink === void 0 ? void 0 : generateUserLink(member.id);
|
|
110
|
+
var onClick = onMemberClick(onUserClick, member.id, analytics, index, !!generateUserLink);
|
|
111
|
+
return {
|
|
112
|
+
key: member.id,
|
|
113
|
+
name: member.fullName,
|
|
114
|
+
src: member.avatarUrl,
|
|
115
|
+
href: href,
|
|
116
|
+
onClick: onClick
|
|
117
|
+
};
|
|
118
|
+
}),
|
|
119
|
+
maxCount: avatarGroupMaxCount,
|
|
120
|
+
showMoreButtonProps: showMoreButtonProps,
|
|
121
|
+
testId: "profilecard-avatar-group",
|
|
122
|
+
overrides: {
|
|
123
|
+
Avatar: {
|
|
124
|
+
render: function render(Component, props, index) {
|
|
125
|
+
return index === 0 ? /*#__PURE__*/_react.default.createElement(_avatar.default, (0, _extends2.default)({
|
|
126
|
+
ref: ref
|
|
127
|
+
}, props, {
|
|
128
|
+
testId: "first-member"
|
|
129
|
+
})) : /*#__PURE__*/_react.default.createElement(Component, props);
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
}) : /*#__PURE__*/_react.default.createElement(_avatarGroup.default, {
|
|
97
134
|
appearance: "stack",
|
|
98
135
|
data: members.map(function (member, index) {
|
|
99
136
|
var href = generateUserLink === null || generateUserLink === void 0 ? void 0 : generateUserLink(member.id);
|
|
@@ -248,7 +285,8 @@ var TeamProfilecardContent = function TeamProfilecardContent(_ref5) {
|
|
|
248
285
|
generateUserLink = _ref5.generateUserLink,
|
|
249
286
|
onUserClick = _ref5.onUserClick,
|
|
250
287
|
viewProfileLink = _ref5.viewProfileLink,
|
|
251
|
-
viewProfileOnClick = _ref5.viewProfileOnClick
|
|
288
|
+
viewProfileOnClick = _ref5.viewProfileOnClick,
|
|
289
|
+
isTriggeredByKeyboard = _ref5.isTriggeredByKeyboard;
|
|
252
290
|
var allActions = [{
|
|
253
291
|
label: /*#__PURE__*/_react.default.createElement(_reactIntlNext.FormattedMessage, _messages.default.teamViewProfile),
|
|
254
292
|
link: viewProfileLink,
|
|
@@ -284,7 +322,8 @@ var TeamProfilecardContent = function TeamProfilecardContent(_ref5) {
|
|
|
284
322
|
members: team.members,
|
|
285
323
|
generateUserLink: generateUserLink,
|
|
286
324
|
includingYou: includingYou,
|
|
287
|
-
onUserClick: onUserClick
|
|
325
|
+
onUserClick: onUserClick,
|
|
326
|
+
isTriggeredByKeyboard: isTriggeredByKeyboard
|
|
288
327
|
}), team.description.trim() && /*#__PURE__*/_react.default.createElement(_TeamCard.DescriptionWrapper, null, /*#__PURE__*/_react.default.createElement(_TeamCard.Description, null, team.description)), /*#__PURE__*/_react.default.createElement(ButtonSection, {
|
|
289
328
|
actions: allActions,
|
|
290
329
|
analytics: analytics
|
|
@@ -20,6 +20,7 @@ var _analyticsNext = require("@atlaskit/analytics-next");
|
|
|
20
20
|
var _giveKudos = require("@atlaskit/give-kudos");
|
|
21
21
|
var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
|
|
22
22
|
var _popup = _interopRequireDefault(require("@atlaskit/popup"));
|
|
23
|
+
var _primitives = require("@atlaskit/primitives");
|
|
23
24
|
var _constants = require("@atlaskit/theme/constants");
|
|
24
25
|
var _filterActions2 = _interopRequireDefault(require("../../internal/filterActions"));
|
|
25
26
|
var _messages = _interopRequireDefault(require("../../messages"));
|
|
@@ -123,8 +124,23 @@ var TeamProfileCardTriggerInternal = exports.TeamProfileCardTriggerInternal = /*
|
|
|
123
124
|
_this.hideProfilecard(_config.DELAY_MS_HIDE);
|
|
124
125
|
}
|
|
125
126
|
});
|
|
127
|
+
(0, _defineProperty2.default)(_this, "onKeyPress", function (event) {
|
|
128
|
+
if (event.key === 'Enter' || event.key === ' ') {
|
|
129
|
+
event.preventDefault();
|
|
130
|
+
_this.setState({
|
|
131
|
+
isTriggeredByKeyboard: true
|
|
132
|
+
});
|
|
133
|
+
_this.showProfilecard(0);
|
|
134
|
+
if (!_this.state.visible) {
|
|
135
|
+
_this.fireAnalytics((0, _analytics.cardTriggered)('team', 'click'));
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
});
|
|
126
139
|
(0, _defineProperty2.default)(_this, "onClose", function () {
|
|
127
140
|
_this.hideProfilecard();
|
|
141
|
+
_this.setState({
|
|
142
|
+
isTriggeredByKeyboard: false
|
|
143
|
+
});
|
|
128
144
|
});
|
|
129
145
|
(0, _defineProperty2.default)(_this, "openKudosDrawer", function () {
|
|
130
146
|
_this.hideProfilecard(_config.DELAY_MS_HIDE);
|
|
@@ -165,7 +181,8 @@ var TeamProfileCardTriggerInternal = exports.TeamProfileCardTriggerInternal = /*
|
|
|
165
181
|
data: null,
|
|
166
182
|
shouldShowGiveKudos: false,
|
|
167
183
|
teamCentralBaseUrl: undefined,
|
|
168
|
-
kudosDrawerOpen: false
|
|
184
|
+
kudosDrawerOpen: false,
|
|
185
|
+
isTriggeredByKeyboard: false
|
|
169
186
|
});
|
|
170
187
|
(0, _defineProperty2.default)(_this, "clientFetchProfile", function () {
|
|
171
188
|
var _this$props = _this.props,
|
|
@@ -235,7 +252,8 @@ var TeamProfileCardTriggerInternal = exports.TeamProfileCardTriggerInternal = /*
|
|
|
235
252
|
}, /*#__PURE__*/_react.default.createElement(_lazyTeamProfileCard.TeamProfileCardLazy, (0, _extends2.default)({}, newProps, {
|
|
236
253
|
isLoading: isLoading,
|
|
237
254
|
hasError: hasError,
|
|
238
|
-
errorType: error
|
|
255
|
+
errorType: error,
|
|
256
|
+
isTriggeredByKeyboard: _this.state.isTriggeredByKeyboard
|
|
239
257
|
}))));
|
|
240
258
|
});
|
|
241
259
|
(0, _defineProperty2.default)(_this, "renderKudosLauncher", function () {
|
|
@@ -257,10 +275,18 @@ var TeamProfileCardTriggerInternal = exports.TeamProfileCardTriggerInternal = /*
|
|
|
257
275
|
(0, _defineProperty2.default)(_this, "renderTrigger", function (triggerProps) {
|
|
258
276
|
var _this$props3 = _this.props,
|
|
259
277
|
children = _this$props3.children,
|
|
278
|
+
intl = _this$props3.intl,
|
|
260
279
|
triggerLinkType = _this$props3.triggerLinkType,
|
|
261
280
|
viewProfileLink = _this$props3.viewProfileLink;
|
|
262
281
|
if (triggerLinkType === 'none') {
|
|
263
|
-
return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, _this.renderKudosLauncher(), /*#__PURE__*/_react.default.createElement(
|
|
282
|
+
return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, _this.renderKudosLauncher(), (0, _platformFeatureFlags.fg)('enable_team_profilecard_toggletip_a11y_fix') ? /*#__PURE__*/_react.default.createElement(_primitives.Box, (0, _extends2.default)({
|
|
283
|
+
as: "span",
|
|
284
|
+
role: "button",
|
|
285
|
+
testId: "team-profilecard-trigger-wrapper",
|
|
286
|
+
tabIndex: 0,
|
|
287
|
+
"aria-label": intl.formatMessage(_messages.default.teamProfileCardAriaLabel),
|
|
288
|
+
onKeyUp: _this.onKeyPress
|
|
289
|
+
}, triggerProps, _this.triggerListeners), children) : /*#__PURE__*/_react.default.createElement("span", (0, _extends2.default)({
|
|
264
290
|
"data-testid": "team-profilecard-trigger-wrapper"
|
|
265
291
|
}, triggerProps, _this.triggerListeners), children));
|
|
266
292
|
}
|
|
@@ -393,4 +419,4 @@ var TeamProfileCardTriggerInternal = exports.TeamProfileCardTriggerInternal = /*
|
|
|
393
419
|
triggerLinkType: 'link',
|
|
394
420
|
shouldRenderToParent: true
|
|
395
421
|
});
|
|
396
|
-
var _default = exports.default = (0, _analyticsNext.withAnalyticsEvents)()(TeamProfileCardTriggerInternal);
|
|
422
|
+
var _default = exports.default = (0, _analyticsNext.withAnalyticsEvents)()((0, _reactIntlNext.injectIntl)(TeamProfileCardTriggerInternal));
|
|
@@ -6,27 +6,26 @@
|
|
|
6
6
|
._1dqonqa1{border-style:solid}
|
|
7
7
|
._1h6dmuej{border-color:var(--ds-border,#091e4224)}._15a5nqa1{border-top-style:solid}
|
|
8
8
|
._18m915vq{overflow-y:hidden}
|
|
9
|
-
.
|
|
9
|
+
._18u01ejb{margin-left:var(--ds-space-300,24px)}
|
|
10
|
+
._19bv1ejb{padding-left:var(--ds-space-300,24px)}
|
|
10
11
|
._19pkpxbi{margin-top:var(--ds-space-200,1pc)}
|
|
11
|
-
.
|
|
12
|
+
._19pku2gc{margin-top:var(--ds-space-100,8px)}
|
|
12
13
|
._1bsb1osq{width:100%}
|
|
13
|
-
._1bsb1w8u{width:80%}
|
|
14
14
|
._1bsb5x59{width:340px}
|
|
15
|
-
._1bsbvbgk{width:4pc}
|
|
16
15
|
._1e0c1txw{display:flex}
|
|
17
16
|
._1i53muej{border-top-color:var(--ds-border,#091e4224)}
|
|
18
17
|
._1reo15vq{overflow-x:hidden}
|
|
19
18
|
._1ul95x59{min-width:340px}
|
|
20
|
-
.
|
|
19
|
+
._2hwx1ejb{margin-right:var(--ds-space-300,24px)}
|
|
21
20
|
._2lx21bp4{flex-direction:column}
|
|
22
21
|
._4cvr1h6o{align-items:center}
|
|
23
22
|
._4t3i1ul9{height:30px}
|
|
24
23
|
._4t3i1wug{height:auto}
|
|
25
|
-
.
|
|
24
|
+
._4t3i53f4{height:75pt}
|
|
26
25
|
._5ral1dfr{object-fit:cover}
|
|
27
26
|
._bfhksm61{background-color:var(--ds-background-neutral-subtle,#00000000)}
|
|
28
|
-
._c71l53f4{max-height:75pt}
|
|
29
27
|
._kqswstnw{position:absolute}
|
|
30
28
|
._otyrpxbi{margin-bottom:var(--ds-space-200,1pc)}
|
|
31
29
|
._s7n4jp4b{vertical-align:top}
|
|
30
|
+
._u5f31ejb{padding-right:var(--ds-space-300,24px)}
|
|
32
31
|
._uwhke4h9{border-top-width:var(--ds-border-width,1px)}
|
|
@@ -14,15 +14,15 @@ var _avatarGroup = _interopRequireDefault(require("@atlaskit/avatar-group"));
|
|
|
14
14
|
var _heading = _interopRequireDefault(require("@atlaskit/heading"));
|
|
15
15
|
var _verifiedTeamIcon = require("@atlaskit/people-teams-ui-public/verified-team-icon");
|
|
16
16
|
var _compiled = require("@atlaskit/primitives/compiled");
|
|
17
|
+
var _teamsAvatar = _interopRequireDefault(require("@atlaskit/teams-avatar"));
|
|
17
18
|
var styles = {
|
|
18
19
|
wrapperStyles: "_2rkopd34 _v564nm7n _1reo15vq _18m915vq _189ee4h9 _1dqonqa1 _1h6dmuej _1e0c1txw _2lx21bp4 _1bsb5x59 _1ul95x59 _4t3i1wug",
|
|
19
20
|
containerStyles: "_otyrpxbi",
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
viewProfileButtonStyles: "_2rkoiti9 _189ee4h9 _1dqonqa1 _1h6dmuej _bfhksm61 _1bsb1w8u _4t3i1ul9 _19pkpxbi"
|
|
21
|
+
avatarImageStyles: "_kqswstnw _18u01ejb",
|
|
22
|
+
headerImageStyles: "_5ral1dfr _s7n4jp4b _4t3i53f4 _1bsb1osq",
|
|
23
|
+
teamInformationStyles: "_18u01ejb _19pku2gc _2hwx1ejb",
|
|
24
|
+
viewProfileContainerStyles: "_4cvr1h6o _uwhke4h9 _15a5nqa1 _1i53muej _19bv1ejb _u5f31ejb",
|
|
25
|
+
viewProfileButtonStyles: "_2rkoiti9 _189ee4h9 _1dqonqa1 _1h6dmuej _bfhksm61 _1bsb1osq _4t3i1ul9 _19pkpxbi"
|
|
26
26
|
};
|
|
27
27
|
var TeamCardWrapper = function TeamCardWrapper(_ref) {
|
|
28
28
|
var id = _ref.id,
|
|
@@ -42,50 +42,42 @@ var HeaderImage = function HeaderImage(_ref2) {
|
|
|
42
42
|
alt: "team-header-image"
|
|
43
43
|
});
|
|
44
44
|
};
|
|
45
|
-
var
|
|
46
|
-
var
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
var teamId = _ref4.teamId,
|
|
56
|
-
displayName = _ref4.displayName,
|
|
57
|
-
description = _ref4.description,
|
|
58
|
-
avatarImageUrl = _ref4.avatarImageUrl,
|
|
59
|
-
headerImageUrl = _ref4.headerImageUrl,
|
|
60
|
-
memberAvatars = _ref4.memberAvatars,
|
|
61
|
-
memberCount = _ref4.memberCount,
|
|
62
|
-
isVerified = _ref4.isVerified,
|
|
63
|
-
teamProfileUrl = _ref4.teamProfileUrl;
|
|
45
|
+
var TeamProfileCard = exports.TeamProfileCard = function TeamProfileCard(_ref3) {
|
|
46
|
+
var teamId = _ref3.teamId,
|
|
47
|
+
displayName = _ref3.displayName,
|
|
48
|
+
description = _ref3.description,
|
|
49
|
+
avatarImageUrl = _ref3.avatarImageUrl,
|
|
50
|
+
headerImageUrl = _ref3.headerImageUrl,
|
|
51
|
+
memberAvatars = _ref3.memberAvatars,
|
|
52
|
+
memberCount = _ref3.memberCount,
|
|
53
|
+
isVerified = _ref3.isVerified,
|
|
54
|
+
teamProfileUrl = _ref3.teamProfileUrl;
|
|
64
55
|
return /*#__PURE__*/_react.default.createElement(TeamCardWrapper, {
|
|
65
56
|
id: teamId
|
|
66
57
|
}, /*#__PURE__*/_react.default.createElement(HeaderImage, {
|
|
67
58
|
srcUrl: headerImageUrl
|
|
68
59
|
}), /*#__PURE__*/_react.default.createElement(_compiled.Stack, {
|
|
69
|
-
space: "space.
|
|
60
|
+
space: "space.200",
|
|
70
61
|
xcss: styles.containerStyles
|
|
71
62
|
}, /*#__PURE__*/_react.default.createElement(_compiled.Inline, {
|
|
72
63
|
spread: "space-between",
|
|
73
64
|
alignBlock: "center"
|
|
74
|
-
}, /*#__PURE__*/_react.default.createElement(
|
|
75
|
-
|
|
76
|
-
}
|
|
65
|
+
}, /*#__PURE__*/_react.default.createElement(_compiled.Box, {
|
|
66
|
+
xcss: styles.avatarImageStyles
|
|
67
|
+
}, /*#__PURE__*/_react.default.createElement(_teamsAvatar.default, {
|
|
68
|
+
size: "medium",
|
|
69
|
+
src: avatarImageUrl
|
|
70
|
+
}))), /*#__PURE__*/_react.default.createElement(_compiled.Stack, {
|
|
77
71
|
xcss: styles.teamInformationStyles,
|
|
78
|
-
space: "space.
|
|
79
|
-
}, /*#__PURE__*/_react.default.createElement(_compiled.Stack, {
|
|
80
|
-
space: "space.150"
|
|
81
|
-
}, /*#__PURE__*/_react.default.createElement(_compiled.Inline, {
|
|
72
|
+
space: "space.200"
|
|
73
|
+
}, /*#__PURE__*/_react.default.createElement(_compiled.Stack, null, /*#__PURE__*/_react.default.createElement(_compiled.Inline, {
|
|
82
74
|
alignBlock: "center"
|
|
83
75
|
}, /*#__PURE__*/_react.default.createElement(_heading.default, {
|
|
84
|
-
size: "
|
|
76
|
+
size: "medium"
|
|
85
77
|
}, displayName), isVerified && /*#__PURE__*/_react.default.createElement(_verifiedTeamIcon.VerifiedTeamIcon, {
|
|
86
78
|
showTooltip: true
|
|
87
79
|
})), /*#__PURE__*/_react.default.createElement(_compiled.Text, {
|
|
88
|
-
color: "color.text.
|
|
80
|
+
color: "color.text.subtlest"
|
|
89
81
|
}, /*#__PURE__*/_react.default.createElement(_reactIntlNext.FormattedMessage, {
|
|
90
82
|
defaultMessage: "Contributing team \u2022 {count, plural, one {# member} other {# members}}",
|
|
91
83
|
values: {
|
|
@@ -95,12 +87,10 @@ var TeamProfileCard = exports.TeamProfileCard = function TeamProfileCard(_ref4)
|
|
|
95
87
|
}))), /*#__PURE__*/_react.default.createElement(_compiled.Inline, null, /*#__PURE__*/_react.default.createElement(_avatarGroup.default, {
|
|
96
88
|
appearance: "stack",
|
|
97
89
|
data: memberAvatars
|
|
98
|
-
})), /*#__PURE__*/_react.default.createElement(_compiled.
|
|
99
|
-
|
|
100
|
-
}, /*#__PURE__*/_react.default.createElement(_compiled.Text, {
|
|
101
|
-
color: "color.text.subtle",
|
|
90
|
+
})), description && /*#__PURE__*/_react.default.createElement(_compiled.Text, {
|
|
91
|
+
color: "color.text",
|
|
102
92
|
maxLines: 3
|
|
103
|
-
}, description))
|
|
93
|
+
}, description)), teamProfileUrl && /*#__PURE__*/_react.default.createElement(_compiled.Stack, {
|
|
104
94
|
xcss: styles.viewProfileContainerStyles
|
|
105
95
|
}, /*#__PURE__*/_react.default.createElement(_compiled.Pressable, {
|
|
106
96
|
onClick: function onClick() {
|
package/dist/cjs/messages.js
CHANGED
|
@@ -156,6 +156,11 @@ var messages = (0, _reactIntlNext.defineMessages)({
|
|
|
156
156
|
defaultMessage: 'Direct reports',
|
|
157
157
|
description: "Title for a section on the profile card that show the user's direct reports"
|
|
158
158
|
},
|
|
159
|
+
teamProfileCardAriaLabel: {
|
|
160
|
+
id: 'pt.team-profile-card.aria-label',
|
|
161
|
+
defaultMessage: 'More information about this team',
|
|
162
|
+
description: 'Aria label for the team profile card'
|
|
163
|
+
},
|
|
159
164
|
giveKudosButton: {
|
|
160
165
|
id: 'pt.profile-card.give-kudos',
|
|
161
166
|
defaultMessage: 'Give kudos',
|
|
@@ -45,7 +45,7 @@ var createEvent = function createEvent(eventType, action, actionSubject, actionS
|
|
|
45
45
|
actionSubjectId: actionSubjectId,
|
|
46
46
|
attributes: _objectSpread(_objectSpread({
|
|
47
47
|
packageName: "@atlaskit/profilecard",
|
|
48
|
-
packageVersion: "23.4.
|
|
48
|
+
packageVersion: "23.4.2"
|
|
49
49
|
}, attributes), {}, {
|
|
50
50
|
firedAt: Math.round((0, _performance.getPageTime)())
|
|
51
51
|
})
|
|
@@ -6,7 +6,7 @@ const ORG_ID_FROM_CLOUD_ID_QUERY = `query OrgIdFromCloudId($cloudId: ID!) {
|
|
|
6
6
|
}`;
|
|
7
7
|
const addHeaders = headers => {
|
|
8
8
|
headers.append('atl-client-name', "@atlaskit/profilecard");
|
|
9
|
-
headers.append('atl-client-version', "23.4.
|
|
9
|
+
headers.append('atl-client-version', "23.4.2");
|
|
10
10
|
return headers;
|
|
11
11
|
};
|
|
12
12
|
export async function getOrgIdForCloudIdFromAGG(url, cloudId) {
|
|
@@ -75,7 +75,7 @@ export const addHeaders = headers => {
|
|
|
75
75
|
headers.append('X-ExperimentalApi', 'teams-beta');
|
|
76
76
|
headers.append('X-ExperimentalApi', 'team-members-beta');
|
|
77
77
|
headers.append('atl-client-name', "@atlaskit/profilecard");
|
|
78
|
-
headers.append('atl-client-version', "23.4.
|
|
78
|
+
headers.append('atl-client-version', "23.4.2");
|
|
79
79
|
return headers;
|
|
80
80
|
};
|
|
81
81
|
export async function getTeamFromAGG(url, teamId, siteId) {
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import _extends from "@babel/runtime/helpers/extends";
|
|
2
2
|
import React, { useCallback, useEffect, useRef, useState } from 'react';
|
|
3
3
|
import { FormattedMessage, useIntl } from 'react-intl-next';
|
|
4
|
+
import Avatar from '@atlaskit/avatar';
|
|
4
5
|
import AvatarGroup from '@atlaskit/avatar-group';
|
|
5
6
|
import LoadingButton from '@atlaskit/button/loading-button';
|
|
6
7
|
import Button, { IconButton, LinkButton } from '@atlaskit/button/new';
|
|
@@ -44,7 +45,8 @@ const TeamMembers = ({
|
|
|
44
45
|
generateUserLink,
|
|
45
46
|
members,
|
|
46
47
|
onUserClick,
|
|
47
|
-
includingYou
|
|
48
|
+
includingYou,
|
|
49
|
+
isTriggeredByKeyboard
|
|
48
50
|
}) => {
|
|
49
51
|
const {
|
|
50
52
|
formatMessage
|
|
@@ -55,6 +57,14 @@ const TeamMembers = ({
|
|
|
55
57
|
// Use a ref to track whether this is currently open, so we can fire events
|
|
56
58
|
// iff the more section is being opened (not closed).
|
|
57
59
|
const isMoreMembersOpen = useRef(false);
|
|
60
|
+
const avatarRef = useRef(null);
|
|
61
|
+
const ref = element => {
|
|
62
|
+
if (isTriggeredByKeyboard) {
|
|
63
|
+
var _avatarRef$current;
|
|
64
|
+
avatarRef.current = element;
|
|
65
|
+
(_avatarRef$current = avatarRef.current) === null || _avatarRef$current === void 0 ? void 0 : _avatarRef$current.focus();
|
|
66
|
+
}
|
|
67
|
+
};
|
|
58
68
|
const onMoreClick = useCallback(() => {
|
|
59
69
|
const {
|
|
60
70
|
current: isOpen
|
|
@@ -79,7 +89,32 @@ const TeamMembers = ({
|
|
|
79
89
|
values: {
|
|
80
90
|
count
|
|
81
91
|
}
|
|
82
|
-
}))), members && members.length > 0 && /*#__PURE__*/React.createElement(AvatarSection, null, /*#__PURE__*/React.createElement(AvatarGroup, {
|
|
92
|
+
}))), members && members.length > 0 && /*#__PURE__*/React.createElement(AvatarSection, null, fg('enable_team_profilecard_toggletip_a11y_fix') ? /*#__PURE__*/React.createElement(AvatarGroup, {
|
|
93
|
+
appearance: "stack",
|
|
94
|
+
data: members.map((member, index) => {
|
|
95
|
+
const href = generateUserLink === null || generateUserLink === void 0 ? void 0 : generateUserLink(member.id);
|
|
96
|
+
const onClick = onMemberClick(onUserClick, member.id, analytics, index, !!generateUserLink);
|
|
97
|
+
return {
|
|
98
|
+
key: member.id,
|
|
99
|
+
name: member.fullName,
|
|
100
|
+
src: member.avatarUrl,
|
|
101
|
+
href,
|
|
102
|
+
onClick
|
|
103
|
+
};
|
|
104
|
+
}),
|
|
105
|
+
maxCount: avatarGroupMaxCount,
|
|
106
|
+
showMoreButtonProps: showMoreButtonProps,
|
|
107
|
+
testId: "profilecard-avatar-group",
|
|
108
|
+
overrides: {
|
|
109
|
+
Avatar: {
|
|
110
|
+
render: (Component, props, index) => index === 0 ? /*#__PURE__*/React.createElement(Avatar, _extends({
|
|
111
|
+
ref: ref
|
|
112
|
+
}, props, {
|
|
113
|
+
testId: "first-member"
|
|
114
|
+
})) : /*#__PURE__*/React.createElement(Component, props)
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
}) : /*#__PURE__*/React.createElement(AvatarGroup, {
|
|
83
118
|
appearance: "stack",
|
|
84
119
|
data: members.map((member, index) => {
|
|
85
120
|
const href = generateUserLink === null || generateUserLink === void 0 ? void 0 : generateUserLink(member.id);
|
|
@@ -215,7 +250,8 @@ const TeamProfilecardContent = ({
|
|
|
215
250
|
generateUserLink,
|
|
216
251
|
onUserClick,
|
|
217
252
|
viewProfileLink,
|
|
218
|
-
viewProfileOnClick
|
|
253
|
+
viewProfileOnClick,
|
|
254
|
+
isTriggeredByKeyboard
|
|
219
255
|
}) => {
|
|
220
256
|
const allActions = [{
|
|
221
257
|
label: /*#__PURE__*/React.createElement(FormattedMessage, messages.teamViewProfile),
|
|
@@ -250,7 +286,8 @@ const TeamProfilecardContent = ({
|
|
|
250
286
|
members: team.members,
|
|
251
287
|
generateUserLink: generateUserLink,
|
|
252
288
|
includingYou: includingYou,
|
|
253
|
-
onUserClick: onUserClick
|
|
289
|
+
onUserClick: onUserClick,
|
|
290
|
+
isTriggeredByKeyboard: isTriggeredByKeyboard
|
|
254
291
|
}), team.description.trim() && /*#__PURE__*/React.createElement(DescriptionWrapper, null, /*#__PURE__*/React.createElement(Description, null, team.description)), /*#__PURE__*/React.createElement(ButtonSection, {
|
|
255
292
|
actions: allActions,
|
|
256
293
|
analytics: analytics
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import _extends from "@babel/runtime/helpers/extends";
|
|
2
2
|
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
3
3
|
import React, { Suspense } from 'react';
|
|
4
|
-
import { FormattedMessage } from 'react-intl-next';
|
|
4
|
+
import { FormattedMessage, injectIntl } from 'react-intl-next';
|
|
5
5
|
import { withAnalyticsEvents } from '@atlaskit/analytics-next';
|
|
6
6
|
import { GiveKudosLauncherLazy, KudosType } from '@atlaskit/give-kudos';
|
|
7
7
|
import { fg } from '@atlaskit/platform-feature-flags';
|
|
8
8
|
import Popup from '@atlaskit/popup';
|
|
9
|
+
import { Box } from '@atlaskit/primitives';
|
|
9
10
|
import { layers } from '@atlaskit/theme/constants';
|
|
10
11
|
import filterActions from '../../internal/filterActions';
|
|
11
12
|
import messages from '../../messages';
|
|
@@ -98,8 +99,23 @@ export class TeamProfileCardTriggerInternal extends React.PureComponent {
|
|
|
98
99
|
this.hideProfilecard(DELAY_MS_HIDE);
|
|
99
100
|
}
|
|
100
101
|
});
|
|
102
|
+
_defineProperty(this, "onKeyPress", event => {
|
|
103
|
+
if (event.key === 'Enter' || event.key === ' ') {
|
|
104
|
+
event.preventDefault();
|
|
105
|
+
this.setState({
|
|
106
|
+
isTriggeredByKeyboard: true
|
|
107
|
+
});
|
|
108
|
+
this.showProfilecard(0);
|
|
109
|
+
if (!this.state.visible) {
|
|
110
|
+
this.fireAnalytics(cardTriggered('team', 'click'));
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
});
|
|
101
114
|
_defineProperty(this, "onClose", () => {
|
|
102
115
|
this.hideProfilecard();
|
|
116
|
+
this.setState({
|
|
117
|
+
isTriggeredByKeyboard: false
|
|
118
|
+
});
|
|
103
119
|
});
|
|
104
120
|
_defineProperty(this, "openKudosDrawer", () => {
|
|
105
121
|
this.hideProfilecard(DELAY_MS_HIDE);
|
|
@@ -140,7 +156,8 @@ export class TeamProfileCardTriggerInternal extends React.PureComponent {
|
|
|
140
156
|
data: null,
|
|
141
157
|
shouldShowGiveKudos: false,
|
|
142
158
|
teamCentralBaseUrl: undefined,
|
|
143
|
-
kudosDrawerOpen: false
|
|
159
|
+
kudosDrawerOpen: false,
|
|
160
|
+
isTriggeredByKeyboard: false
|
|
144
161
|
});
|
|
145
162
|
_defineProperty(this, "clientFetchProfile", () => {
|
|
146
163
|
const {
|
|
@@ -208,7 +225,8 @@ export class TeamProfileCardTriggerInternal extends React.PureComponent {
|
|
|
208
225
|
}, /*#__PURE__*/React.createElement(TeamProfileCardLazy, _extends({}, newProps, {
|
|
209
226
|
isLoading: isLoading,
|
|
210
227
|
hasError: hasError,
|
|
211
|
-
errorType: error
|
|
228
|
+
errorType: error,
|
|
229
|
+
isTriggeredByKeyboard: this.state.isTriggeredByKeyboard
|
|
212
230
|
}))));
|
|
213
231
|
});
|
|
214
232
|
_defineProperty(this, "renderKudosLauncher", () => {
|
|
@@ -230,11 +248,19 @@ export class TeamProfileCardTriggerInternal extends React.PureComponent {
|
|
|
230
248
|
_defineProperty(this, "renderTrigger", triggerProps => {
|
|
231
249
|
const {
|
|
232
250
|
children,
|
|
251
|
+
intl,
|
|
233
252
|
triggerLinkType,
|
|
234
253
|
viewProfileLink
|
|
235
254
|
} = this.props;
|
|
236
255
|
if (triggerLinkType === 'none') {
|
|
237
|
-
return /*#__PURE__*/React.createElement(React.Fragment, null, this.renderKudosLauncher(), /*#__PURE__*/React.createElement(
|
|
256
|
+
return /*#__PURE__*/React.createElement(React.Fragment, null, this.renderKudosLauncher(), fg('enable_team_profilecard_toggletip_a11y_fix') ? /*#__PURE__*/React.createElement(Box, _extends({
|
|
257
|
+
as: "span",
|
|
258
|
+
role: "button",
|
|
259
|
+
testId: "team-profilecard-trigger-wrapper",
|
|
260
|
+
tabIndex: 0,
|
|
261
|
+
"aria-label": intl.formatMessage(messages.teamProfileCardAriaLabel),
|
|
262
|
+
onKeyUp: this.onKeyPress
|
|
263
|
+
}, triggerProps, this.triggerListeners), children) : /*#__PURE__*/React.createElement("span", _extends({
|
|
238
264
|
"data-testid": "team-profilecard-trigger-wrapper"
|
|
239
265
|
}, triggerProps, this.triggerListeners), children));
|
|
240
266
|
}
|
|
@@ -347,4 +373,4 @@ _defineProperty(TeamProfileCardTriggerInternal, "defaultProps", {
|
|
|
347
373
|
triggerLinkType: 'link',
|
|
348
374
|
shouldRenderToParent: true
|
|
349
375
|
});
|
|
350
|
-
export default withAnalyticsEvents()(TeamProfileCardTriggerInternal);
|
|
376
|
+
export default withAnalyticsEvents()(injectIntl(TeamProfileCardTriggerInternal));
|
|
@@ -6,27 +6,26 @@
|
|
|
6
6
|
._1dqonqa1{border-style:solid}
|
|
7
7
|
._1h6dmuej{border-color:var(--ds-border,#091e4224)}._15a5nqa1{border-top-style:solid}
|
|
8
8
|
._18m915vq{overflow-y:hidden}
|
|
9
|
-
.
|
|
9
|
+
._18u01ejb{margin-left:var(--ds-space-300,24px)}
|
|
10
|
+
._19bv1ejb{padding-left:var(--ds-space-300,24px)}
|
|
10
11
|
._19pkpxbi{margin-top:var(--ds-space-200,1pc)}
|
|
11
|
-
.
|
|
12
|
+
._19pku2gc{margin-top:var(--ds-space-100,8px)}
|
|
12
13
|
._1bsb1osq{width:100%}
|
|
13
|
-
._1bsb1w8u{width:80%}
|
|
14
14
|
._1bsb5x59{width:340px}
|
|
15
|
-
._1bsbvbgk{width:4pc}
|
|
16
15
|
._1e0c1txw{display:flex}
|
|
17
16
|
._1i53muej{border-top-color:var(--ds-border,#091e4224)}
|
|
18
17
|
._1reo15vq{overflow-x:hidden}
|
|
19
18
|
._1ul95x59{min-width:340px}
|
|
20
|
-
.
|
|
19
|
+
._2hwx1ejb{margin-right:var(--ds-space-300,24px)}
|
|
21
20
|
._2lx21bp4{flex-direction:column}
|
|
22
21
|
._4cvr1h6o{align-items:center}
|
|
23
22
|
._4t3i1ul9{height:30px}
|
|
24
23
|
._4t3i1wug{height:auto}
|
|
25
|
-
.
|
|
24
|
+
._4t3i53f4{height:75pt}
|
|
26
25
|
._5ral1dfr{object-fit:cover}
|
|
27
26
|
._bfhksm61{background-color:var(--ds-background-neutral-subtle,#00000000)}
|
|
28
|
-
._c71l53f4{max-height:75pt}
|
|
29
27
|
._kqswstnw{position:absolute}
|
|
30
28
|
._otyrpxbi{margin-bottom:var(--ds-space-200,1pc)}
|
|
31
29
|
._s7n4jp4b{vertical-align:top}
|
|
30
|
+
._u5f31ejb{padding-right:var(--ds-space-300,24px)}
|
|
32
31
|
._uwhke4h9{border-top-width:var(--ds-border-width,1px)}
|