@atlaskit/profilecard 16.5.0 → 16.7.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.
Files changed (44) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/dist/cjs/client/ProfileCardClient.js +2 -2
  3. package/dist/cjs/client/TeamCentralCardClient.js +14 -9
  4. package/dist/cjs/components/User/OverflowProfileCardButtons.js +69 -0
  5. package/dist/cjs/components/User/ProfileCard.js +51 -28
  6. package/dist/cjs/components/User/ProfileCardResourced.js +63 -13
  7. package/dist/cjs/components/User/ProfileCardTrigger.js +35 -4
  8. package/dist/cjs/messages.js +5 -0
  9. package/dist/cjs/mocks/mock-profile-client.js +5 -0
  10. package/dist/cjs/styled/Card.js +21 -17
  11. package/dist/cjs/util/analytics.js +1 -1
  12. package/dist/cjs/version.json +1 -1
  13. package/dist/es2019/client/ProfileCardClient.js +2 -2
  14. package/dist/es2019/client/TeamCentralCardClient.js +13 -8
  15. package/dist/es2019/components/User/OverflowProfileCardButtons.js +33 -0
  16. package/dist/es2019/components/User/ProfileCard.js +40 -22
  17. package/dist/es2019/components/User/ProfileCardResourced.js +51 -11
  18. package/dist/es2019/components/User/ProfileCardTrigger.js +35 -4
  19. package/dist/es2019/messages.js +5 -0
  20. package/dist/es2019/mocks/mock-profile-client.js +4 -0
  21. package/dist/es2019/styled/Card.js +8 -1
  22. package/dist/es2019/util/analytics.js +1 -1
  23. package/dist/es2019/version.json +1 -1
  24. package/dist/esm/client/ProfileCardClient.js +2 -2
  25. package/dist/esm/client/TeamCentralCardClient.js +14 -9
  26. package/dist/esm/components/User/OverflowProfileCardButtons.js +43 -0
  27. package/dist/esm/components/User/ProfileCard.js +51 -28
  28. package/dist/esm/components/User/ProfileCardResourced.js +57 -13
  29. package/dist/esm/components/User/ProfileCardTrigger.js +36 -4
  30. package/dist/esm/messages.js +5 -0
  31. package/dist/esm/mocks/mock-profile-client.js +5 -0
  32. package/dist/esm/styled/Card.js +17 -16
  33. package/dist/esm/util/analytics.js +1 -1
  34. package/dist/esm/version.json +1 -1
  35. package/dist/types/client/TeamCentralCardClient.d.ts +6 -2
  36. package/dist/types/client/graphqlUtils.d.ts +1 -1
  37. package/dist/types/components/User/OverflowProfileCardButtons.d.ts +8 -0
  38. package/dist/types/components/User/ProfileCard.d.ts +7 -4
  39. package/dist/types/components/User/ProfileCardResourced.d.ts +3 -1
  40. package/dist/types/components/User/ProfileCardTrigger.d.ts +2 -0
  41. package/dist/types/messages.d.ts +5 -0
  42. package/dist/types/styled/Card.d.ts +1 -0
  43. package/dist/types/types.d.ts +10 -0
  44. package/package.json +4 -1
package/CHANGELOG.md CHANGED
@@ -1,5 +1,23 @@
1
1
  # @atlaskit/profilecard
2
2
 
3
+ ## 16.7.0
4
+
5
+ ### Minor Changes
6
+
7
+ - [`4e9fbfb9e85`](https://bitbucket.org/atlassian/atlassian-frontend/commits/4e9fbfb9e85) - [ux] Adding meatballs overflow menu when the profile card has more than two action buttons
8
+
9
+ ## 16.6.1
10
+
11
+ ### Patch Changes
12
+
13
+ - [`cf03bdf6b7e`](https://bitbucket.org/atlassian/atlassian-frontend/commits/cf03bdf6b7e) - Made feature flag check extra context optional.
14
+
15
+ ## 16.6.0
16
+
17
+ ### Minor Changes
18
+
19
+ - [`7c691c8e8a9`](https://bitbucket.org/atlassian/atlassian-frontend/commits/7c691c8e8a9) - [ux] Launch the give kudos flow via a drawer from the profile-card.
20
+
3
21
  ## 16.5.0
4
22
 
5
23
  ### Minor Changes
@@ -70,11 +70,11 @@ var ProfileCardClient = /*#__PURE__*/function () {
70
70
  }, {
71
71
  key: "shouldShowGiveKudos",
72
72
  value: function shouldShowGiveKudos() {
73
- var _this$tcClient4, _this$tcClient5;
73
+ var _this$tcClient4, _this$tcClient5, _this$tcClient6;
74
74
 
75
75
  // Check if the kudos feature enabled and if the user has TC
76
76
  // if the user does not have TC the tc client will be undefined.
77
- return ((_this$tcClient4 = this.tcClient) === null || _this$tcClient4 === void 0 ? void 0 : _this$tcClient4.options.teamCentralBaseUrl) && ((_this$tcClient5 = this.tcClient) === null || _this$tcClient5 === void 0 ? void 0 : _this$tcClient5.getFlagEnabled('team-central-kudos-enabled-m2')) || Promise.resolve(false);
77
+ return ((_this$tcClient4 = this.tcClient) === null || _this$tcClient4 === void 0 ? void 0 : _this$tcClient4.options.teamCentralBaseUrl) && ((_this$tcClient5 = this.tcClient) === null || _this$tcClient5 === void 0 ? void 0 : _this$tcClient5.getFlagEnabled('team-central-kudos-enabled-m2', (_this$tcClient6 = this.tcClient) === null || _this$tcClient6 === void 0 ? void 0 : _this$tcClient6.options.productIdentifier)) || Promise.resolve(false);
78
78
  }
79
79
  }]);
80
80
  return ProfileCardClient;
@@ -38,11 +38,12 @@ var buildReportingLinesQuery = function buildReportingLinesQuery(aaid) {
38
38
  };
39
39
  };
40
40
 
41
- var buildCheckFeatureFlagQuery = function buildCheckFeatureFlagQuery(featureKey) {
41
+ var buildCheckFeatureFlagQuery = function buildCheckFeatureFlagQuery(featureKey, context) {
42
42
  return {
43
- query: "\n query isFeatureKeyEnabled($featureKey: String!) {\n isFeatureEnabled(featureKey: $featureKey) {\n enabled\n }\n }\n ",
43
+ query: "\n query isFeatureKeyEnabled($featureKey: String!, $context: [IsFeatureEnabledContextInput]) {\n isFeatureEnabled(featureKey: $featureKey, context: $context) {\n enabled\n }\n }\n ",
44
44
  variables: {
45
- featureKey: featureKey
45
+ featureKey: featureKey,
46
+ context: context || []
46
47
  }
47
48
  };
48
49
  };
@@ -74,7 +75,7 @@ var TeamCentralCardClient = /*#__PURE__*/function (_CachingClient) {
74
75
  (0, _createClass2.default)(TeamCentralCardClient, [{
75
76
  key: "makeFeatureFlagCheckRequest",
76
77
  value: function () {
77
- var _makeFeatureFlagCheckRequest = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(featureKey) {
78
+ var _makeFeatureFlagCheckRequest = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(featureKey, context) {
78
79
  var query, response;
79
80
  return _regenerator.default.wrap(function _callee$(_context) {
80
81
  while (1) {
@@ -88,7 +89,7 @@ var TeamCentralCardClient = /*#__PURE__*/function (_CachingClient) {
88
89
  throw new Error('options.teamCentralUrl is a required parameter for retrieving Team Central data');
89
90
 
90
91
  case 2:
91
- query = buildCheckFeatureFlagQuery(featureKey);
92
+ query = buildCheckFeatureFlagQuery(featureKey, context);
92
93
  _context.next = 5;
93
94
  return (0, _graphqlUtils.graphqlQuery)(this.options.teamCentralUrl, query);
94
95
 
@@ -104,7 +105,7 @@ var TeamCentralCardClient = /*#__PURE__*/function (_CachingClient) {
104
105
  }, _callee, this);
105
106
  }));
106
107
 
107
- function makeFeatureFlagCheckRequest(_x) {
108
+ function makeFeatureFlagCheckRequest(_x, _x2) {
108
109
  return _makeFeatureFlagCheckRequest.apply(this, arguments);
109
110
  }
110
111
 
@@ -143,7 +144,7 @@ var TeamCentralCardClient = /*#__PURE__*/function (_CachingClient) {
143
144
  }, _callee2, this);
144
145
  }));
145
146
 
146
- function makeRequest(_x2) {
147
+ function makeRequest(_x3) {
147
148
  return _makeRequest.apply(this, arguments);
148
149
  }
149
150
 
@@ -197,7 +198,7 @@ var TeamCentralCardClient = /*#__PURE__*/function (_CachingClient) {
197
198
  }
198
199
  }, {
199
200
  key: "getFlagEnabled",
200
- value: function getFlagEnabled(featureKey) {
201
+ value: function getFlagEnabled(featureKey, productIdentifier) {
201
202
  var _this3 = this;
202
203
 
203
204
  if (!featureKey) {
@@ -212,8 +213,12 @@ var TeamCentralCardClient = /*#__PURE__*/function (_CachingClient) {
212
213
  return Promise.resolve(false);
213
214
  }
214
215
 
216
+ var context = [{
217
+ key: 'productIdentifier',
218
+ value: productIdentifier || 'unset'
219
+ }];
215
220
  return new Promise(function (resolve) {
216
- _this3.makeFeatureFlagCheckRequest(featureKey).then(function (enabled) {
221
+ _this3.makeFeatureFlagCheckRequest(featureKey, context).then(function (enabled) {
217
222
  _this3.featureFlagKeys.set(featureKey, enabled);
218
223
 
219
224
  resolve(enabled);
@@ -0,0 +1,69 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ var _typeof = require("@babel/runtime/helpers/typeof");
6
+
7
+ Object.defineProperty(exports, "__esModule", {
8
+ value: true
9
+ });
10
+ exports.OverflowProfileCardButtons = void 0;
11
+
12
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
13
+
14
+ var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
15
+
16
+ var _react = _interopRequireDefault(require("react"));
17
+
18
+ var _reactIntlNext = require("react-intl-next");
19
+
20
+ var _customThemeButton = _interopRequireDefault(require("@atlaskit/button/custom-theme-button"));
21
+
22
+ var _dropdownMenu = _interopRequireWildcard(require("@atlaskit/dropdown-menu"));
23
+
24
+ var _more = _interopRequireDefault(require("@atlaskit/icon/glyph/more"));
25
+
26
+ var _messages = _interopRequireDefault(require("../../messages"));
27
+
28
+ var _Card = require("../../styled/Card");
29
+
30
+ var _excluded = ["triggerRef", "isSelected", "testId"];
31
+
32
+ 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); }
33
+
34
+ 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; }
35
+
36
+ var OverflowProfileCardButtons = function OverflowProfileCardButtons(props) {
37
+ var intl = (0, _reactIntlNext.useIntl)();
38
+ return /*#__PURE__*/_react.default.createElement(_Card.OverflowActionButtonsWrapper, null, /*#__PURE__*/_react.default.createElement(_dropdownMenu.default, {
39
+ placement: 'bottom-end',
40
+ trigger: function trigger(_ref) {
41
+ var triggerRef = _ref.triggerRef,
42
+ isSelected = _ref.isSelected,
43
+ testId = _ref.testId,
44
+ providedProps = (0, _objectWithoutProperties2.default)(_ref, _excluded);
45
+ return /*#__PURE__*/_react.default.createElement(_customThemeButton.default, (0, _extends2.default)({
46
+ type: "button"
47
+ }, providedProps, {
48
+ ref: triggerRef,
49
+ iconBefore: /*#__PURE__*/_react.default.createElement(_more.default, {
50
+ label: intl.formatMessage(_messages.default.profileCardMoreIconLabel)
51
+ })
52
+ }));
53
+ }
54
+ }, /*#__PURE__*/_react.default.createElement(_dropdownMenu.DropdownItemGroup, null, props.actions.map(function (action) {
55
+ return /*#__PURE__*/_react.default.createElement(_dropdownMenu.DropdownItem, {
56
+ key: action.id,
57
+ onClick: function onClick(event) {
58
+ for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
59
+ args[_key - 1] = arguments[_key];
60
+ }
61
+
62
+ props.onItemClick(action, args, event);
63
+ },
64
+ href: action.link
65
+ }, action.label);
66
+ }))));
67
+ };
68
+
69
+ exports.OverflowProfileCardButtons = OverflowProfileCardButtons;
@@ -11,6 +11,8 @@ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")
11
11
 
12
12
  var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
13
13
 
14
+ var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
15
+
14
16
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
15
17
 
16
18
  var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
@@ -55,6 +57,8 @@ var _Error = require("../Error");
55
57
 
56
58
  var _Icon = require("../Icon");
57
59
 
60
+ var _OverflowProfileCardButtons = require("./OverflowProfileCardButtons");
61
+
58
62
  var _ReportingLinesDetails = _interopRequireDefault(require("./ReportingLinesDetails"));
59
63
 
60
64
  var _excluded = ["text"];
@@ -89,13 +93,32 @@ var Profilecard = /*#__PURE__*/function (_React$PureComponent) {
89
93
  _this.props.analytics(id, options);
90
94
  }
91
95
  });
92
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "giveKudosCallback", function (clickedUserId) {
93
- if (clickedUserId) {
94
- window.open("".concat(_this.props.teamCentralBaseUrl, "/give-kudos?type=individual&recipientId=").concat(clickedUserId));
96
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "kudosUrl", function () {
97
+ var recipientId = _this.props.userId && "&recipientId=".concat(_this.props.userId) || '';
98
+ var cloudId = _this.props.cloudId && "&cloudId=".concat(_this.props.cloudId) || '';
99
+ return "".concat(_this.props.teamCentralBaseUrl, "/kudos/give?type=individual").concat(recipientId).concat(cloudId);
100
+ });
101
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "kudosButtonCallback", function () {
102
+ if (_this.props.openKudosDrawer) {
103
+ _this.props.openKudosDrawer();
95
104
  } else {
96
- window.open("".concat(_this.props.teamCentralBaseUrl, "/give-kudos?type=individual"));
105
+ window.open(_this.kudosUrl());
97
106
  }
98
107
  });
108
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "renderButton", function (action, idx) {
109
+ return /*#__PURE__*/_react.default.createElement(_customThemeButton.default, {
110
+ appearance: idx === 0 ? 'default' : 'subtle',
111
+ key: action.id || idx,
112
+ onClick: function onClick(event) {
113
+ for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
114
+ args[_key - 1] = arguments[_key];
115
+ }
116
+
117
+ return _this.onActionClick(action, args, event);
118
+ },
119
+ href: action.link
120
+ }, action.label);
121
+ });
99
122
  _this.timeOpen = null;
100
123
 
101
124
  _this.clientFetchProfile = function () {
@@ -135,9 +158,9 @@ var Profilecard = /*#__PURE__*/function (_React$PureComponent) {
135
158
  label: /*#__PURE__*/_react.default.createElement(_reactIntlNext.FormattedMessage, _messages.default.giveKudosButton),
136
159
  id: 'give-kudos',
137
160
  callback: function callback() {
138
- _this3.giveKudosCallback(_this3.props.userId);
161
+ _this3.kudosButtonCallback();
139
162
  },
140
- link: this.props.userId ? "".concat(this.props.teamCentralBaseUrl, "/give-kudos?type=individual&recipientId=").concat(this.props.userId) : "".concat(this.props.teamCentralBaseUrl, "/give-kudos?type=individual")
163
+ link: this.kudosUrl()
141
164
  };
142
165
  return actions.concat([kudosAction]);
143
166
  }
@@ -154,30 +177,30 @@ var Profilecard = /*#__PURE__*/function (_React$PureComponent) {
154
177
  }
155
178
 
156
179
  var actions = this.getActions();
157
- return /*#__PURE__*/_react.default.createElement(_Card.ActionButtonGroup, null, actions.map(function (action, idx) {
158
- return /*#__PURE__*/_react.default.createElement(_customThemeButton.default, {
159
- appearance: idx === 0 ? 'default' : 'subtle',
160
- key: action.id || idx,
161
- onClick: function onClick(event) {
162
- _this4.callAnalytics(_analytics.AnalyticsName.PROFILE_CARD_CLICK, {
163
- id: action.id || null,
164
- duration: _this4.durationSince(_this4.timeOpen)
165
- });
166
-
167
- if (action.callback && (0, _click.isBasicClick)(event)) {
168
- event.preventDefault();
169
-
170
- for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
171
- args[_key - 1] = arguments[_key];
172
- }
173
-
174
- action.callback.apply(action, [event].concat(args));
175
- }
176
- },
177
- href: action.link
178
- }, action.label);
180
+ var firstTwoActions = actions.slice(0, 2);
181
+ var restOfActions = actions && actions.length > 2 ? actions.slice(2) : undefined;
182
+ return /*#__PURE__*/_react.default.createElement(_Card.ActionButtonGroup, null, firstTwoActions.map(function (action, idx) {
183
+ return _this4.renderButton(action, idx);
184
+ }), restOfActions && /*#__PURE__*/_react.default.createElement(_OverflowProfileCardButtons.OverflowProfileCardButtons, {
185
+ actions: restOfActions,
186
+ onItemClick: function onItemClick(action, args, event) {
187
+ return _this4.onActionClick(action, args, event);
188
+ }
179
189
  }));
180
190
  }
191
+ }, {
192
+ key: "onActionClick",
193
+ value: function onActionClick(action, args, event) {
194
+ this.callAnalytics(_analytics.AnalyticsName.PROFILE_CARD_CLICK, {
195
+ id: action.id || null,
196
+ duration: this.durationSince(this.timeOpen)
197
+ });
198
+
199
+ if (action.callback && (0, _click.isBasicClick)(event)) {
200
+ event.preventDefault();
201
+ action.callback.apply(action, [event].concat((0, _toConsumableArray2.default)(args)));
202
+ }
203
+ }
181
204
  }, {
182
205
  key: "renderCardDetailsDefault",
183
206
  value: function renderCardDetailsDefault() {
@@ -2,6 +2,8 @@
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
  });
@@ -9,6 +11,8 @@ exports.default = void 0;
9
11
 
10
12
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
11
13
 
14
+ var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
15
+
12
16
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
13
17
 
14
18
  var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
@@ -23,7 +27,9 @@ var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/ge
23
27
 
24
28
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
25
29
 
26
- var _react = _interopRequireDefault(require("react"));
30
+ var _react = _interopRequireWildcard(require("react"));
31
+
32
+ var _giveKudos = require("@atlaskit/give-kudos");
27
33
 
28
34
  var _analytics = require("../../internal/analytics");
29
35
 
@@ -37,6 +43,10 @@ var _ProfileCard = _interopRequireDefault(require("./ProfileCard"));
37
43
 
38
44
  var _UserLoadingState = _interopRequireDefault(require("./UserLoadingState"));
39
45
 
46
+ 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); }
47
+
48
+ 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; }
49
+
40
50
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
41
51
 
42
52
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
@@ -67,7 +77,9 @@ var ProfileCardResourced = /*#__PURE__*/function (_React$PureComponent) {
67
77
  hasError: false,
68
78
  error: null,
69
79
  data: null,
70
- reportingLinesData: undefined
80
+ reportingLinesData: undefined,
81
+ isKudosEnabled: false,
82
+ kudosDrawerOpen: false
71
83
  });
72
84
  (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "callAnalytics", function (id) {
73
85
  var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
@@ -93,9 +105,11 @@ var ProfileCardResourced = /*#__PURE__*/function (_React$PureComponent) {
93
105
  hasError: false,
94
106
  data: null
95
107
  }, function () {
96
- var requests = Promise.all([_this.props.resourceClient.getProfile(cloudId, userId), _this.props.resourceClient.getReportingLines(userId)]);
108
+ var requests = Promise.all([_this.props.resourceClient.getProfile(cloudId, userId), _this.props.resourceClient.getReportingLines(userId), _this.props.resourceClient.shouldShowGiveKudos()]);
97
109
  requests.then(function (res) {
98
- return _this.handleClientSuccess(res[0], res[1]);
110
+ var _this2;
111
+
112
+ return (_this2 = _this).handleClientSuccess.apply(_this2, (0, _toConsumableArray2.default)(res));
99
113
  }, function (err) {
100
114
  return _this.handleClientError(err);
101
115
  }).catch(function (err) {
@@ -106,6 +120,16 @@ var ProfileCardResourced = /*#__PURE__*/function (_React$PureComponent) {
106
120
  (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "filterActions", function () {
107
121
  return (0, _filterActions.default)(_this.props.actions, _this.state.data);
108
122
  });
123
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "openKudosDrawer", function () {
124
+ _this.setState({
125
+ kudosDrawerOpen: true
126
+ });
127
+ });
128
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "closeKudosDrawer", function () {
129
+ _this.setState({
130
+ kudosDrawerOpen: false
131
+ });
132
+ });
109
133
  return _this;
110
134
  }
111
135
 
@@ -141,7 +165,7 @@ var ProfileCardResourced = /*#__PURE__*/function (_React$PureComponent) {
141
165
  }
142
166
  }, {
143
167
  key: "handleClientSuccess",
144
- value: function handleClientSuccess(profileData, reportingLinesData) {
168
+ value: function handleClientSuccess(profileData, reportingLinesData, shouldShowGiveKudos) {
145
169
  if (!this._isMounted) {
146
170
  return;
147
171
  }
@@ -150,7 +174,8 @@ var ProfileCardResourced = /*#__PURE__*/function (_React$PureComponent) {
150
174
  isLoading: false,
151
175
  hasError: false,
152
176
  data: profileData,
153
- reportingLinesData: reportingLinesData
177
+ reportingLinesData: reportingLinesData,
178
+ isKudosEnabled: shouldShowGiveKudos
154
179
  });
155
180
  }
156
181
  }, {
@@ -174,10 +199,14 @@ var ProfileCardResourced = /*#__PURE__*/function (_React$PureComponent) {
174
199
  hasError = _this$state.hasError,
175
200
  error = _this$state.error,
176
201
  data = _this$state.data,
177
- reportingLinesData = _this$state.reportingLinesData;
202
+ reportingLinesData = _this$state.reportingLinesData,
203
+ isKudosEnabled = _this$state.isKudosEnabled;
178
204
  var _this$props3 = this.props,
179
205
  analytics = _this$props3.analytics,
180
- onReportingLinesClick = _this$props3.onReportingLinesClick;
206
+ onReportingLinesClick = _this$props3.onReportingLinesClick,
207
+ cloudId = _this$props3.cloudId,
208
+ userId = _this$props3.userId,
209
+ addFlag = _this$props3.addFlag;
181
210
  var isFetchingOrNotStartToFetchYet = isLoading === true || isLoading === undefined;
182
211
 
183
212
  if (isFetchingOrNotStartToFetchYet) {
@@ -189,18 +218,39 @@ var ProfileCardResourced = /*#__PURE__*/function (_React$PureComponent) {
189
218
  }));
190
219
  }
191
220
 
192
- var newProps = _objectSpread({
221
+ var newProps = _objectSpread(_objectSpread({
193
222
  hasError: hasError,
194
223
  errorType: error,
195
224
  clientFetchProfile: this.clientFetchProfile,
196
225
  analytics: analytics,
197
226
  reportingLines: reportingLinesData,
198
- onReportingLinesClick: onReportingLinesClick
199
- }, data);
227
+ onReportingLinesClick: onReportingLinesClick,
228
+ cloudId: cloudId,
229
+ userId: userId,
230
+ addFlag: addFlag
231
+ }, data), {}, {
232
+ isKudosEnabled: isKudosEnabled,
233
+ teamCentralBaseUrl: this.props.resourceClient.getTeamCentralBaseUrl(),
234
+ openKudosDrawer: this.openKudosDrawer
235
+ });
200
236
 
201
- return /*#__PURE__*/_react.default.createElement(_Card.CardWrapper, null, /*#__PURE__*/_react.default.createElement(_ProfileCard.default, (0, _extends2.default)({}, newProps, {
237
+ return /*#__PURE__*/_react.default.createElement(_Card.CardWrapper, null, /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, isKudosEnabled && /*#__PURE__*/_react.default.createElement(_react.Suspense, {
238
+ fallback: null
239
+ }, /*#__PURE__*/_react.default.createElement(_giveKudos.GiveKudosLauncherLazy, {
240
+ isOpen: this.state.kudosDrawerOpen,
241
+ recipient: {
242
+ type: _giveKudos.KudosType.INDIVIDUAL,
243
+ recipientId: this.props.userId
244
+ },
245
+ analytics: this.props.analytics,
246
+ analyticsSource: "profile-card",
247
+ teamCentralBaseUrl: newProps.teamCentralBaseUrl,
248
+ cloudId: this.props.cloudId,
249
+ addFlag: this.props.addFlag,
250
+ onClose: this.closeKudosDrawer
251
+ })), /*#__PURE__*/_react.default.createElement(_ProfileCard.default, (0, _extends2.default)({}, newProps, {
202
252
  actions: this.filterActions()
203
- })));
253
+ }))));
204
254
  }
205
255
  }]);
206
256
  return ProfileCardResourced;
@@ -31,6 +31,8 @@ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/de
31
31
 
32
32
  var _react = _interopRequireWildcard(require("react"));
33
33
 
34
+ var _giveKudos = require("@atlaskit/give-kudos");
35
+
34
36
  var _popup = _interopRequireDefault(require("@atlaskit/popup"));
35
37
 
36
38
  var _constants = require("@atlaskit/theme/constants");
@@ -127,7 +129,8 @@ var ProfilecardTrigger = /*#__PURE__*/function (_React$PureComponent) {
127
129
  data: null,
128
130
  reportingLinesData: undefined,
129
131
  shouldShowGiveKudos: false,
130
- teamCentralBaseUrl: undefined
132
+ teamCentralBaseUrl: undefined,
133
+ kudosDrawerOpen: false
131
134
  });
132
135
  (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "clientFetchProfile", function () {
133
136
  var _this$props = _this.props,
@@ -161,6 +164,18 @@ var ProfilecardTrigger = /*#__PURE__*/function (_React$PureComponent) {
161
164
  });
162
165
  });
163
166
  });
167
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "openKudosDrawer", function () {
168
+ _this.hideProfilecard();
169
+
170
+ _this.setState({
171
+ kudosDrawerOpen: true
172
+ });
173
+ });
174
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "closeKudosDrawer", function () {
175
+ _this.setState({
176
+ kudosDrawerOpen: false
177
+ });
178
+ });
164
179
  (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "renderCard", function () {
165
180
  var isLoading = _this.state.isLoading;
166
181
 
@@ -247,7 +262,9 @@ var ProfilecardTrigger = /*#__PURE__*/function (_React$PureComponent) {
247
262
  reportingLines: this.state.reportingLinesData,
248
263
  onReportingLinesClick: this.props.onReportingLinesClick,
249
264
  isKudosEnabled: this.state.shouldShowGiveKudos,
250
- teamCentralBaseUrl: this.state.teamCentralBaseUrl
265
+ teamCentralBaseUrl: this.state.teamCentralBaseUrl,
266
+ cloudId: this.props.cloudId,
267
+ openKudosDrawer: this.openKudosDrawer
251
268
  });
252
269
 
253
270
  var wrapperProps = this.props.trigger === 'hover' ? {
@@ -268,7 +285,7 @@ var ProfilecardTrigger = /*#__PURE__*/function (_React$PureComponent) {
268
285
  value: function renderWithTrigger() {
269
286
  var _this3 = this;
270
287
 
271
- return /*#__PURE__*/_react.default.createElement(_popup.default, {
288
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_popup.default, {
272
289
  isOpen: !!this.state.visible,
273
290
  onClose: this.hideProfilecard,
274
291
  placement: this.props.position,
@@ -283,7 +300,21 @@ var ProfilecardTrigger = /*#__PURE__*/function (_React$PureComponent) {
283
300
  },
284
301
  zIndex: _constants.layers.modal(),
285
302
  shouldUseCaptureOnOutsideClick: true
286
- });
303
+ }), this.state.shouldShowGiveKudos && /*#__PURE__*/_react.default.createElement(_react.Suspense, {
304
+ fallback: null
305
+ }, /*#__PURE__*/_react.default.createElement(_giveKudos.GiveKudosLauncherLazy, {
306
+ isOpen: this.state.kudosDrawerOpen,
307
+ recipient: {
308
+ type: _giveKudos.KudosType.INDIVIDUAL,
309
+ recipientId: this.props.userId
310
+ },
311
+ analytics: this.props.analytics,
312
+ analyticsSource: "profile-card",
313
+ teamCentralBaseUrl: this.state.teamCentralBaseUrl,
314
+ cloudId: this.props.cloudId,
315
+ addFlag: this.props.addFlag,
316
+ onClose: this.closeKudosDrawer
317
+ })));
287
318
  }
288
319
  }, {
289
320
  key: "render",
@@ -152,6 +152,11 @@ var messages = (0, _reactIntlNext.defineMessages)({
152
152
  id: 'pt.profile-card.give-kudos',
153
153
  defaultMessage: 'Give kudos',
154
154
  description: 'Title for the button on the profile card for a user to give a kudos'
155
+ },
156
+ profileCardMoreIconLabel: {
157
+ id: 'pt.profile-card.more-icon-label',
158
+ defaultMessage: 'More',
159
+ description: 'Label for the meatballs icon on the profile card, which when clicked will provide more options'
155
160
  }
156
161
  });
157
162
  var _default = messages;
@@ -114,6 +114,11 @@ function getMockProfileClient(BaseProfileClient, modifyResponse) {
114
114
  }, timeout);
115
115
  });
116
116
  }
117
+ }, {
118
+ key: "getFlagEnabled",
119
+ value: function getFlagEnabled(featureKey) {
120
+ return Promise.resolve(true);
121
+ }
117
122
  }]);
118
123
  return MockTeamCentralClient;
119
124
  }(_TeamCentralCardClient.default);