@atlaskit/reactions 24.7.0 → 24.8.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 (29) hide show
  1. package/CHANGELOG.md +9 -0
  2. package/dist/cjs/analytics/index.js +1 -1
  3. package/dist/cjs/components/ReactionDialog/ReactionView.js +73 -60
  4. package/dist/cjs/components/ReactionDialog/ReactionsDialog.js +42 -81
  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 +3 -75
  8. package/dist/cjs/components/Reactions/Reactions.js +5 -2
  9. package/dist/es2019/analytics/index.js +1 -1
  10. package/dist/es2019/components/ReactionDialog/ReactionView.js +75 -62
  11. package/dist/es2019/components/ReactionDialog/ReactionsDialog.js +30 -64
  12. package/dist/es2019/components/ReactionDialog/ReactionsDialogHeader.js +188 -0
  13. package/dist/es2019/components/ReactionDialog/ReactionsList.js +12 -91
  14. package/dist/es2019/components/ReactionDialog/styles.js +3 -71
  15. package/dist/es2019/components/Reactions/Reactions.js +5 -2
  16. package/dist/esm/analytics/index.js +1 -1
  17. package/dist/esm/components/ReactionDialog/ReactionView.js +76 -63
  18. package/dist/esm/components/ReactionDialog/ReactionsDialog.js +44 -82
  19. package/dist/esm/components/ReactionDialog/ReactionsDialogHeader.js +196 -0
  20. package/dist/esm/components/ReactionDialog/ReactionsList.js +11 -99
  21. package/dist/esm/components/ReactionDialog/styles.js +3 -75
  22. package/dist/esm/components/Reactions/Reactions.js +5 -2
  23. package/dist/types/components/ReactionDialog/ReactionsDialogHeader.d.ts +15 -0
  24. package/dist/types/components/ReactionDialog/ReactionsList.d.ts +7 -7
  25. package/dist/types/components/ReactionDialog/styles.d.ts +0 -3
  26. package/dist/types-ts4.5/components/ReactionDialog/ReactionsDialogHeader.d.ts +15 -0
  27. package/dist/types-ts4.5/components/ReactionDialog/ReactionsList.d.ts +7 -7
  28. package/dist/types-ts4.5/components/ReactionDialog/styles.d.ts +0 -3
  29. package/package.json +4 -1
package/CHANGELOG.md CHANGED
@@ -1,5 +1,14 @@
1
1
  # @atlaskit/reactions
2
2
 
3
+ ## 24.8.0
4
+
5
+ ### Minor Changes
6
+
7
+ - [#111042](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/pull-requests/111042)
8
+ [`6e5ef11d2a9e6`](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/commits/6e5ef11d2a9e6) -
9
+ [ux] Refactor Reactions Dialog to have sticky header and change dialog rendering condition for
10
+ ReactionSummaryView
11
+
3
12
  ## 24.7.0
4
13
 
5
14
  ### 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.8.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,20 @@ 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
+ });
39
+ var headerStyle = (0, _primitives.xcss)({
40
+ alignItems: 'flex-end'
41
+ });
42
+ var emojiSpacingStlye = (0, _primitives.xcss)({
43
+ marginLeft: 'space.100'
44
+ });
35
45
  var ReactionView = exports.ReactionView = function ReactionView(_ref) {
36
46
  var selectedEmojiId = _ref.selectedEmojiId,
37
47
  emojiProvider = _ref.emojiProvider,
@@ -43,7 +53,7 @@ var ReactionView = exports.ReactionView = function ReactionView(_ref) {
43
53
  setEmojiShortName = _useState2[1];
44
54
  (0, _react.useEffect)(function () {
45
55
  (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {
46
- var provider, emoji;
56
+ var provider, emoji, shortNameWithoutColons;
47
57
  return _regenerator.default.wrap(function _callee$(_context) {
48
58
  while (1) switch (_context.prev = _context.next) {
49
59
  case 0:
@@ -59,7 +69,8 @@ var ReactionView = exports.ReactionView = function ReactionView(_ref) {
59
69
  case 5:
60
70
  emoji = _context.sent;
61
71
  if (emoji !== null && emoji !== void 0 && emoji.shortName) {
62
- setEmojiShortName(emoji.shortName);
72
+ shortNameWithoutColons = emoji.shortName.replace(/:/g, '');
73
+ setEmojiShortName(shortNameWithoutColons);
63
74
  }
64
75
  case 7:
65
76
  case "end":
@@ -75,61 +86,63 @@ var ReactionView = exports.ReactionView = function ReactionView(_ref) {
75
86
  return a.displayName.localeCompare(b.displayName);
76
87
  })) || [];
77
88
  }, [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
- );
89
+ return (0, _react2.jsx)(_tabs.TabPanel, null, (0, _react2.jsx)(_primitives.Flex, {
90
+ direction: "column",
91
+ xcss: reactionViewStyle
92
+ }, (0, _react2.jsx)(_primitives.Inline, {
93
+ xcss: headerStyle
94
+ }, (0, _react2.jsx)(_heading.default, {
95
+ size: "xsmall"
96
+ }, (0, _react2.jsx)(_reactIntlNext.FormattedMessage, (0, _extends2.default)({}, _i18n.messages.peopleWhoReactedSubheading, {
97
+ values: {
98
+ emojiShortName: emojiShortName
99
+ }
100
+ }))), (0, _react2.jsx)(_primitives.Box, {
101
+ as: "span",
102
+ xcss: emojiSpacingStlye
103
+ }, (0, _react2.jsx)(_element.ResourcedEmoji, {
104
+ emojiProvider: emojiProvider,
105
+ emojiId: {
106
+ id: selectedEmojiId,
107
+ shortName: ''
108
+ },
109
+ fitToHeight: 24
110
+ }))), alphabeticalNames.length === 0 ?
111
+ // eslint-disable-next-line @atlaskit/design-system/consistent-css-prop-usage, @atlaskit/ui-styling-standard/no-imported-style-values -- Ignored via go/DSP-18766
112
+ (0, _react2.jsx)("div", {
113
+ css: _styles.centerSpinner
114
+ }, (0, _react2.jsx)(_spinner.default, {
115
+ size: "large"
116
+ })) :
117
+ // eslint-disable-next-line @atlaskit/design-system/consistent-css-prop-usage, @atlaskit/ui-styling-standard/no-imported-style-values -- Ignored via go/DSP-18766
118
+ (0, _react2.jsx)("ul", {
119
+ css: _styles.userListStyle
120
+ }, alphabeticalNames.map(function (user) {
121
+ var _user$profilePicture;
122
+ var profile = (_user$profilePicture = user.profilePicture) === null || _user$profilePicture === void 0 ? void 0 : _user$profilePicture.path;
123
+ return (
124
+ // eslint-disable-next-line @atlaskit/design-system/consistent-css-prop-usage, @atlaskit/ui-styling-standard/no-imported-style-values -- Ignored via go/DSP-18766
125
+ (0, _react2.jsx)("li", {
126
+ css: _styles.userStyle,
127
+ key: user.id
128
+ }, ProfileCardWrapper && user.accountId ? (0, _react2.jsx)(_primitives.Box, {
129
+ xcss: profileWrapperStyle
130
+ }, (0, _react2.jsx)(ProfileCardWrapper, {
131
+ userId: user.accountId,
132
+ isAnonymous: false,
133
+ canViewProfile: true,
134
+ position: "left-start"
135
+ }, (0, _react2.jsx)(_Avatar.default, {
136
+ size: "medium",
137
+ src: profile,
138
+ testId: "profile"
139
+ }))) : (0, _react2.jsx)(_Avatar.default, {
140
+ size: "medium",
141
+ src: profile,
142
+ testId: "profile"
143
+ }), (0, _react2.jsx)(_primitives.Flex, {
144
+ xcss: userDescriptionStyle
145
+ }, (0, _react2.jsx)("div", null, user.displayName)))
146
+ );
147
+ }))));
135
148
  };
@@ -8,20 +8,17 @@ Object.defineProperty(exports, "__esModule", {
8
8
  exports.ReactionsDialog = exports.RENDER_MODAL_TESTID = void 0;
9
9
  var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
10
10
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
11
- var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
12
11
  var _react = require("react");
13
12
  var _reactIntlNext = require("react-intl-next");
14
13
  var _react2 = require("@emotion/react");
14
+ var _tabs = _interopRequireDefault(require("@atlaskit/tabs"));
15
+ var _new = _interopRequireDefault(require("@atlaskit/button/new"));
15
16
  var _primitives = require("@atlaskit/primitives");
16
- var _new = _interopRequireWildcard(require("@atlaskit/button/new"));
17
- var _heading = _interopRequireDefault(require("@atlaskit/heading"));
18
17
  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
18
  var _constants = require("../../shared/constants");
23
19
  var _i18n = require("../../shared/i18n");
24
20
  var _ReactionsList = require("./ReactionsList");
21
+ var _ReactionsDialogHeader = require("./ReactionsDialogHeader");
25
22
  var _styles = require("./styles");
26
23
  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
24
  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 +29,6 @@ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e;
32
29
 
33
30
  // eslint-disable-next-line @atlaskit/ui-styling-standard/use-compiled -- Ignored via go/DSP-18766
34
31
 
35
- var fullWidthStyle = (0, _primitives.xcss)({
36
- width: '100%',
37
- padding: 'space.300',
38
- paddingBlockEnd: 'space.400'
39
- });
40
-
41
32
  /**
42
33
  * Test id for the Reactions modal dialog
43
34
  */
@@ -49,70 +40,22 @@ var getDimensions = function getDimensions(container) {
49
40
  scrollLeft: container === null || container === void 0 ? void 0 : container.scrollLeft
50
41
  };
51
42
  };
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) {
43
+ var footerStyle = (0, _primitives.xcss)({
44
+ borderTop: "2px solid ".concat("var(--ds-border, rgba(11, 18, 14, 0.14))")
45
+ });
46
+ var ReactionsDialog = exports.ReactionsDialog = function ReactionsDialog(_ref) {
104
47
  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;
48
+ var _ref$reactions = _ref.reactions,
49
+ reactions = _ref$reactions === void 0 ? [] : _ref$reactions,
50
+ _ref$handleCloseReact = _ref.handleCloseReactionsDialog,
51
+ handleCloseReactionsDialog = _ref$handleCloseReact === void 0 ? function () {} : _ref$handleCloseReact,
52
+ emojiProvider = _ref.emojiProvider,
53
+ selectedEmojiId = _ref.selectedEmojiId,
54
+ _ref$handleSelectReac = _ref.handleSelectReaction,
55
+ handleSelectReaction = _ref$handleSelectReac === void 0 ? function () {} : _ref$handleSelectReac,
56
+ _ref$handlePagination = _ref.handlePaginationChange,
57
+ handlePaginationChange = _ref$handlePagination === void 0 ? function () {} : _ref$handlePagination,
58
+ ProfileCardWrapper = _ref.ProfileCardWrapper;
116
59
  var _useState = (0, _react.useState)(),
117
60
  _useState2 = (0, _slicedToArray2.default)(_useState, 2),
118
61
  elementToScroll = _useState2[0],
@@ -233,6 +176,16 @@ var ReactionsDialog = exports.ReactionsDialog = function ReactionsDialog(_ref2)
233
176
  }
234
177
  // eslint-disable-next-line react-hooks/exhaustive-deps
235
178
  }, []);
179
+ var selectedIndex = currentReactions.findIndex(function (reaction) {
180
+ return reaction.emojiId === selectedEmojiId;
181
+ });
182
+ var onTabChange = (0, _react.useCallback)(function (index, analyticsEvent) {
183
+ if (index === selectedIndex) {
184
+ return;
185
+ }
186
+ var emojiId = currentReactions[index].emojiId;
187
+ handleSelectReaction(emojiId, analyticsEvent);
188
+ }, [selectedIndex, currentReactions, handleSelectReaction]);
236
189
  return (0, _react2.jsx)(_modalDialog.default, {
237
190
  onClose: handleCloseReactionsDialog,
238
191
  height: 600,
@@ -240,23 +193,31 @@ var ReactionsDialog = exports.ReactionsDialog = function ReactionsDialog(_ref2)
240
193
  // eslint-disable-next-line jsx-a11y/no-autofocus
241
194
  ,
242
195
  autoFocus: false
243
- }, (0, _react2.jsx)(ReactionsDialogModalHeader, {
196
+ }, (0, _react2.jsx)(_tabs.default, {
197
+ id: "reactions-dialog-tabs",
198
+ onChange: onTabChange,
199
+ selected: selectedIndex
200
+ }, (0, _react2.jsx)(_ReactionsDialogHeader.ReactionsDialogHeader, {
244
201
  totalReactionsCount: totalReactionsCount,
245
202
  maxPages: maxPages,
246
203
  handlePreviousPage: handlePreviousPage,
247
204
  handleNextPage: handleNextPage,
248
- currentPage: currentPage
205
+ currentPage: currentPage,
206
+ emojiProvider: emojiProvider,
207
+ selectedEmojiId: selectedEmojiId,
208
+ currentReactions: currentReactions
249
209
  }), (0, _react2.jsx)(_modalDialog.ModalBody, null, (0, _react2.jsx)("div", {
250
210
  css: (0, _styles.containerStyle)(reactionsBorderWidth),
251
211
  ref: setRef
252
212
  }, (0, _react2.jsx)(_ReactionsList.ReactionsList, {
253
- initialEmojiId: selectedEmojiId,
213
+ selectedEmojiId: selectedEmojiId,
254
214
  reactions: currentReactions,
255
215
  emojiProvider: emojiProvider,
256
- onReactionChanged: handleSelectReaction,
257
216
  ProfileCardWrapper: ProfileCardWrapper
258
- }))), (0, _react2.jsx)(_modalDialog.ModalFooter, null, (0, _react2.jsx)(_new.default, {
217
+ })))), (0, _react2.jsx)(_primitives.Box, {
218
+ xcss: footerStyle
219
+ }, (0, _react2.jsx)(_modalDialog.ModalFooter, null, (0, _react2.jsx)(_new.default, {
259
220
  appearance: "subtle",
260
221
  onClick: handleCloseReactionsDialog
261
- }, intl.formatMessage(_i18n.messages.closeReactionsDialog))));
222
+ }, intl.formatMessage(_i18n.messages.closeReactionsDialog)))));
262
223
  };
@@ -0,0 +1,205 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.ReactionsDialogHeader = void 0;
8
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
9
+ var _reactIntlNext = require("react-intl-next");
10
+ var _react = require("@emotion/react");
11
+ var _tokens = require("@atlaskit/tokens");
12
+ var _tabs = require("@atlaskit/tabs");
13
+ var _primitives = require("@atlaskit/primitives");
14
+ var _new = require("@atlaskit/button/new");
15
+ var _heading = _interopRequireDefault(require("@atlaskit/heading"));
16
+ var _modalDialog = require("@atlaskit/modal-dialog");
17
+ var _tooltip = _interopRequireDefault(require("@atlaskit/tooltip"));
18
+ var _chevronLeft = _interopRequireDefault(require("@atlaskit/icon/utility/chevron-left"));
19
+ var _chevronRight = _interopRequireDefault(require("@atlaskit/icon/utility/chevron-right"));
20
+ var _element = require("@atlaskit/emoji/element");
21
+ var _i18n = require("../../shared/i18n");
22
+ var _Counter = require("../Counter");
23
+ /**
24
+ * @jsxRuntime classic
25
+ * @jsx jsx
26
+ */
27
+
28
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/use-compiled -- Ignored via go/DSP-18766
29
+
30
+ var REACTIONS_CONTAINER_WIDTH = 56;
31
+ var REACTION_CONTAINER_HEIGHT = 40;
32
+ var containerEdgeAngle = {
33
+ rightEdge: 270,
34
+ leftEdge: 90
35
+ };
36
+ var fadedCss = function fadedCss(edge, theme) {
37
+ return (0, _react.css)({
38
+ content: '""',
39
+ position: 'absolute',
40
+ left: '0px',
41
+ top: '0px',
42
+ width: "".concat(REACTIONS_CONTAINER_WIDTH, "px"),
43
+ height: "".concat(REACTION_CONTAINER_HEIGHT, "px"),
44
+ zIndex: 0,
45
+ background:
46
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/no-unsafe-values -- Ignored via go/DSP-18766
47
+ theme === 'dark' ? "linear-gradient(".concat(containerEdgeAngle[edge], "deg, rgba(34, 39, 43, 0.95) 40.23%, rgba(34, 39, 43, 0.55) 58.33%, rgba(34, 39, 43, 0) 77.49%)") : "linear-gradient(".concat(containerEdgeAngle[edge], "deg, rgba(255, 255, 255, 0.95) 40.23%, rgba(255, 255, 255, 0.55) 58.33%, rgba(255, 255, 255, 0) 77.49%)")
48
+ });
49
+ };
50
+ var customTabListStyles = (0, _react.css)({
51
+ overflow: 'auto',
52
+ display: 'flex',
53
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/no-nested-selectors -- Ignored via go/DSP-18766
54
+ 'div[role=tablist]': {
55
+ flexGrow: 1,
56
+ // paddingInline exists to maintain styling prior to @atlaskit/tabs update that removed baked in horizontal padding
57
+ paddingInline: "var(--ds-space-100, 8px)"
58
+ }
59
+ });
60
+ var customTabWrapper = function customTabWrapper(theme) {
61
+ return (0, _react.css)({
62
+ flexShrink: 0,
63
+ display: 'flex',
64
+ flexDirection: 'column',
65
+ textAlign: 'center',
66
+ alignItems: 'center',
67
+ justifyContent: 'center',
68
+ minWidth: "".concat(REACTIONS_CONTAINER_WIDTH, "px"),
69
+ boxSizing: 'border-box',
70
+ position: 'relative',
71
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/no-nested-selectors -- Ignored via go/DSP-18766
72
+ '> div': {
73
+ minWidth: "".concat(REACTIONS_CONTAINER_WIDTH, "px"),
74
+ minHeight: "".concat(REACTION_CONTAINER_HEIGHT, "px"),
75
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/no-important-styles -- Ignored via go/DSP-18766
76
+ padding: '0px !important',
77
+ alignItems: 'center',
78
+ justifyContent: 'center'
79
+ },
80
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/no-nested-selectors -- Ignored via go/DSP-18766
81
+ '& > span': {
82
+ minHeight: '16px',
83
+ minWidth: '16px'
84
+ },
85
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/no-unsafe-values -- Ignored via go/DSP-18766
86
+ '&.disabled:after': fadedCss('rightEdge', theme),
87
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/no-unsafe-values -- Ignored via go/DSP-18766
88
+ '&.disabled + &.disabled:after': fadedCss('leftEdge', theme)
89
+ });
90
+ };
91
+ var firstElement = (0, _react.css)({
92
+ paddingLeft: "var(--ds-space-200, 16px)"
93
+ });
94
+ var fullWidthStyle = (0, _primitives.xcss)({
95
+ width: '100%',
96
+ padding: 'space.300',
97
+ paddingBlockEnd: 'space.400'
98
+ });
99
+ var emojiStyles = (0, _primitives.xcss)({
100
+ transformOrigin: 'center center 0',
101
+ paddingInlineStart: 'space.100',
102
+ paddingBlock: 'space.050',
103
+ paddingInlineEnd: 'space.050'
104
+ });
105
+ var counterStyle = (0, _primitives.xcss)({
106
+ marginTop: 'space.025'
107
+ });
108
+ var ReactionsTabs = function ReactionsTabs(_ref) {
109
+ var currentReactions = _ref.currentReactions,
110
+ emojiProvider = _ref.emojiProvider,
111
+ selectedEmojiId = _ref.selectedEmojiId;
112
+ var _useThemeObserver = (0, _tokens.useThemeObserver)(),
113
+ colorMode = _useThemeObserver.colorMode;
114
+ return (0, _react.jsx)("div", {
115
+ css: customTabListStyles,
116
+ id: "reactions-dialog-tabs-list"
117
+ }, (0, _react.jsx)(_tabs.TabList, null, currentReactions.map(function (reaction, index) {
118
+ var emojiId = {
119
+ id: reaction.emojiId,
120
+ shortName: ''
121
+ };
122
+ return (0, _react.jsx)("div", {
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
+ css: [customTabWrapper(colorMode), index === 0 ? firstElement : []]
125
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/no-classname-prop -- Ignored via go/DSP-18766
126
+ ,
127
+ className: "reaction-elements",
128
+ key: reaction.emojiId,
129
+ "data-testid": emojiId === null || emojiId === void 0 ? void 0 : emojiId.id
130
+ }, (0, _react.jsx)(_tabs.Tab, null, (0, _react.jsx)(_primitives.Flex, {
131
+ justifyContent: "center",
132
+ alignItems: "center",
133
+ direction: "row"
134
+ }, (0, _react.jsx)(_primitives.Box, {
135
+ xcss: emojiStyles
136
+ }, (0, _react.jsx)(_element.ResourcedEmoji, {
137
+ emojiProvider: emojiProvider,
138
+ emojiId: emojiId,
139
+ fitToHeight: 16,
140
+ showTooltip: true
141
+ })), (0, _react.jsx)(_primitives.Box, {
142
+ xcss: counterStyle
143
+ }, (0, _react.jsx)(_Counter.Counter, {
144
+ value: reaction.count
145
+ })))));
146
+ })));
147
+ };
148
+ var ReactionsDialogHeader = exports.ReactionsDialogHeader = function ReactionsDialogHeader(_ref2) {
149
+ var totalReactionsCount = _ref2.totalReactionsCount,
150
+ handlePreviousPage = _ref2.handlePreviousPage,
151
+ handleNextPage = _ref2.handleNextPage,
152
+ currentPage = _ref2.currentPage,
153
+ maxPages = _ref2.maxPages,
154
+ currentReactions = _ref2.currentReactions,
155
+ emojiProvider = _ref2.emojiProvider,
156
+ selectedEmojiId = _ref2.selectedEmojiId;
157
+ var _useModal = (0, _modalDialog.useModal)(),
158
+ titleId = _useModal.titleId;
159
+ var intl = (0, _reactIntlNext.useIntl)();
160
+ var isSinglePage = maxPages === 1;
161
+ var isOnFirstPage = currentPage === 1;
162
+ var isOnLastPage = currentPage === maxPages;
163
+ return (0, _react.jsx)(_primitives.Stack, null, (0, _react.jsx)(_primitives.Flex, {
164
+ direction: "row",
165
+ justifyContent: "space-between",
166
+ alignItems: "center",
167
+ xcss: fullWidthStyle
168
+ }, (0, _react.jsx)(_heading.default, {
169
+ size: "medium",
170
+ id: titleId
171
+ }, intl.formatMessage(_i18n.messages.reactionsCount, {
172
+ count: totalReactionsCount
173
+ })), !isSinglePage && (0, _react.jsx)(_primitives.Flex, {
174
+ alignItems: "center",
175
+ gap: "space.100"
176
+ }, (0, _react.jsx)(_tooltip.default, {
177
+ content: intl.formatMessage(_i18n.messages.leftNavigateLabel),
178
+ canAppear: function canAppear() {
179
+ return !isOnFirstPage;
180
+ }
181
+ }, function (tooltipProps) {
182
+ return (0, _react.jsx)(_new.IconButton, (0, _extends2.default)({}, tooltipProps, {
183
+ isDisabled: isOnFirstPage,
184
+ onClick: handlePreviousPage,
185
+ icon: _chevronLeft.default,
186
+ label: intl.formatMessage(_i18n.messages.leftNavigateLabel)
187
+ }));
188
+ }), (0, _react.jsx)(_tooltip.default, {
189
+ content: intl.formatMessage(_i18n.messages.rightNavigateLabel),
190
+ canAppear: function canAppear() {
191
+ return !isOnLastPage;
192
+ }
193
+ }, function (tooltipProps) {
194
+ return (0, _react.jsx)(_new.IconButton, (0, _extends2.default)({}, tooltipProps, {
195
+ onClick: handleNextPage,
196
+ isDisabled: isOnLastPage,
197
+ icon: _chevronRight.default,
198
+ label: intl.formatMessage(_i18n.messages.rightNavigateLabel)
199
+ }));
200
+ }))), (0, _react.jsx)(ReactionsTabs, {
201
+ currentReactions: currentReactions,
202
+ emojiProvider: emojiProvider,
203
+ selectedEmojiId: selectedEmojiId
204
+ }));
205
+ };