@atlaskit/reactions 24.7.0 → 24.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 (178) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/dist/cjs/analytics/index.js +1 -1
  3. package/dist/cjs/components/ReactionDialog/ReactionView.js +88 -63
  4. package/dist/cjs/components/ReactionDialog/ReactionsDialog.js +59 -96
  5. package/dist/cjs/components/ReactionDialog/ReactionsDialogHeader.js +205 -0
  6. package/dist/cjs/components/ReactionDialog/ReactionsList.js +12 -105
  7. package/dist/cjs/components/ReactionDialog/styles.js +1 -82
  8. package/dist/cjs/components/ReactionSummary/ReactionSummaryView.js +17 -10
  9. package/dist/cjs/components/Reactions/Reactions.js +39 -41
  10. package/dist/cjs/i18n/cs.js +0 -2
  11. package/dist/cjs/i18n/da.js +0 -2
  12. package/dist/cjs/i18n/de.js +0 -2
  13. package/dist/cjs/i18n/en.js +1 -2
  14. package/dist/cjs/i18n/en_GB.js +1 -2
  15. package/dist/cjs/i18n/en_ZZ.js +1 -2
  16. package/dist/cjs/i18n/es.js +0 -2
  17. package/dist/cjs/i18n/fi.js +0 -2
  18. package/dist/cjs/i18n/fr.js +0 -2
  19. package/dist/cjs/i18n/hu.js +0 -2
  20. package/dist/cjs/i18n/it.js +0 -2
  21. package/dist/cjs/i18n/ja.js +0 -2
  22. package/dist/cjs/i18n/ko.js +0 -2
  23. package/dist/cjs/i18n/nb.js +0 -2
  24. package/dist/cjs/i18n/nl.js +0 -2
  25. package/dist/cjs/i18n/pl.js +0 -2
  26. package/dist/cjs/i18n/pt_BR.js +0 -2
  27. package/dist/cjs/i18n/ru.js +0 -2
  28. package/dist/cjs/i18n/sv.js +0 -2
  29. package/dist/cjs/i18n/th.js +0 -2
  30. package/dist/cjs/i18n/tr.js +0 -2
  31. package/dist/cjs/i18n/uk.js +0 -2
  32. package/dist/cjs/i18n/vi.js +0 -2
  33. package/dist/cjs/i18n/zh.js +0 -2
  34. package/dist/cjs/i18n/zh_TW.js +0 -2
  35. package/dist/cjs/index.js +1 -0
  36. package/dist/cjs/types/reaction.js +0 -5
  37. package/dist/cjs/ufo/index.js +7 -1
  38. package/dist/es2019/analytics/index.js +1 -1
  39. package/dist/es2019/components/ReactionDialog/ReactionView.js +87 -64
  40. package/dist/es2019/components/ReactionDialog/ReactionsDialog.js +41 -73
  41. package/dist/es2019/components/ReactionDialog/ReactionsDialogHeader.js +188 -0
  42. package/dist/es2019/components/ReactionDialog/ReactionsList.js +12 -91
  43. package/dist/es2019/components/ReactionDialog/styles.js +1 -78
  44. package/dist/es2019/components/ReactionSummary/ReactionSummaryView.js +12 -5
  45. package/dist/es2019/components/Reactions/Reactions.js +35 -42
  46. package/dist/es2019/i18n/cs.js +0 -2
  47. package/dist/es2019/i18n/da.js +0 -2
  48. package/dist/es2019/i18n/de.js +0 -2
  49. package/dist/es2019/i18n/en.js +1 -2
  50. package/dist/es2019/i18n/en_GB.js +1 -2
  51. package/dist/es2019/i18n/en_ZZ.js +1 -2
  52. package/dist/es2019/i18n/es.js +0 -2
  53. package/dist/es2019/i18n/fi.js +0 -2
  54. package/dist/es2019/i18n/fr.js +0 -2
  55. package/dist/es2019/i18n/hu.js +0 -2
  56. package/dist/es2019/i18n/it.js +0 -2
  57. package/dist/es2019/i18n/ja.js +0 -2
  58. package/dist/es2019/i18n/ko.js +0 -2
  59. package/dist/es2019/i18n/nb.js +0 -2
  60. package/dist/es2019/i18n/nl.js +0 -2
  61. package/dist/es2019/i18n/pl.js +0 -2
  62. package/dist/es2019/i18n/pt_BR.js +0 -2
  63. package/dist/es2019/i18n/ru.js +0 -2
  64. package/dist/es2019/i18n/sv.js +0 -2
  65. package/dist/es2019/i18n/th.js +0 -2
  66. package/dist/es2019/i18n/tr.js +0 -2
  67. package/dist/es2019/i18n/uk.js +0 -2
  68. package/dist/es2019/i18n/vi.js +0 -2
  69. package/dist/es2019/i18n/zh.js +0 -2
  70. package/dist/es2019/i18n/zh_TW.js +0 -2
  71. package/dist/es2019/index.js +2 -1
  72. package/dist/es2019/types/reaction.js +0 -6
  73. package/dist/es2019/ufo/index.js +6 -0
  74. package/dist/esm/analytics/index.js +1 -1
  75. package/dist/esm/components/ReactionDialog/ReactionView.js +91 -66
  76. package/dist/esm/components/ReactionDialog/ReactionsDialog.js +61 -97
  77. package/dist/esm/components/ReactionDialog/ReactionsDialogHeader.js +196 -0
  78. package/dist/esm/components/ReactionDialog/ReactionsList.js +11 -99
  79. package/dist/esm/components/ReactionDialog/styles.js +1 -82
  80. package/dist/esm/components/ReactionSummary/ReactionSummaryView.js +17 -10
  81. package/dist/esm/components/Reactions/Reactions.js +41 -42
  82. package/dist/esm/i18n/cs.js +0 -2
  83. package/dist/esm/i18n/da.js +0 -2
  84. package/dist/esm/i18n/de.js +0 -2
  85. package/dist/esm/i18n/en.js +1 -2
  86. package/dist/esm/i18n/en_GB.js +1 -2
  87. package/dist/esm/i18n/en_ZZ.js +1 -2
  88. package/dist/esm/i18n/es.js +0 -2
  89. package/dist/esm/i18n/fi.js +0 -2
  90. package/dist/esm/i18n/fr.js +0 -2
  91. package/dist/esm/i18n/hu.js +0 -2
  92. package/dist/esm/i18n/it.js +0 -2
  93. package/dist/esm/i18n/ja.js +0 -2
  94. package/dist/esm/i18n/ko.js +0 -2
  95. package/dist/esm/i18n/nb.js +0 -2
  96. package/dist/esm/i18n/nl.js +0 -2
  97. package/dist/esm/i18n/pl.js +0 -2
  98. package/dist/esm/i18n/pt_BR.js +0 -2
  99. package/dist/esm/i18n/ru.js +0 -2
  100. package/dist/esm/i18n/sv.js +0 -2
  101. package/dist/esm/i18n/th.js +0 -2
  102. package/dist/esm/i18n/tr.js +0 -2
  103. package/dist/esm/i18n/uk.js +0 -2
  104. package/dist/esm/i18n/vi.js +0 -2
  105. package/dist/esm/i18n/zh.js +0 -2
  106. package/dist/esm/i18n/zh_TW.js +0 -2
  107. package/dist/esm/index.js +2 -1
  108. package/dist/esm/types/reaction.js +0 -6
  109. package/dist/esm/ufo/index.js +6 -0
  110. package/dist/types/components/ReactionDialog/ReactionsDialog.d.ts +3 -3
  111. package/dist/types/components/ReactionDialog/ReactionsDialogHeader.d.ts +15 -0
  112. package/dist/types/components/ReactionDialog/ReactionsList.d.ts +7 -7
  113. package/dist/types/components/ReactionDialog/styles.d.ts +0 -4
  114. package/dist/types/components/Reactions/Reactions.d.ts +10 -5
  115. package/dist/types/i18n/cs.d.ts +0 -2
  116. package/dist/types/i18n/da.d.ts +0 -2
  117. package/dist/types/i18n/de.d.ts +0 -2
  118. package/dist/types/i18n/en.d.ts +0 -1
  119. package/dist/types/i18n/en_GB.d.ts +0 -1
  120. package/dist/types/i18n/en_ZZ.d.ts +0 -1
  121. package/dist/types/i18n/es.d.ts +0 -2
  122. package/dist/types/i18n/fi.d.ts +0 -2
  123. package/dist/types/i18n/fr.d.ts +0 -2
  124. package/dist/types/i18n/hu.d.ts +0 -2
  125. package/dist/types/i18n/it.d.ts +0 -2
  126. package/dist/types/i18n/ja.d.ts +0 -2
  127. package/dist/types/i18n/ko.d.ts +0 -2
  128. package/dist/types/i18n/nb.d.ts +0 -2
  129. package/dist/types/i18n/nl.d.ts +0 -2
  130. package/dist/types/i18n/pl.d.ts +0 -2
  131. package/dist/types/i18n/pt_BR.d.ts +0 -2
  132. package/dist/types/i18n/ru.d.ts +0 -2
  133. package/dist/types/i18n/sv.d.ts +0 -2
  134. package/dist/types/i18n/th.d.ts +0 -2
  135. package/dist/types/i18n/tr.d.ts +0 -2
  136. package/dist/types/i18n/uk.d.ts +0 -2
  137. package/dist/types/i18n/vi.d.ts +0 -2
  138. package/dist/types/i18n/zh.d.ts +0 -2
  139. package/dist/types/i18n/zh_TW.d.ts +0 -2
  140. package/dist/types/index.d.ts +2 -1
  141. package/dist/types/types/index.d.ts +1 -1
  142. package/dist/types/types/reaction.d.ts +0 -7
  143. package/dist/types/ufo/index.d.ts +6 -1
  144. package/dist/types-ts4.5/components/ReactionDialog/ReactionsDialog.d.ts +3 -3
  145. package/dist/types-ts4.5/components/ReactionDialog/ReactionsDialogHeader.d.ts +15 -0
  146. package/dist/types-ts4.5/components/ReactionDialog/ReactionsList.d.ts +7 -7
  147. package/dist/types-ts4.5/components/ReactionDialog/styles.d.ts +0 -4
  148. package/dist/types-ts4.5/components/Reactions/Reactions.d.ts +10 -5
  149. package/dist/types-ts4.5/i18n/cs.d.ts +0 -2
  150. package/dist/types-ts4.5/i18n/da.d.ts +0 -2
  151. package/dist/types-ts4.5/i18n/de.d.ts +0 -2
  152. package/dist/types-ts4.5/i18n/en.d.ts +0 -1
  153. package/dist/types-ts4.5/i18n/en_GB.d.ts +0 -1
  154. package/dist/types-ts4.5/i18n/en_ZZ.d.ts +0 -1
  155. package/dist/types-ts4.5/i18n/es.d.ts +0 -2
  156. package/dist/types-ts4.5/i18n/fi.d.ts +0 -2
  157. package/dist/types-ts4.5/i18n/fr.d.ts +0 -2
  158. package/dist/types-ts4.5/i18n/hu.d.ts +0 -2
  159. package/dist/types-ts4.5/i18n/it.d.ts +0 -2
  160. package/dist/types-ts4.5/i18n/ja.d.ts +0 -2
  161. package/dist/types-ts4.5/i18n/ko.d.ts +0 -2
  162. package/dist/types-ts4.5/i18n/nb.d.ts +0 -2
  163. package/dist/types-ts4.5/i18n/nl.d.ts +0 -2
  164. package/dist/types-ts4.5/i18n/pl.d.ts +0 -2
  165. package/dist/types-ts4.5/i18n/pt_BR.d.ts +0 -2
  166. package/dist/types-ts4.5/i18n/ru.d.ts +0 -2
  167. package/dist/types-ts4.5/i18n/sv.d.ts +0 -2
  168. package/dist/types-ts4.5/i18n/th.d.ts +0 -2
  169. package/dist/types-ts4.5/i18n/tr.d.ts +0 -2
  170. package/dist/types-ts4.5/i18n/uk.d.ts +0 -2
  171. package/dist/types-ts4.5/i18n/vi.d.ts +0 -2
  172. package/dist/types-ts4.5/i18n/zh.d.ts +0 -2
  173. package/dist/types-ts4.5/i18n/zh_TW.d.ts +0 -2
  174. package/dist/types-ts4.5/index.d.ts +2 -1
  175. package/dist/types-ts4.5/types/index.d.ts +1 -1
  176. package/dist/types-ts4.5/types/reaction.d.ts +0 -7
  177. package/dist/types-ts4.5/ufo/index.d.ts +6 -1
  178. package/package.json +4 -1
package/CHANGELOG.md CHANGED
@@ -1,5 +1,23 @@
1
1
  # @atlaskit/reactions
2
2
 
3
+ ## 24.9.0
4
+
5
+ ### Minor Changes
6
+
7
+ - [#110049](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/pull-requests/110049)
8
+ [`27aa41be2259d`](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/commits/27aa41be2259d) -
9
+ Create new UFO experience for page navigation in Reactions Dialog along with a new prop that
10
+ accepts a page change handler. Also refactor code when opening dialog, and update tests
11
+
12
+ ## 24.8.0
13
+
14
+ ### Minor Changes
15
+
16
+ - [#111042](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/pull-requests/111042)
17
+ [`6e5ef11d2a9e6`](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/commits/6e5ef11d2a9e6) -
18
+ [ux] Refactor Reactions Dialog to have sticky header and change dialog rendering condition for
19
+ ReactionSummaryView
20
+
3
21
  ## 24.7.0
4
22
 
5
23
  ### Minor Changes
@@ -11,7 +11,7 @@ var _analyticsGasTypes = require("@atlaskit/analytics-gas-types");
11
11
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
12
12
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
13
13
  var packageName = "@atlaskit/reactions";
14
- var packageVersion = "24.7.0";
14
+ var packageVersion = "24.9.0";
15
15
  /**
16
16
  * TODO: move to utility package?
17
17
  * A random sampling function
@@ -17,6 +17,7 @@ var _Avatar = _interopRequireDefault(require("@atlaskit/avatar/Avatar"));
17
17
  var _spinner = _interopRequireDefault(require("@atlaskit/spinner"));
18
18
  var _tabs = require("@atlaskit/tabs");
19
19
  var _primitives = require("@atlaskit/primitives");
20
+ var _heading = _interopRequireDefault(require("@atlaskit/heading"));
20
21
  var _i18n = require("../../shared/i18n");
21
22
  var _styles = require("./styles");
22
23
  /**
@@ -27,11 +28,29 @@ var _styles = require("./styles");
27
28
  // eslint-disable-next-line @atlaskit/ui-styling-standard/use-compiled -- Ignored via go/DSP-18766
28
29
 
29
30
  var userDescriptionStyle = (0, _primitives.xcss)({
30
- marginLeft: 'space.200'
31
+ marginLeft: 'space.150'
31
32
  });
32
33
  var profileWrapperStyle = (0, _primitives.xcss)({
33
34
  marginLeft: 'space.0'
34
35
  });
36
+ var reactionViewStyle = (0, _primitives.xcss)({
37
+ marginTop: 'space.300',
38
+ minHeight: '300px',
39
+ minWidth: '550px'
40
+ });
41
+ var centerSpinnerStyle = (0, _primitives.xcss)({
42
+ display: 'flex',
43
+ justifyContent: 'center',
44
+ alignItems: 'center',
45
+ height: '100%',
46
+ marginTop: 'space.300'
47
+ });
48
+ var headerStyle = (0, _primitives.xcss)({
49
+ alignItems: 'flex-end'
50
+ });
51
+ var emojiSpacingStlye = (0, _primitives.xcss)({
52
+ marginLeft: 'space.100'
53
+ });
35
54
  var ReactionView = exports.ReactionView = function ReactionView(_ref) {
36
55
  var selectedEmojiId = _ref.selectedEmojiId,
37
56
  emojiProvider = _ref.emojiProvider,
@@ -39,11 +58,11 @@ var ReactionView = exports.ReactionView = function ReactionView(_ref) {
39
58
  ProfileCardWrapper = _ref.ProfileCardWrapper;
40
59
  var _useState = (0, _react.useState)(''),
41
60
  _useState2 = (0, _slicedToArray2.default)(_useState, 2),
42
- emojiShortName = _useState2[0],
43
- setEmojiShortName = _useState2[1];
61
+ emojiName = _useState2[0],
62
+ setEmojiName = _useState2[1];
44
63
  (0, _react.useEffect)(function () {
45
64
  (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {
46
- var provider, emoji;
65
+ var provider, emoji, capitalizedName;
47
66
  return _regenerator.default.wrap(function _callee$(_context) {
48
67
  while (1) switch (_context.prev = _context.next) {
49
68
  case 0:
@@ -58,8 +77,12 @@ var ReactionView = exports.ReactionView = function ReactionView(_ref) {
58
77
  });
59
78
  case 5:
60
79
  emoji = _context.sent;
61
- if (emoji !== null && emoji !== void 0 && emoji.shortName) {
62
- setEmojiShortName(emoji.shortName);
80
+ if (emoji !== null && emoji !== void 0 && emoji.name) {
81
+ // capitalize first letter of each string
82
+ capitalizedName = emoji.name.replace(/\b\w/g, function (char) {
83
+ return char.toUpperCase();
84
+ });
85
+ setEmojiName(capitalizedName);
63
86
  }
64
87
  case 7:
65
88
  case "end":
@@ -75,61 +98,63 @@ var ReactionView = exports.ReactionView = function ReactionView(_ref) {
75
98
  return a.displayName.localeCompare(b.displayName);
76
99
  })) || [];
77
100
  }, [reaction]);
78
- var tabPanelAttributes = (0, _tabs.useTabPanel)();
79
- return (
80
- // eslint-disable-next-line @atlaskit/design-system/consistent-css-prop-usage, @atlaskit/ui-styling-standard/no-imported-style-values -- Ignored via go/DSP-18766
81
- (0, _react2.jsx)("div", (0, _extends2.default)({
82
- css: _styles.reactionViewStyle
83
- }, tabPanelAttributes), (0, _react2.jsx)(_primitives.Text, {
84
- as: "p"
85
- }, (0, _react2.jsx)(_reactIntlNext.FormattedMessage, (0, _extends2.default)({}, _i18n.messages.peopleWhoReactedSubheading, {
86
- values: {
87
- emojiShortName: emojiShortName
88
- }
89
- })), (0, _react2.jsx)(_element.ResourcedEmoji, {
90
- emojiProvider: emojiProvider,
91
- emojiId: {
92
- id: selectedEmojiId,
93
- shortName: ''
94
- },
95
- fitToHeight: 24
96
- })), alphabeticalNames.length === 0 ?
97
- // eslint-disable-next-line @atlaskit/design-system/consistent-css-prop-usage, @atlaskit/ui-styling-standard/no-imported-style-values -- Ignored via go/DSP-18766
98
- (0, _react2.jsx)("div", {
99
- css: _styles.centerSpinner
100
- }, (0, _react2.jsx)(_spinner.default, {
101
- size: "large"
102
- })) :
103
- // eslint-disable-next-line @atlaskit/design-system/consistent-css-prop-usage, @atlaskit/ui-styling-standard/no-imported-style-values -- Ignored via go/DSP-18766
104
- (0, _react2.jsx)("ul", {
105
- css: _styles.userListStyle
106
- }, alphabeticalNames.map(function (user) {
107
- var _user$profilePicture;
108
- var profile = (_user$profilePicture = user.profilePicture) === null || _user$profilePicture === void 0 ? void 0 : _user$profilePicture.path;
109
- return (
110
- // eslint-disable-next-line @atlaskit/design-system/consistent-css-prop-usage, @atlaskit/ui-styling-standard/no-imported-style-values -- Ignored via go/DSP-18766
111
- (0, _react2.jsx)("li", {
112
- css: _styles.userStyle,
113
- key: user.id
114
- }, ProfileCardWrapper && user.accountId ? (0, _react2.jsx)(_primitives.Box, {
115
- xcss: profileWrapperStyle
116
- }, (0, _react2.jsx)(ProfileCardWrapper, {
117
- userId: user.accountId,
118
- isAnonymous: false,
119
- canViewProfile: true,
120
- position: "left-start"
121
- }, (0, _react2.jsx)(_Avatar.default, {
122
- size: "medium",
123
- src: profile,
124
- testId: "profile"
125
- }))) : (0, _react2.jsx)(_Avatar.default, {
126
- size: "medium",
127
- src: profile,
128
- testId: "profile"
129
- }), (0, _react2.jsx)(_primitives.Flex, {
130
- xcss: userDescriptionStyle
131
- }, (0, _react2.jsx)("div", null, user.displayName)))
132
- );
133
- })))
134
- );
101
+ return (0, _react2.jsx)(_tabs.TabPanel, null, (0, _react2.jsx)(_primitives.Flex, {
102
+ direction: "column",
103
+ xcss: reactionViewStyle
104
+ }, (0, _react2.jsx)(_primitives.Inline, {
105
+ xcss: headerStyle
106
+ }, (0, _react2.jsx)(_heading.default, {
107
+ size: "xsmall"
108
+ }, (0, _react2.jsx)(_reactIntlNext.FormattedMessage, (0, _extends2.default)({}, _i18n.messages.peopleWhoReactedSubheading, {
109
+ values: {
110
+ emojiShortName: emojiName
111
+ }
112
+ }))), (0, _react2.jsx)(_primitives.Box, {
113
+ as: "span",
114
+ xcss: emojiSpacingStlye
115
+ }, (0, _react2.jsx)(_element.ResourcedEmoji, {
116
+ emojiProvider: emojiProvider,
117
+ emojiId: {
118
+ id: selectedEmojiId,
119
+ shortName: ''
120
+ },
121
+ fitToHeight: 24
122
+ }))), alphabeticalNames.length === 0 ?
123
+ // eslint-disable-next-line @atlaskit/design-system/consistent-css-prop-usage, @atlaskit/ui-styling-standard/no-imported-style-values -- Ignored via go/DSP-18766
124
+ (0, _react2.jsx)(_primitives.Box, {
125
+ xcss: centerSpinnerStyle
126
+ }, (0, _react2.jsx)(_spinner.default, {
127
+ size: "large"
128
+ })) :
129
+ // eslint-disable-next-line @atlaskit/design-system/consistent-css-prop-usage, @atlaskit/ui-styling-standard/no-imported-style-values -- Ignored via go/DSP-18766
130
+ (0, _react2.jsx)("ul", {
131
+ css: _styles.userListStyle
132
+ }, alphabeticalNames.map(function (user) {
133
+ var _user$profilePicture;
134
+ var profile = (_user$profilePicture = user.profilePicture) === null || _user$profilePicture === void 0 ? void 0 : _user$profilePicture.path;
135
+ return (
136
+ // eslint-disable-next-line @atlaskit/design-system/consistent-css-prop-usage, @atlaskit/ui-styling-standard/no-imported-style-values -- Ignored via go/DSP-18766
137
+ (0, _react2.jsx)("li", {
138
+ css: _styles.userStyle,
139
+ key: user.id
140
+ }, ProfileCardWrapper && user.accountId ? (0, _react2.jsx)(_primitives.Box, {
141
+ xcss: profileWrapperStyle
142
+ }, (0, _react2.jsx)(ProfileCardWrapper, {
143
+ userId: user.accountId,
144
+ isAnonymous: false,
145
+ canViewProfile: true,
146
+ position: "left-start"
147
+ }, (0, _react2.jsx)(_Avatar.default, {
148
+ size: "medium",
149
+ src: profile,
150
+ testId: "profile"
151
+ }))) : (0, _react2.jsx)(_Avatar.default, {
152
+ size: "medium",
153
+ src: profile,
154
+ testId: "profile"
155
+ }), (0, _react2.jsx)(_primitives.Flex, {
156
+ xcss: userDescriptionStyle
157
+ }, (0, _react2.jsx)("div", null, user.displayName)))
158
+ );
159
+ }))));
135
160
  };
@@ -6,22 +6,18 @@ Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
8
  exports.ReactionsDialog = exports.RENDER_MODAL_TESTID = void 0;
9
- var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
10
9
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
11
- var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
12
10
  var _react = require("react");
13
11
  var _reactIntlNext = require("react-intl-next");
14
12
  var _react2 = require("@emotion/react");
13
+ var _tabs = _interopRequireDefault(require("@atlaskit/tabs"));
14
+ var _new = _interopRequireDefault(require("@atlaskit/button/new"));
15
15
  var _primitives = require("@atlaskit/primitives");
16
- var _new = _interopRequireWildcard(require("@atlaskit/button/new"));
17
- var _heading = _interopRequireDefault(require("@atlaskit/heading"));
18
16
  var _modalDialog = _interopRequireWildcard(require("@atlaskit/modal-dialog"));
19
- var _tooltip = _interopRequireDefault(require("@atlaskit/tooltip"));
20
- var _chevronLeft = _interopRequireDefault(require("@atlaskit/icon/utility/chevron-left"));
21
- var _chevronRight = _interopRequireDefault(require("@atlaskit/icon/utility/chevron-right"));
22
17
  var _constants = require("../../shared/constants");
23
18
  var _i18n = require("../../shared/i18n");
24
19
  var _ReactionsList = require("./ReactionsList");
20
+ var _ReactionsDialogHeader = require("./ReactionsDialogHeader");
25
21
  var _styles = require("./styles");
26
22
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
27
23
  function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
@@ -32,12 +28,6 @@ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e;
32
28
 
33
29
  // eslint-disable-next-line @atlaskit/ui-styling-standard/use-compiled -- Ignored via go/DSP-18766
34
30
 
35
- var fullWidthStyle = (0, _primitives.xcss)({
36
- width: '100%',
37
- padding: 'space.300',
38
- paddingBlockEnd: 'space.400'
39
- });
40
-
41
31
  /**
42
32
  * Test id for the Reactions modal dialog
43
33
  */
@@ -49,70 +39,22 @@ var getDimensions = function getDimensions(container) {
49
39
  scrollLeft: container === null || container === void 0 ? void 0 : container.scrollLeft
50
40
  };
51
41
  };
52
- var ReactionsDialogModalHeader = function ReactionsDialogModalHeader(_ref) {
53
- var totalReactionsCount = _ref.totalReactionsCount,
54
- handlePreviousPage = _ref.handlePreviousPage,
55
- handleNextPage = _ref.handleNextPage,
56
- currentPage = _ref.currentPage,
57
- maxPages = _ref.maxPages;
58
- var _useModal = (0, _modalDialog.useModal)(),
59
- titleId = _useModal.titleId;
60
- var intl = (0, _reactIntlNext.useIntl)();
61
- var isSinglePage = maxPages === 1;
62
- var isOnFirstPage = currentPage === 1;
63
- var isOnLastPage = currentPage === maxPages;
64
- return (0, _react2.jsx)(_primitives.Flex, {
65
- direction: "row",
66
- justifyContent: "space-between",
67
- alignItems: "center",
68
- xcss: fullWidthStyle
69
- }, (0, _react2.jsx)(_heading.default, {
70
- size: "medium",
71
- id: titleId
72
- }, intl.formatMessage(_i18n.messages.reactionsCount, {
73
- count: totalReactionsCount
74
- })), !isSinglePage && (0, _react2.jsx)(_primitives.Flex, {
75
- alignItems: "center",
76
- gap: "space.100"
77
- }, (0, _react2.jsx)(_tooltip.default, {
78
- content: intl.formatMessage(_i18n.messages.leftNavigateLabel),
79
- canAppear: function canAppear() {
80
- return !isOnFirstPage;
81
- }
82
- }, function (tooltipProps) {
83
- return (0, _react2.jsx)(_new.IconButton, (0, _extends2.default)({}, tooltipProps, {
84
- isDisabled: isOnFirstPage,
85
- onClick: handlePreviousPage,
86
- icon: _chevronLeft.default,
87
- label: intl.formatMessage(_i18n.messages.leftNavigateLabel)
88
- }));
89
- }), (0, _react2.jsx)(_tooltip.default, {
90
- content: intl.formatMessage(_i18n.messages.rightNavigateLabel),
91
- canAppear: function canAppear() {
92
- return !isOnLastPage;
93
- }
94
- }, function (tooltipProps) {
95
- return (0, _react2.jsx)(_new.IconButton, (0, _extends2.default)({}, tooltipProps, {
96
- onClick: handleNextPage,
97
- isDisabled: isOnLastPage,
98
- icon: _chevronRight.default,
99
- label: intl.formatMessage(_i18n.messages.rightNavigateLabel)
100
- }));
101
- })));
102
- };
103
- var ReactionsDialog = exports.ReactionsDialog = function ReactionsDialog(_ref2) {
42
+ var footerStyle = (0, _primitives.xcss)({
43
+ borderTop: "2px solid ".concat("var(--ds-border, rgba(11, 18, 14, 0.14))")
44
+ });
45
+ var ReactionsDialog = exports.ReactionsDialog = function ReactionsDialog(_ref) {
104
46
  var _currentReactions$;
105
- var _ref2$reactions = _ref2.reactions,
106
- reactions = _ref2$reactions === void 0 ? [] : _ref2$reactions,
107
- _ref2$handleCloseReac = _ref2.handleCloseReactionsDialog,
108
- handleCloseReactionsDialog = _ref2$handleCloseReac === void 0 ? function () {} : _ref2$handleCloseReac,
109
- emojiProvider = _ref2.emojiProvider,
110
- selectedEmojiId = _ref2.selectedEmojiId,
111
- _ref2$handleSelectRea = _ref2.handleSelectReaction,
112
- handleSelectReaction = _ref2$handleSelectRea === void 0 ? function () {} : _ref2$handleSelectRea,
113
- _ref2$handlePaginatio = _ref2.handlePaginationChange,
114
- handlePaginationChange = _ref2$handlePaginatio === void 0 ? function () {} : _ref2$handlePaginatio,
115
- ProfileCardWrapper = _ref2.ProfileCardWrapper;
47
+ var _ref$reactions = _ref.reactions,
48
+ reactions = _ref$reactions === void 0 ? [] : _ref$reactions,
49
+ _ref$handleCloseReact = _ref.handleCloseReactionsDialog,
50
+ handleCloseReactionsDialog = _ref$handleCloseReact === void 0 ? function () {} : _ref$handleCloseReact,
51
+ emojiProvider = _ref.emojiProvider,
52
+ selectedEmojiId = _ref.selectedEmojiId,
53
+ _ref$handleSelectReac = _ref.handleSelectReaction,
54
+ handleSelectReaction = _ref$handleSelectReac === void 0 ? function () {} : _ref$handleSelectReac,
55
+ _ref$handlePagination = _ref.handlePaginationChange,
56
+ handlePaginationChange = _ref$handlePagination === void 0 ? function () {} : _ref$handlePagination,
57
+ ProfileCardWrapper = _ref.ProfileCardWrapper;
116
58
  var _useState = (0, _react.useState)(),
117
59
  _useState2 = (0, _slicedToArray2.default)(_useState, 2),
118
60
  elementToScroll = _useState2[0],
@@ -121,6 +63,16 @@ var ReactionsDialog = exports.ReactionsDialog = function ReactionsDialog(_ref2)
121
63
  _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
122
64
  reactionsContainerRef = _useState4[0],
123
65
  setReactionsContainerRef = _useState4[1];
66
+
67
+ // prevents accidental triggering of handlePaginationChange on initial load
68
+ var _useState5 = (0, _react.useState)(false),
69
+ _useState6 = (0, _slicedToArray2.default)(_useState5, 2),
70
+ hasNavigatedPages = _useState6[0],
71
+ setHasNavigatedPages = _useState6[1];
72
+ var _useState7 = (0, _react.useState)(1),
73
+ _useState8 = (0, _slicedToArray2.default)(_useState7, 2),
74
+ currentPage = _useState8[0],
75
+ setCurrentPage = _useState8[1];
124
76
  var reactionElementsRef = (0, _react.useRef)();
125
77
  var observerRef = (0, _react.useRef)();
126
78
  var intl = (0, _reactIntlNext.useIntl)();
@@ -130,38 +82,31 @@ var ReactionsDialog = exports.ReactionsDialog = function ReactionsDialog(_ref2)
130
82
  return accum += current === null || current === void 0 ? void 0 : current.count;
131
83
  }, 0);
132
84
  }, [reactions]);
133
- var sortedReactions = (0, _react.useMemo)(function () {
134
- return (0, _toConsumableArray2.default)(reactions).sort(function (a, b) {
135
- return (b === null || b === void 0 ? void 0 : b.count) - (a === null || a === void 0 ? void 0 : a.count);
136
- });
137
- }, [reactions]);
138
85
  var maxPages = Math.max(1, Math.ceil(reactions.length / _constants.NUMBER_OF_REACTIONS_TO_DISPLAY));
139
- var _useState5 = (0, _react.useState)(1),
140
- _useState6 = (0, _slicedToArray2.default)(_useState5, 2),
141
- currentPage = _useState6[0],
142
- setCurrentPage = _useState6[1];
143
86
  var currentReactions = (0, _react.useMemo)(function () {
144
87
  var start = (currentPage - 1) * _constants.NUMBER_OF_REACTIONS_TO_DISPLAY;
145
88
  var end = start + _constants.NUMBER_OF_REACTIONS_TO_DISPLAY;
146
- return sortedReactions.slice(start, end);
147
- }, [sortedReactions, currentPage]);
89
+ return reactions.slice(start, end);
90
+ }, [reactions, currentPage]);
148
91
  var handleNextPage = function handleNextPage() {
149
92
  setCurrentPage(function (prevPage) {
150
93
  return Math.min(prevPage + 1, maxPages);
151
94
  });
95
+ setHasNavigatedPages(true);
152
96
  };
153
97
  var handlePreviousPage = function handlePreviousPage() {
154
98
  setCurrentPage(function (prevPage) {
155
99
  return Math.max(prevPage - 1, 1);
156
100
  });
101
+ setHasNavigatedPages(true);
157
102
  };
158
103
  var firstEmojiOnPage = (_currentReactions$ = currentReactions[0]) === null || _currentReactions$ === void 0 ? void 0 : _currentReactions$.emojiId;
159
104
  (0, _react.useEffect)(function () {
160
105
  // trigger the handler with the first emoji when the page changes
161
- if (firstEmojiOnPage) {
162
- handlePaginationChange(firstEmojiOnPage);
106
+ if (hasNavigatedPages && firstEmojiOnPage) {
107
+ handlePaginationChange(firstEmojiOnPage, currentPage, maxPages);
163
108
  }
164
- }, [currentPage, firstEmojiOnPage, handlePaginationChange]);
109
+ }, [hasNavigatedPages, currentPage, maxPages, firstEmojiOnPage, handlePaginationChange]);
165
110
 
166
111
  /* set Reactions Border Width , 8 Number of reactions to display*/
167
112
  var reactionsBorderWidth = (0, _react.useMemo)(function () {
@@ -233,6 +178,16 @@ var ReactionsDialog = exports.ReactionsDialog = function ReactionsDialog(_ref2)
233
178
  }
234
179
  // eslint-disable-next-line react-hooks/exhaustive-deps
235
180
  }, []);
181
+ var selectedIndex = currentReactions.findIndex(function (reaction) {
182
+ return reaction.emojiId === selectedEmojiId;
183
+ });
184
+ var onTabChange = (0, _react.useCallback)(function (index) {
185
+ if (index === selectedIndex) {
186
+ return;
187
+ }
188
+ var emojiId = currentReactions[index].emojiId;
189
+ handleSelectReaction(emojiId);
190
+ }, [selectedIndex, currentReactions, handleSelectReaction]);
236
191
  return (0, _react2.jsx)(_modalDialog.default, {
237
192
  onClose: handleCloseReactionsDialog,
238
193
  height: 600,
@@ -240,23 +195,31 @@ var ReactionsDialog = exports.ReactionsDialog = function ReactionsDialog(_ref2)
240
195
  // eslint-disable-next-line jsx-a11y/no-autofocus
241
196
  ,
242
197
  autoFocus: false
243
- }, (0, _react2.jsx)(ReactionsDialogModalHeader, {
198
+ }, (0, _react2.jsx)(_tabs.default, {
199
+ id: "reactions-dialog-tabs",
200
+ onChange: onTabChange,
201
+ selected: selectedIndex
202
+ }, (0, _react2.jsx)(_ReactionsDialogHeader.ReactionsDialogHeader, {
244
203
  totalReactionsCount: totalReactionsCount,
245
204
  maxPages: maxPages,
246
205
  handlePreviousPage: handlePreviousPage,
247
206
  handleNextPage: handleNextPage,
248
- currentPage: currentPage
207
+ currentPage: currentPage,
208
+ emojiProvider: emojiProvider,
209
+ selectedEmojiId: selectedEmojiId,
210
+ currentReactions: currentReactions
249
211
  }), (0, _react2.jsx)(_modalDialog.ModalBody, null, (0, _react2.jsx)("div", {
250
212
  css: (0, _styles.containerStyle)(reactionsBorderWidth),
251
213
  ref: setRef
252
214
  }, (0, _react2.jsx)(_ReactionsList.ReactionsList, {
253
- initialEmojiId: selectedEmojiId,
215
+ selectedEmojiId: selectedEmojiId,
254
216
  reactions: currentReactions,
255
217
  emojiProvider: emojiProvider,
256
- onReactionChanged: handleSelectReaction,
257
218
  ProfileCardWrapper: ProfileCardWrapper
258
- }))), (0, _react2.jsx)(_modalDialog.ModalFooter, null, (0, _react2.jsx)(_new.default, {
219
+ })))), (0, _react2.jsx)(_primitives.Box, {
220
+ xcss: footerStyle
221
+ }, (0, _react2.jsx)(_modalDialog.ModalFooter, null, (0, _react2.jsx)(_new.default, {
259
222
  appearance: "subtle",
260
223
  onClick: handleCloseReactionsDialog
261
- }, intl.formatMessage(_i18n.messages.closeReactionsDialog))));
224
+ }, intl.formatMessage(_i18n.messages.closeReactionsDialog)))));
262
225
  };