@atlaskit/profilecard 16.6.1 → 16.9.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 (132) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/dist/cjs/components/Team/TeamProfileCard.js +15 -3
  3. package/dist/cjs/components/Team/TeamProfileCardTrigger.js +78 -12
  4. package/dist/cjs/components/User/OverflowProfileCardButtons.js +69 -0
  5. package/dist/cjs/components/User/ProfileCard.js +42 -18
  6. package/dist/cjs/i18n/cs.js +1 -0
  7. package/dist/cjs/i18n/da.js +1 -0
  8. package/dist/cjs/i18n/de.js +1 -0
  9. package/dist/cjs/i18n/en.js +1 -0
  10. package/dist/cjs/i18n/en_GB.js +1 -0
  11. package/dist/cjs/i18n/en_ZZ.js +1 -0
  12. package/dist/cjs/i18n/es.js +1 -0
  13. package/dist/cjs/i18n/fi.js +1 -0
  14. package/dist/cjs/i18n/fr.js +1 -0
  15. package/dist/cjs/i18n/hu.js +1 -0
  16. package/dist/cjs/i18n/it.js +1 -0
  17. package/dist/cjs/i18n/ja.js +1 -0
  18. package/dist/cjs/i18n/ko.js +1 -0
  19. package/dist/cjs/i18n/nb.js +1 -0
  20. package/dist/cjs/i18n/nl.js +1 -0
  21. package/dist/cjs/i18n/pl.js +1 -0
  22. package/dist/cjs/i18n/pt_BR.js +1 -0
  23. package/dist/cjs/i18n/ru.js +1 -0
  24. package/dist/cjs/i18n/sv.js +1 -0
  25. package/dist/cjs/i18n/th.js +1 -0
  26. package/dist/cjs/i18n/tr.js +1 -0
  27. package/dist/cjs/i18n/uk.js +1 -0
  28. package/dist/cjs/i18n/vi.js +1 -0
  29. package/dist/cjs/i18n/zh.js +1 -0
  30. package/dist/cjs/i18n/zh_TW.js +1 -0
  31. package/dist/cjs/messages.js +5 -0
  32. package/dist/cjs/styled/Card.js +32 -17
  33. package/dist/cjs/util/analytics.js +1 -1
  34. package/dist/cjs/version.json +1 -1
  35. package/dist/es2019/components/Team/TeamProfileCard.js +13 -3
  36. package/dist/es2019/components/Team/TeamProfileCardTrigger.js +69 -9
  37. package/dist/es2019/components/User/OverflowProfileCardButtons.js +33 -0
  38. package/dist/es2019/components/User/ProfileCard.js +34 -17
  39. package/dist/es2019/i18n/cs.js +1 -0
  40. package/dist/es2019/i18n/da.js +1 -0
  41. package/dist/es2019/i18n/de.js +1 -0
  42. package/dist/es2019/i18n/en.js +1 -0
  43. package/dist/es2019/i18n/en_GB.js +1 -0
  44. package/dist/es2019/i18n/en_ZZ.js +1 -0
  45. package/dist/es2019/i18n/es.js +1 -0
  46. package/dist/es2019/i18n/fi.js +1 -0
  47. package/dist/es2019/i18n/fr.js +1 -0
  48. package/dist/es2019/i18n/hu.js +1 -0
  49. package/dist/es2019/i18n/it.js +1 -0
  50. package/dist/es2019/i18n/ja.js +1 -0
  51. package/dist/es2019/i18n/ko.js +1 -0
  52. package/dist/es2019/i18n/nb.js +1 -0
  53. package/dist/es2019/i18n/nl.js +1 -0
  54. package/dist/es2019/i18n/pl.js +1 -0
  55. package/dist/es2019/i18n/pt_BR.js +1 -0
  56. package/dist/es2019/i18n/ru.js +1 -0
  57. package/dist/es2019/i18n/sv.js +1 -0
  58. package/dist/es2019/i18n/th.js +1 -0
  59. package/dist/es2019/i18n/tr.js +1 -0
  60. package/dist/es2019/i18n/uk.js +1 -0
  61. package/dist/es2019/i18n/vi.js +1 -0
  62. package/dist/es2019/i18n/zh.js +1 -0
  63. package/dist/es2019/i18n/zh_TW.js +1 -0
  64. package/dist/es2019/messages.js +5 -0
  65. package/dist/es2019/styled/Card.js +44 -1
  66. package/dist/es2019/util/analytics.js +1 -1
  67. package/dist/es2019/version.json +1 -1
  68. package/dist/esm/components/Team/TeamProfileCard.js +13 -3
  69. package/dist/esm/components/Team/TeamProfileCardTrigger.js +78 -12
  70. package/dist/esm/components/User/OverflowProfileCardButtons.js +43 -0
  71. package/dist/esm/components/User/ProfileCard.js +41 -19
  72. package/dist/esm/i18n/cs.js +1 -0
  73. package/dist/esm/i18n/da.js +1 -0
  74. package/dist/esm/i18n/de.js +1 -0
  75. package/dist/esm/i18n/en.js +1 -0
  76. package/dist/esm/i18n/en_GB.js +1 -0
  77. package/dist/esm/i18n/en_ZZ.js +1 -0
  78. package/dist/esm/i18n/es.js +1 -0
  79. package/dist/esm/i18n/fi.js +1 -0
  80. package/dist/esm/i18n/fr.js +1 -0
  81. package/dist/esm/i18n/hu.js +1 -0
  82. package/dist/esm/i18n/it.js +1 -0
  83. package/dist/esm/i18n/ja.js +1 -0
  84. package/dist/esm/i18n/ko.js +1 -0
  85. package/dist/esm/i18n/nb.js +1 -0
  86. package/dist/esm/i18n/nl.js +1 -0
  87. package/dist/esm/i18n/pl.js +1 -0
  88. package/dist/esm/i18n/pt_BR.js +1 -0
  89. package/dist/esm/i18n/ru.js +1 -0
  90. package/dist/esm/i18n/sv.js +1 -0
  91. package/dist/esm/i18n/th.js +1 -0
  92. package/dist/esm/i18n/tr.js +1 -0
  93. package/dist/esm/i18n/uk.js +1 -0
  94. package/dist/esm/i18n/vi.js +1 -0
  95. package/dist/esm/i18n/zh.js +1 -0
  96. package/dist/esm/i18n/zh_TW.js +1 -0
  97. package/dist/esm/messages.js +5 -0
  98. package/dist/esm/styled/Card.js +22 -17
  99. package/dist/esm/util/analytics.js +1 -1
  100. package/dist/esm/version.json +1 -1
  101. package/dist/types/components/Team/TeamProfileCardTrigger.d.ts +5 -1
  102. package/dist/types/components/User/OverflowProfileCardButtons.d.ts +8 -0
  103. package/dist/types/components/User/ProfileCard.d.ts +2 -0
  104. package/dist/types/i18n/cs.d.ts +1 -0
  105. package/dist/types/i18n/da.d.ts +1 -0
  106. package/dist/types/i18n/de.d.ts +1 -0
  107. package/dist/types/i18n/en.d.ts +1 -0
  108. package/dist/types/i18n/en_GB.d.ts +1 -0
  109. package/dist/types/i18n/en_ZZ.d.ts +1 -0
  110. package/dist/types/i18n/es.d.ts +1 -0
  111. package/dist/types/i18n/fi.d.ts +1 -0
  112. package/dist/types/i18n/fr.d.ts +1 -0
  113. package/dist/types/i18n/hu.d.ts +1 -0
  114. package/dist/types/i18n/it.d.ts +1 -0
  115. package/dist/types/i18n/ja.d.ts +1 -0
  116. package/dist/types/i18n/ko.d.ts +1 -0
  117. package/dist/types/i18n/nb.d.ts +1 -0
  118. package/dist/types/i18n/nl.d.ts +1 -0
  119. package/dist/types/i18n/pl.d.ts +1 -0
  120. package/dist/types/i18n/pt_BR.d.ts +1 -0
  121. package/dist/types/i18n/ru.d.ts +1 -0
  122. package/dist/types/i18n/sv.d.ts +1 -0
  123. package/dist/types/i18n/th.d.ts +1 -0
  124. package/dist/types/i18n/tr.d.ts +1 -0
  125. package/dist/types/i18n/uk.d.ts +1 -0
  126. package/dist/types/i18n/vi.d.ts +1 -0
  127. package/dist/types/i18n/zh.d.ts +1 -0
  128. package/dist/types/i18n/zh_TW.d.ts +1 -0
  129. package/dist/types/messages.d.ts +5 -0
  130. package/dist/types/styled/Card.d.ts +3 -0
  131. package/dist/types/types.d.ts +11 -0
  132. package/package.json +2 -1
package/CHANGELOG.md CHANGED
@@ -1,5 +1,23 @@
1
1
  # @atlaskit/profilecard
2
2
 
3
+ ## 16.9.0
4
+
5
+ ### Minor Changes
6
+
7
+ - [`1f16cd80413`](https://bitbucket.org/atlassian/atlassian-frontend/commits/1f16cd80413) - [ux] Add give kudos to Team profile card.
8
+
9
+ ## 16.8.0
10
+
11
+ ### Minor Changes
12
+
13
+ - [`319c46e77de`](https://bitbucket.org/atlassian/atlassian-frontend/commits/319c46e77de) - [ux] Adding a button background animation when the give kudos button on the profile card is hovered over
14
+
15
+ ## 16.7.0
16
+
17
+ ### Minor Changes
18
+
19
+ - [`4e9fbfb9e85`](https://bitbucket.org/atlassian/atlassian-frontend/commits/4e9fbfb9e85) - [ux] Adding meatballs overflow menu when the profile card has more than two action buttons
20
+
3
21
  ## 16.6.1
4
22
 
5
23
  ### Patch Changes
@@ -39,6 +39,8 @@ var _constants = require("@atlaskit/theme/constants");
39
39
 
40
40
  var _messages = _interopRequireDefault(require("../../messages"));
41
41
 
42
+ var _Card = require("../../styled/Card");
43
+
42
44
  var _Error = require("../../styled/Error");
43
45
 
44
46
  var _TeamCard = require("../../styled/TeamCard");
@@ -60,6 +62,7 @@ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (O
60
62
  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; }
61
63
 
62
64
  var LARGE_MEMBER_COUNT = 50;
65
+ var GIVE_KUDOS_ACTION_ID = 'give-kudos';
63
66
 
64
67
  function onMemberClick(callback, userId, analytics, index, hasHref) {
65
68
  return function (event) {
@@ -156,11 +159,20 @@ var ActionButton = function ActionButton(_ref2) {
156
159
  var action = _ref2.action,
157
160
  analytics = _ref2.analytics,
158
161
  index = _ref2.index;
159
- return /*#__PURE__*/_react.default.createElement(_TeamCard.WrappedButton, null, /*#__PURE__*/_react.default.createElement(_standardButton.default, {
160
- href: action.link,
162
+ var isGiveKudosActionButton = action.id === GIVE_KUDOS_ACTION_ID;
163
+
164
+ var actionButton = /*#__PURE__*/_react.default.createElement(_standardButton.default, {
165
+ key: action.id || index,
161
166
  onClick: onActionClick(action, analytics, index),
167
+ href: action.link,
162
168
  shouldFitContainer: true
163
- }, action.label));
169
+ }, action.label, isGiveKudosActionButton && /*#__PURE__*/_react.default.createElement(_Card.KudosBlobAnimation, null));
170
+
171
+ if (isGiveKudosActionButton) {
172
+ return /*#__PURE__*/_react.default.createElement(_Card.AnimatedKudosButton, null, actionButton);
173
+ }
174
+
175
+ return /*#__PURE__*/_react.default.createElement(_TeamCard.WrappedButton, null, actionButton);
164
176
  };
165
177
 
166
178
  var ExtraActions = function ExtraActions(_ref3) {
@@ -11,6 +11,8 @@ exports.default = exports.TeamProfileCardTriggerInternal = void 0;
11
11
 
12
12
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
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"));
@@ -27,14 +29,20 @@ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/de
27
29
 
28
30
  var _react = _interopRequireWildcard(require("react"));
29
31
 
32
+ var _reactIntlNext = require("react-intl-next");
33
+
30
34
  var _analyticsNext = require("@atlaskit/analytics-next");
31
35
 
36
+ var _giveKudos = require("@atlaskit/give-kudos");
37
+
32
38
  var _popup = _interopRequireDefault(require("@atlaskit/popup"));
33
39
 
34
40
  var _constants = require("@atlaskit/theme/constants");
35
41
 
36
42
  var _filterActions2 = _interopRequireDefault(require("../../internal/filterActions"));
37
43
 
44
+ var _messages = _interopRequireDefault(require("../../messages"));
45
+
38
46
  var _analytics = require("../../util/analytics");
39
47
 
40
48
  var _click = require("../../util/click");
@@ -165,6 +173,23 @@ var TeamProfileCardTriggerInternal = /*#__PURE__*/function (_React$PureComponent
165
173
  _this.hideProfilecard(_config.DELAY_MS_HIDE);
166
174
  }
167
175
  });
176
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "openKudosDrawer", function () {
177
+ _this.hideProfilecard(_config.DELAY_MS_HIDE);
178
+
179
+ _this.setState({
180
+ kudosDrawerOpen: true
181
+ });
182
+ });
183
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "closeKudosDrawer", function () {
184
+ _this.setState({
185
+ kudosDrawerOpen: false
186
+ });
187
+ });
188
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "kudosUrl", function () {
189
+ var recipientId = _this.props.teamId && "&recipientId=".concat(_this.props.teamId) || '';
190
+ var cloudId = _this.props.cloudId && "&cloudId=".concat(_this.props.cloudId) || '';
191
+ return "".concat(_this.state.teamCentralBaseUrl, "/kudos/give?type=team").concat(recipientId).concat(cloudId);
192
+ });
168
193
  (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "stopPropagation", function (event) {
169
194
  // We need to stop propagation when users click on the card, so that it
170
195
  // doesn't trigger any special effects that occur when clicking the trigger.
@@ -185,7 +210,10 @@ var TeamProfileCardTriggerInternal = /*#__PURE__*/function (_React$PureComponent
185
210
  isLoading: undefined,
186
211
  hasError: false,
187
212
  error: null,
188
- data: null
213
+ data: null,
214
+ shouldShowGiveKudos: false,
215
+ teamCentralBaseUrl: undefined,
216
+ kudosDrawerOpen: false
189
217
  });
190
218
  (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "clientFetchProfile", function () {
191
219
  var _this$props = _this.props,
@@ -206,8 +234,11 @@ var TeamProfileCardTriggerInternal = /*#__PURE__*/function (_React$PureComponent
206
234
  _this.fireAnalytics(event);
207
235
  };
208
236
 
209
- _this.props.resourceClient.getTeamProfile(teamId, orgId, fireEvent).then(function (res) {
210
- return _this.handleClientSuccess(res);
237
+ var requests = Promise.all([_this.props.resourceClient.getTeamProfile(teamId, orgId, fireEvent), _this.props.resourceClient.shouldShowGiveKudos()]);
238
+ requests.then(function (res) {
239
+ var _this2;
240
+
241
+ return (_this2 = _this).handleClientSuccess.apply(_this2, (0, _toConsumableArray2.default)(res));
211
242
  }, function (err) {
212
243
  return _this.handleClientError(err);
213
244
  }).catch(function (err) {
@@ -257,6 +288,23 @@ var TeamProfileCardTriggerInternal = /*#__PURE__*/function (_React$PureComponent
257
288
  errorType: error
258
289
  }))));
259
290
  });
291
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "renderKudosLauncher", function () {
292
+ return _this.state.shouldShowGiveKudos && /*#__PURE__*/_react.default.createElement(_react.Suspense, {
293
+ fallback: null
294
+ }, /*#__PURE__*/_react.default.createElement(_giveKudos.GiveKudosLauncherLazy, {
295
+ isOpen: _this.state.kudosDrawerOpen,
296
+ recipient: {
297
+ type: _giveKudos.KudosType.TEAM,
298
+ recipientId: _this.props.teamId
299
+ },
300
+ analytics: _this.fireAnalytics,
301
+ analyticsSource: "team-profile-card",
302
+ teamCentralBaseUrl: _this.state.teamCentralBaseUrl,
303
+ cloudId: _this.props.cloudId || '',
304
+ addFlag: _this.props.addFlag,
305
+ onClose: _this.closeKudosDrawer
306
+ }));
307
+ });
260
308
  (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "renderTrigger", function (triggerProps) {
261
309
  var _this$props3 = _this.props,
262
310
  children = _this$props3.children,
@@ -264,12 +312,12 @@ var TeamProfileCardTriggerInternal = /*#__PURE__*/function (_React$PureComponent
264
312
  viewProfileLink = _this$props3.viewProfileLink;
265
313
 
266
314
  if (triggerLinkType === 'none') {
267
- return /*#__PURE__*/_react.default.createElement("span", (0, _extends2.default)({
315
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, _this.renderKudosLauncher(), /*#__PURE__*/_react.default.createElement("span", (0, _extends2.default)({
268
316
  "data-testid": "team-profilecard-trigger-wrapper"
269
- }, triggerProps, _this.triggerListeners), children);
317
+ }, triggerProps, _this.triggerListeners), children));
270
318
  }
271
319
 
272
- return /*#__PURE__*/_react.default.createElement("a", (0, _extends2.default)({
320
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, _this.renderKudosLauncher(), /*#__PURE__*/_react.default.createElement("a", (0, _extends2.default)({
273
321
  "data-testid": "team-profilecard-trigger-wrapper",
274
322
  style: {
275
323
  color: 'initial',
@@ -278,7 +326,7 @@ var TeamProfileCardTriggerInternal = /*#__PURE__*/function (_React$PureComponent
278
326
  href: viewProfileLink
279
327
  }, triggerProps, {
280
328
  ref: triggerProps.ref
281
- }, _this.triggerListeners), children);
329
+ }, _this.triggerListeners), children));
282
330
  });
283
331
  return _this;
284
332
  }
@@ -312,7 +360,7 @@ var TeamProfileCardTriggerInternal = /*#__PURE__*/function (_React$PureComponent
312
360
  }
313
361
  }, {
314
362
  key: "handleClientSuccess",
315
- value: function handleClientSuccess(res) {
363
+ value: function handleClientSuccess(team, shouldShowGiveKudos) {
316
364
  if (!this._isMounted) {
317
365
  return;
318
366
  }
@@ -320,7 +368,9 @@ var TeamProfileCardTriggerInternal = /*#__PURE__*/function (_React$PureComponent
320
368
  this.setState({
321
369
  isLoading: false,
322
370
  hasError: false,
323
- data: res
371
+ data: team,
372
+ shouldShowGiveKudos: shouldShowGiveKudos,
373
+ teamCentralBaseUrl: this.props.resourceClient.getTeamCentralBaseUrl()
324
374
  });
325
375
  }
326
376
  }, {
@@ -339,12 +389,28 @@ var TeamProfileCardTriggerInternal = /*#__PURE__*/function (_React$PureComponent
339
389
  }, {
340
390
  key: "filterActions",
341
391
  value: function filterActions() {
342
- return (0, _filterActions2.default)(this.props.actions, this.state.data);
392
+ var _this3 = this;
393
+
394
+ var actions = (0, _filterActions2.default)(this.props.actions, this.state.data);
395
+
396
+ if (this.state.shouldShowGiveKudos) {
397
+ var kudosAction = {
398
+ label: /*#__PURE__*/_react.default.createElement(_reactIntlNext.FormattedMessage, _messages.default.giveKudosButton),
399
+ id: 'give-kudos',
400
+ callback: function callback() {
401
+ _this3.openKudosDrawer();
402
+ },
403
+ link: this.kudosUrl()
404
+ };
405
+ return actions.concat([kudosAction]);
406
+ }
407
+
408
+ return actions;
343
409
  }
344
410
  }, {
345
411
  key: "renderPopup",
346
412
  value: function renderPopup() {
347
- var _this2 = this;
413
+ var _this4 = this;
348
414
 
349
415
  if (this.state.renderError) {
350
416
  return this.props.children;
@@ -358,7 +424,7 @@ var TeamProfileCardTriggerInternal = /*#__PURE__*/function (_React$PureComponent
358
424
  placement: this.props.position,
359
425
  content: this.renderProfileCard,
360
426
  trigger: function trigger(triggerProps) {
361
- return _this2.renderTrigger(triggerProps);
427
+ return _this4.renderTrigger(triggerProps);
362
428
  },
363
429
  zIndex: _constants.layers.modal(),
364
430
  shouldFlip: true
@@ -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"];
@@ -73,6 +77,7 @@ var Profilecard = /*#__PURE__*/function (_React$PureComponent) {
73
77
 
74
78
  (0, _classCallCheck2.default)(this, Profilecard);
75
79
  _this = _super.call(this, props);
80
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "GIVE_KUDOS_ACTION_ID", 'give-kudos');
76
81
  (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "durationSince", function (from) {
77
82
  var fromParsed = from || 0;
78
83
  return fromParsed > 0 ? Date.now() - fromParsed : null;
@@ -102,27 +107,26 @@ var Profilecard = /*#__PURE__*/function (_React$PureComponent) {
102
107
  }
103
108
  });
104
109
  (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "renderButton", function (action, idx) {
105
- return /*#__PURE__*/_react.default.createElement(_customThemeButton.default, {
106
- appearance: idx === 0 ? 'default' : 'subtle',
110
+ var isGiveKudosActionButton = action.id === _this.GIVE_KUDOS_ACTION_ID;
111
+
112
+ var actionButton = /*#__PURE__*/_react.default.createElement(_customThemeButton.default, {
113
+ appearance: "default",
107
114
  key: action.id || idx,
108
115
  onClick: function onClick(event) {
109
- _this.callAnalytics(_analytics.AnalyticsName.PROFILE_CARD_CLICK, {
110
- id: action.id || null,
111
- duration: _this.durationSince(_this.timeOpen)
112
- });
113
-
114
- if (action.callback && (0, _click.isBasicClick)(event)) {
115
- event.preventDefault();
116
-
117
- for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
118
- args[_key - 1] = arguments[_key];
119
- }
120
-
121
- action.callback.apply(action, [event].concat(args));
116
+ for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
117
+ args[_key - 1] = arguments[_key];
122
118
  }
119
+
120
+ return _this.onActionClick(action, args, event);
123
121
  },
124
122
  href: action.link
125
- }, action.label);
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;
126
130
  });
127
131
  _this.timeOpen = null;
128
132
 
@@ -161,7 +165,7 @@ var Profilecard = /*#__PURE__*/function (_React$PureComponent) {
161
165
  if (!this.props.isCurrentUser && this.props.isKudosEnabled) {
162
166
  var kudosAction = {
163
167
  label: /*#__PURE__*/_react.default.createElement(_reactIntlNext.FormattedMessage, _messages.default.giveKudosButton),
164
- id: 'give-kudos',
168
+ id: this.GIVE_KUDOS_ACTION_ID,
165
169
  callback: function callback() {
166
170
  _this3.kudosButtonCallback();
167
171
  },
@@ -182,10 +186,30 @@ var Profilecard = /*#__PURE__*/function (_React$PureComponent) {
182
186
  }
183
187
 
184
188
  var actions = this.getActions();
185
- return /*#__PURE__*/_react.default.createElement(_Card.ActionButtonGroup, null, actions.map(function (action, idx) {
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) {
186
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
+ }
187
198
  }));
188
199
  }
200
+ }, {
201
+ key: "onActionClick",
202
+ value: function onActionClick(action, args, event) {
203
+ this.callAnalytics(_analytics.AnalyticsName.PROFILE_CARD_CLICK, {
204
+ id: action.id || null,
205
+ duration: this.durationSince(this.timeOpen)
206
+ });
207
+
208
+ if (action.callback && (0, _click.isBasicClick)(event)) {
209
+ event.preventDefault();
210
+ action.callback.apply(action, [event].concat((0, _toConsumableArray2.default)(args)));
211
+ }
212
+ }
189
213
  }, {
190
214
  key: "renderCardDetailsDefault",
191
215
  value: function renderCardDetailsDefault() {
@@ -23,6 +23,7 @@ var _default = {
23
23
  'pt.profile-card.closed.account.no.date': 'Účet uživatele byl smazán.',
24
24
  'pt.profile-card.disabled.account.default.name': 'Bývalý uživatel',
25
25
  'pt.profile-card.general.msg.disabled.user': 'S touto osobou již nemůžete spolupracovat.',
26
+ 'pt.profile-card.give-kudos': 'Pogratulovat',
26
27
  'pt.profile-card.inactive.account': 'Deaktivovaný účet',
27
28
  'pt.profile-card.inactive.account.has.date.a.few.months': 'Účet uživatele je deaktivovaný již několik měsíců.',
28
29
  'pt.profile-card.inactive.account.has.date.last.month': 'Účet uživatele byl deaktivován minulý měsíc.',
@@ -23,6 +23,7 @@ var _default = {
23
23
  'pt.profile-card.closed.account.no.date': 'Personens konto er blevet slettet.',
24
24
  'pt.profile-card.disabled.account.default.name': 'Forhenværende bruger',
25
25
  'pt.profile-card.general.msg.disabled.user': 'Du kan ikke længere samarbejde med denne person.',
26
+ 'pt.profile-card.give-kudos': 'Giv ros',
26
27
  'pt.profile-card.inactive.account': 'Konto deaktiveret',
27
28
  'pt.profile-card.inactive.account.has.date.a.few.months': 'Personens konto har været deaktiveret i nogle måneder.',
28
29
  'pt.profile-card.inactive.account.has.date.last.month': 'Personens konto blev deaktiveret i sidste måned.',
@@ -23,6 +23,7 @@ var _default = {
23
23
  'pt.profile-card.closed.account.no.date': 'Das Konto dieser Person wurde gelöscht.',
24
24
  'pt.profile-card.disabled.account.default.name': 'Ehemaliger Benutzer',
25
25
  'pt.profile-card.general.msg.disabled.user': 'Sie können mit dieser Person nicht mehr zusammenarbeiten.',
26
+ 'pt.profile-card.give-kudos': 'Loben',
26
27
  'pt.profile-card.inactive.account': 'Konto deaktiviert',
27
28
  'pt.profile-card.inactive.account.has.date.a.few.months': 'Das Konto dieser Person wurde vor wenigen Monaten gelöscht.',
28
29
  'pt.profile-card.inactive.account.has.date.last.month': 'Das Konto dieser Person wurde letzten Monat deaktiviert.',
@@ -23,6 +23,7 @@ var _default = {
23
23
  'pt.profile-card.closed.account.no.date': 'Their account has been deleted.',
24
24
  'pt.profile-card.disabled.account.default.name': 'Former user',
25
25
  'pt.profile-card.general.msg.disabled.user': 'You can no longer collaborate with this person.',
26
+ 'pt.profile-card.give-kudos': 'Give kudos',
26
27
  'pt.profile-card.inactive.account': 'Account deactivated',
27
28
  'pt.profile-card.inactive.account.has.date.a.few.months': 'Their account has been deactivated for a few months.',
28
29
  'pt.profile-card.inactive.account.has.date.last.month': 'Their account was deactivated last month.',
@@ -23,6 +23,7 @@ var _default = {
23
23
  'pt.profile-card.closed.account.no.date': 'Their account has been deleted.',
24
24
  'pt.profile-card.disabled.account.default.name': 'Former user',
25
25
  'pt.profile-card.general.msg.disabled.user': 'You can no longer collaborate with this person.',
26
+ 'pt.profile-card.give-kudos': 'Give kudos',
26
27
  'pt.profile-card.inactive.account': 'Account deactivated',
27
28
  'pt.profile-card.inactive.account.has.date.a.few.months': 'Their account has been deactivated for a few months.',
28
29
  'pt.profile-card.inactive.account.has.date.last.month': 'Their account was deactivated last month.',
@@ -23,6 +23,7 @@ var _default = {
23
23
  'pt.profile-card.closed.account.no.date': '⁣⁢Their account has been deleted.‌؜⁠⁡‌‌‌‌⁡⁡‌؜؜؜⁠⁣⁤',
24
24
  'pt.profile-card.disabled.account.default.name': '⁣⁢Former user‍‌⁠⁡‍⁡‌‌‍⁡⁣⁤',
25
25
  'pt.profile-card.general.msg.disabled.user': '⁣⁢You can no longer collaborate with this person.⁠⁠⁡؜⁠⁠⁣⁤',
26
+ 'pt.profile-card.give-kudos': '⁣⁢Give kudos‌⁡‍‌‍‌⁠؜‍؜؜⁣⁤',
26
27
  'pt.profile-card.inactive.account': '⁣⁢Account deactivated‍؜⁡⁠‌؜‍⁡⁣⁤',
27
28
  'pt.profile-card.inactive.account.has.date.a.few.months': '⁣⁢Their account has been deactivated for a few months.‌‌⁡⁠⁡⁠؜⁣⁤',
28
29
  'pt.profile-card.inactive.account.has.date.last.month': '⁣⁢Their account was deactivated last month.‌‍‍⁠‍⁡؜‌⁡⁡⁠⁣⁤',
@@ -23,6 +23,7 @@ var _default = {
23
23
  'pt.profile-card.closed.account.no.date': 'Su cuenta está eliminada.',
24
24
  'pt.profile-card.disabled.account.default.name': 'Antiguo usuario',
25
25
  'pt.profile-card.general.msg.disabled.user': 'Ya no puedes colaborar con esta persona.',
26
+ 'pt.profile-card.give-kudos': 'Felicitar',
26
27
  'pt.profile-card.inactive.account': 'Cuenta desactivada',
27
28
  'pt.profile-card.inactive.account.has.date.a.few.months': 'Su cuenta se desactivó hace algunos meses.',
28
29
  'pt.profile-card.inactive.account.has.date.last.month': 'Su cuenta se desactivó el mes pasado.',
@@ -23,6 +23,7 @@ var _default = {
23
23
  'pt.profile-card.closed.account.no.date': 'Hänen tilinsä on poistettu.',
24
24
  'pt.profile-card.disabled.account.default.name': 'Entinen käyttäjä',
25
25
  'pt.profile-card.general.msg.disabled.user': 'Et voi enää tehdä yhteistyötä tämän henkilön kanssa.',
26
+ 'pt.profile-card.give-kudos': 'Anna kehuja',
26
27
  'pt.profile-card.inactive.account': 'Tili poistettu käytöstä',
27
28
  'pt.profile-card.inactive.account.has.date.a.few.months': 'Hänen tilinsä on ollut poissa käytöstä muutaman kuukauden ajan.',
28
29
  'pt.profile-card.inactive.account.has.date.last.month': 'Hänen tilinsä poistettiin käytöstä viime kuussa.',
@@ -23,6 +23,7 @@ var _default = {
23
23
  'pt.profile-card.closed.account.no.date': 'Son compte a été supprimé.',
24
24
  'pt.profile-card.disabled.account.default.name': 'Ancien utilisateur',
25
25
  'pt.profile-card.general.msg.disabled.user': 'Vous ne pouvez plus collaborer avec cette personne.',
26
+ 'pt.profile-card.give-kudos': 'Féliciter',
26
27
  'pt.profile-card.inactive.account': 'Compte désactivé',
27
28
  'pt.profile-card.inactive.account.has.date.a.few.months': 'Son compte a été désactivé il y a quelques mois.',
28
29
  'pt.profile-card.inactive.account.has.date.last.month': 'Son compte a été désactivé le mois dernier.',
@@ -23,6 +23,7 @@ var _default = {
23
23
  'pt.profile-card.closed.account.no.date': 'A fiókját töröltük.',
24
24
  'pt.profile-card.disabled.account.default.name': 'Korábbi felhasználó',
25
25
  'pt.profile-card.general.msg.disabled.user': 'A továbbiakban nem működhet együtt ezzel a személlyel.',
26
+ 'pt.profile-card.give-kudos': 'Dicséret',
26
27
  'pt.profile-card.inactive.account': 'A fiók inaktiválva.',
27
28
  'pt.profile-card.inactive.account.has.date.a.few.months': 'A fiókját néhány hónapja inaktiváltuk.',
28
29
  'pt.profile-card.inactive.account.has.date.last.month': 'A fiókját a múlt hónapban inaktiváltuk.',
@@ -23,6 +23,7 @@ var _default = {
23
23
  'pt.profile-card.closed.account.no.date': 'Il suo account è stato eliminato.',
24
24
  'pt.profile-card.disabled.account.default.name': 'Ex utente',
25
25
  'pt.profile-card.general.msg.disabled.user': 'Non puoi più collaborare con questa persona.',
26
+ 'pt.profile-card.give-kudos': 'Complimentati',
26
27
  'pt.profile-card.inactive.account': 'Account disattivato',
27
28
  'pt.profile-card.inactive.account.has.date.a.few.months': 'Il suo account è disattivato da qualche mese.',
28
29
  'pt.profile-card.inactive.account.has.date.last.month': 'Il suo account è stato disattivato il mese scorso.',
@@ -23,6 +23,7 @@ var _default = {
23
23
  'pt.profile-card.closed.account.no.date': 'アカウントは削除されています。',
24
24
  'pt.profile-card.disabled.account.default.name': '元ユーザー',
25
25
  'pt.profile-card.general.msg.disabled.user': 'もうこの人とコラボレーションすることはできません。',
26
+ 'pt.profile-card.give-kudos': '賞賛を送る',
26
27
  'pt.profile-card.inactive.account': '無効なアカウント',
27
28
  'pt.profile-card.inactive.account.has.date.a.few.months': 'アカウントは 2〜3 か月前に無効になりました。',
28
29
  'pt.profile-card.inactive.account.has.date.last.month': 'アカウントは先月無効になりました。',
@@ -23,6 +23,7 @@ var _default = {
23
23
  'pt.profile-card.closed.account.no.date': '계정이 삭제되었습니다.',
24
24
  'pt.profile-card.disabled.account.default.name': '이전 사용자',
25
25
  'pt.profile-card.general.msg.disabled.user': '더 이상 이 사람과 협업할 수 없습니다.',
26
+ 'pt.profile-card.give-kudos': '칭찬하기',
26
27
  'pt.profile-card.inactive.account': '계정이 비활성화됨',
27
28
  'pt.profile-card.inactive.account.has.date.a.few.months': '계정이 몇 달 전에 비활성화되었습니다.',
28
29
  'pt.profile-card.inactive.account.has.date.last.month': '계정이 지난달에 비활성화되었습니다.',
@@ -23,6 +23,7 @@ var _default = {
23
23
  'pt.profile-card.closed.account.no.date': 'Vedkommendes konto er slettet.',
24
24
  'pt.profile-card.disabled.account.default.name': 'Tidligere bruker',
25
25
  'pt.profile-card.general.msg.disabled.user': 'Du kan ikke lenger samarbeide med denne personen.',
26
+ 'pt.profile-card.give-kudos': 'Gi kudos',
26
27
  'pt.profile-card.inactive.account': 'Kontoen er deaktivert',
27
28
  'pt.profile-card.inactive.account.has.date.a.few.months': 'Vedkommendes konto har vært deaktivert i noen måneder.',
28
29
  'pt.profile-card.inactive.account.has.date.last.month': 'Vedkommendes konto ble deaktivert denne måneden.',
@@ -23,6 +23,7 @@ var _default = {
23
23
  'pt.profile-card.closed.account.no.date': 'Zijn/haar account is verwijderd.',
24
24
  'pt.profile-card.disabled.account.default.name': 'Voormalige gebruiker',
25
25
  'pt.profile-card.general.msg.disabled.user': 'Je kunt niet meer samenwerken met deze persoon.',
26
+ 'pt.profile-card.give-kudos': 'Geef kudos',
26
27
  'pt.profile-card.inactive.account': 'Account gedeactiveerd',
27
28
  'pt.profile-card.inactive.account.has.date.a.few.months': 'Zijn/haar account is al een paar maanden gedeactiveerd.',
28
29
  'pt.profile-card.inactive.account.has.date.last.month': 'Zijn/haar account is vorige maand gedeactiveerd.',
@@ -23,6 +23,7 @@ var _default = {
23
23
  'pt.profile-card.closed.account.no.date': 'Jej konto zostało usunięte.',
24
24
  'pt.profile-card.disabled.account.default.name': 'Były użytkownik',
25
25
  'pt.profile-card.general.msg.disabled.user': 'Nie możesz już współpracować z tą osobą.',
26
+ 'pt.profile-card.give-kudos': 'Przekaż wyrazy uznania',
26
27
  'pt.profile-card.inactive.account': 'Konto zdezaktywowane',
27
28
  'pt.profile-card.inactive.account.has.date.a.few.months': 'Jej konto zostało zdezaktywowane przynajmniej kilka miesięcy temu.',
28
29
  'pt.profile-card.inactive.account.has.date.last.month': 'Jej konto zdezaktywowane w zeszłym miesiącu.',
@@ -23,6 +23,7 @@ var _default = {
23
23
  'pt.profile-card.closed.account.no.date': 'A conta do usuário foi excluída.',
24
24
  'pt.profile-card.disabled.account.default.name': 'Ex-usuário',
25
25
  'pt.profile-card.general.msg.disabled.user': 'Você não pode mais colaborar com essa pessoa.',
26
+ 'pt.profile-card.give-kudos': 'Envie elogios',
26
27
  'pt.profile-card.inactive.account': 'Conta desativada',
27
28
  'pt.profile-card.inactive.account.has.date.a.few.months': 'A conta do usuário foi desativada há alguns meses.',
28
29
  'pt.profile-card.inactive.account.has.date.last.month': 'A conta do usuário foi desativada no mês passado.',
@@ -23,6 +23,7 @@ var _default = {
23
23
  'pt.profile-card.closed.account.no.date': 'Его аккаунт был удален.',
24
24
  'pt.profile-card.disabled.account.default.name': 'Бывший пользователь',
25
25
  'pt.profile-card.general.msg.disabled.user': 'Вы больше не можете работать с этим пользователем.',
26
+ 'pt.profile-card.give-kudos': 'Похвалить',
26
27
  'pt.profile-card.inactive.account': 'Аккаунт отключен',
27
28
  'pt.profile-card.inactive.account.has.date.a.few.months': 'Его аккаунт был отключен несколько месяцев назад.',
28
29
  'pt.profile-card.inactive.account.has.date.last.month': 'Его аккаунт был отключен в прошлом месяце.',
@@ -23,6 +23,7 @@ var _default = {
23
23
  'pt.profile-card.closed.account.no.date': 'Personens konto har tagits bort.',
24
24
  'pt.profile-card.disabled.account.default.name': 'Före detta användare',
25
25
  'pt.profile-card.general.msg.disabled.user': 'Du kan inte längre samarbeta med den här personen.',
26
+ 'pt.profile-card.give-kudos': 'Ge beröm',
26
27
  'pt.profile-card.inactive.account': 'Kontot är inaktiverat',
27
28
  'pt.profile-card.inactive.account.has.date.a.few.months': 'Personens konto har varit inaktiverat i några få månader.',
28
29
  'pt.profile-card.inactive.account.has.date.last.month': 'Personens konto inaktiverades förra månaden.',
@@ -23,6 +23,7 @@ var _default = {
23
23
  'pt.profile-card.closed.account.no.date': 'บัญชีของผู้ใช้ถูกลบไปแล้ว',
24
24
  'pt.profile-card.disabled.account.default.name': 'ผู้ใช้เดิม',
25
25
  'pt.profile-card.general.msg.disabled.user': 'คุณไม่สามารถทำงานร่วมกับบุคคลนี้ได้อีก',
26
+ 'pt.profile-card.give-kudos': 'แสดงความชื่นชม',
26
27
  'pt.profile-card.inactive.account': 'ปิดใช้งานบัญชีแล้ว',
27
28
  'pt.profile-card.inactive.account.has.date.a.few.months': 'บัญชีของผู้ใช้ถูกปิดใช้งานไปแล้วไม่กี่เดือน',
28
29
  'pt.profile-card.inactive.account.has.date.last.month': 'บัญชีของผู้ใช้ถูกปิดใช้งานไปเมื่อเดือนที่แล้ว',
@@ -23,6 +23,7 @@ var _default = {
23
23
  'pt.profile-card.closed.account.no.date': 'Bu kullanıcının hesabı silindi.',
24
24
  'pt.profile-card.disabled.account.default.name': 'Eski kullanıcı',
25
25
  'pt.profile-card.general.msg.disabled.user': 'Artık bu kişiyle iş birliği yapamazsınız.',
26
+ 'pt.profile-card.give-kudos': 'Tebrik edin',
26
27
  'pt.profile-card.inactive.account': 'Hesap devre dışı bırakıldı',
27
28
  'pt.profile-card.inactive.account.has.date.a.few.months': 'Bu kullanıcının hesabı birkaç ay önce devre dışı bırakıldı.',
28
29
  'pt.profile-card.inactive.account.has.date.last.month': 'Bu kullanıcının hesabı geçen ay devre dışı bırakıldı.',