@atlaskit/reactions 21.6.2 → 21.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 (159) hide show
  1. package/CHANGELOG.md +29 -0
  2. package/dist/cjs/MockReactionsClient.js +3 -1
  3. package/dist/cjs/analytics/analytics.js +21 -2
  4. package/dist/cjs/components/Counter/Counter.js +39 -31
  5. package/dist/cjs/components/Counter/index.js +8 -2
  6. package/dist/cjs/components/Counter/styles.js +4 -4
  7. package/dist/cjs/components/EmojiButton/EmojiButton.js +9 -4
  8. package/dist/cjs/components/EmojiButton/styles.js +2 -2
  9. package/dist/cjs/components/FlashAnimation/FlashAnimation.js +2 -2
  10. package/dist/cjs/components/FlashAnimation/styles.js +4 -4
  11. package/dist/cjs/components/Reaction/Reaction.js +15 -12
  12. package/dist/cjs/components/Reaction/styles.js +5 -5
  13. package/dist/cjs/components/ReactionPicker/ReactionPicker.js +59 -59
  14. package/dist/cjs/components/ReactionPicker/styles.js +7 -5
  15. package/dist/cjs/components/ReactionTooltip/ReactionTooltip.js +8 -8
  16. package/dist/cjs/components/ReactionTooltip/styles.js +4 -4
  17. package/dist/cjs/components/Reactions/Reactions.js +36 -41
  18. package/dist/cjs/components/Reactions/index.js +0 -6
  19. package/dist/cjs/components/Reactions/styles.js +3 -3
  20. package/dist/cjs/components/Selector/Selector.js +6 -6
  21. package/dist/cjs/components/Selector/styles.js +5 -5
  22. package/dist/cjs/components/ShowMore/ShowMore.js +13 -10
  23. package/dist/cjs/components/ShowMore/index.js +6 -0
  24. package/dist/cjs/components/ShowMore/styles.js +4 -4
  25. package/dist/cjs/components/Trigger/Trigger.js +28 -10
  26. package/dist/cjs/components/Trigger/index.js +6 -0
  27. package/dist/cjs/components/Trigger/styles.js +11 -5
  28. package/dist/cjs/containers/ConnectedReactionsView/ConnectedReactionsView.js +5 -7
  29. package/dist/cjs/hooks/useClickAway.js +5 -3
  30. package/dist/cjs/shared/constants.js +14 -2
  31. package/dist/cjs/shared/i18n.js +10 -0
  32. package/dist/cjs/store/MemoryReactionsStore.js +33 -29
  33. package/dist/cjs/types/reaction.js +5 -0
  34. package/dist/cjs/version.json +1 -1
  35. package/dist/es2019/MockReactionsClient.js +1 -1
  36. package/dist/es2019/analytics/analytics.js +17 -1
  37. package/dist/es2019/components/Counter/Counter.js +39 -32
  38. package/dist/es2019/components/Counter/index.js +1 -1
  39. package/dist/es2019/components/Counter/styles.js +1 -1
  40. package/dist/es2019/components/EmojiButton/EmojiButton.js +7 -3
  41. package/dist/es2019/components/EmojiButton/styles.js +1 -1
  42. package/dist/es2019/components/FlashAnimation/FlashAnimation.js +1 -1
  43. package/dist/es2019/components/FlashAnimation/styles.js +1 -1
  44. package/dist/es2019/components/Reaction/Reaction.js +9 -7
  45. package/dist/es2019/components/Reaction/styles.js +1 -1
  46. package/dist/es2019/components/ReactionPicker/ReactionPicker.js +33 -10
  47. package/dist/es2019/components/ReactionPicker/styles.js +4 -2
  48. package/dist/es2019/components/ReactionTooltip/ReactionTooltip.js +2 -2
  49. package/dist/es2019/components/ReactionTooltip/styles.js +1 -1
  50. package/dist/es2019/components/Reactions/Reactions.js +33 -34
  51. package/dist/es2019/components/Reactions/index.js +1 -1
  52. package/dist/es2019/components/Reactions/styles.js +1 -1
  53. package/dist/es2019/components/Selector/Selector.js +1 -1
  54. package/dist/es2019/components/Selector/styles.js +1 -1
  55. package/dist/es2019/components/ShowMore/ShowMore.js +5 -3
  56. package/dist/es2019/components/ShowMore/index.js +1 -1
  57. package/dist/es2019/components/ShowMore/styles.js +1 -1
  58. package/dist/es2019/components/Trigger/Trigger.js +22 -7
  59. package/dist/es2019/components/Trigger/index.js +1 -1
  60. package/dist/es2019/components/Trigger/styles.js +11 -6
  61. package/dist/es2019/containers/ConnectedReactionsView/ConnectedReactionsView.js +5 -7
  62. package/dist/es2019/hooks/useClickAway.js +5 -4
  63. package/dist/es2019/shared/constants.js +10 -0
  64. package/dist/es2019/shared/i18n.js +10 -0
  65. package/dist/es2019/store/MemoryReactionsStore.js +32 -29
  66. package/dist/es2019/types/reaction.js +5 -0
  67. package/dist/es2019/version.json +1 -1
  68. package/dist/esm/MockReactionsClient.js +1 -3
  69. package/dist/esm/analytics/analytics.js +16 -0
  70. package/dist/esm/components/Counter/Counter.js +26 -24
  71. package/dist/esm/components/Counter/index.js +1 -1
  72. package/dist/esm/components/Counter/styles.js +1 -1
  73. package/dist/esm/components/EmojiButton/EmojiButton.js +7 -3
  74. package/dist/esm/components/EmojiButton/styles.js +1 -1
  75. package/dist/esm/components/FlashAnimation/FlashAnimation.js +1 -1
  76. package/dist/esm/components/FlashAnimation/styles.js +1 -1
  77. package/dist/esm/components/Reaction/Reaction.js +9 -7
  78. package/dist/esm/components/Reaction/styles.js +1 -1
  79. package/dist/esm/components/ReactionPicker/ReactionPicker.js +50 -51
  80. package/dist/esm/components/ReactionPicker/styles.js +4 -2
  81. package/dist/esm/components/ReactionTooltip/ReactionTooltip.js +2 -2
  82. package/dist/esm/components/ReactionTooltip/styles.js +1 -1
  83. package/dist/esm/components/Reactions/Reactions.js +31 -34
  84. package/dist/esm/components/Reactions/index.js +1 -1
  85. package/dist/esm/components/Reactions/styles.js +1 -1
  86. package/dist/esm/components/Selector/Selector.js +1 -1
  87. package/dist/esm/components/Selector/styles.js +1 -1
  88. package/dist/esm/components/ShowMore/ShowMore.js +5 -3
  89. package/dist/esm/components/ShowMore/index.js +1 -1
  90. package/dist/esm/components/ShowMore/styles.js +1 -1
  91. package/dist/esm/components/Trigger/Trigger.js +24 -8
  92. package/dist/esm/components/Trigger/index.js +1 -1
  93. package/dist/esm/components/Trigger/styles.js +12 -6
  94. package/dist/esm/containers/ConnectedReactionsView/ConnectedReactionsView.js +5 -7
  95. package/dist/esm/hooks/useClickAway.js +5 -3
  96. package/dist/esm/shared/constants.js +10 -0
  97. package/dist/esm/shared/i18n.js +10 -0
  98. package/dist/esm/store/MemoryReactionsStore.js +32 -29
  99. package/dist/esm/types/reaction.js +5 -0
  100. package/dist/esm/version.json +1 -1
  101. package/dist/types/MockReactionsClient.d.ts +3 -0
  102. package/dist/types/analytics/analytics.d.ts +6 -0
  103. package/dist/types/components/Counter/Counter.d.ts +8 -3
  104. package/dist/types/components/Counter/index.d.ts +1 -1
  105. package/dist/types/components/Counter/styles.d.ts +3 -3
  106. package/dist/types/components/EmojiButton/styles.d.ts +1 -1
  107. package/dist/types/components/FlashAnimation/styles.d.ts +5 -3
  108. package/dist/types/components/Reaction/styles.d.ts +4 -4
  109. package/dist/types/components/ReactionPicker/ReactionPicker.d.ts +2 -5
  110. package/dist/types/components/ReactionPicker/styles.d.ts +3 -3
  111. package/dist/types/components/ReactionTooltip/styles.d.ts +3 -3
  112. package/dist/types/components/Reactions/Reactions.d.ts +8 -15
  113. package/dist/types/components/Reactions/index.d.ts +1 -1
  114. package/dist/types/components/Reactions/styles.d.ts +2 -2
  115. package/dist/types/components/Selector/Selector.d.ts +1 -1
  116. package/dist/types/components/Selector/styles.d.ts +6 -4
  117. package/dist/types/components/ShowMore/ShowMore.d.ts +2 -1
  118. package/dist/types/components/ShowMore/index.d.ts +1 -1
  119. package/dist/types/components/ShowMore/styles.d.ts +3 -3
  120. package/dist/types/components/Trigger/Trigger.d.ts +14 -2
  121. package/dist/types/components/Trigger/index.d.ts +1 -1
  122. package/dist/types/components/Trigger/styles.d.ts +1 -1
  123. package/dist/types/containers/ConnectedReactionsView/ConnectedReactionsView.d.ts +3 -3
  124. package/dist/types/hooks/useClickAway.d.ts +2 -1
  125. package/dist/types/shared/constants.d.ts +8 -0
  126. package/dist/types/shared/i18n.d.ts +10 -0
  127. package/dist/types/types/Actions.d.ts +2 -2
  128. package/dist/types/types/index.d.ts +1 -1
  129. package/dist/types/types/reaction.d.ts +19 -1
  130. package/dist/types-ts4.0/MockReactionsClient.d.ts +3 -0
  131. package/dist/types-ts4.0/analytics/analytics.d.ts +6 -0
  132. package/dist/types-ts4.0/components/Counter/Counter.d.ts +8 -3
  133. package/dist/types-ts4.0/components/Counter/index.d.ts +1 -1
  134. package/dist/types-ts4.0/components/Counter/styles.d.ts +3 -3
  135. package/dist/types-ts4.0/components/EmojiButton/styles.d.ts +1 -1
  136. package/dist/types-ts4.0/components/FlashAnimation/styles.d.ts +5 -3
  137. package/dist/types-ts4.0/components/Reaction/styles.d.ts +4 -4
  138. package/dist/types-ts4.0/components/ReactionPicker/ReactionPicker.d.ts +2 -5
  139. package/dist/types-ts4.0/components/ReactionPicker/styles.d.ts +3 -3
  140. package/dist/types-ts4.0/components/ReactionTooltip/styles.d.ts +3 -3
  141. package/dist/types-ts4.0/components/Reactions/Reactions.d.ts +8 -15
  142. package/dist/types-ts4.0/components/Reactions/index.d.ts +1 -1
  143. package/dist/types-ts4.0/components/Reactions/styles.d.ts +2 -2
  144. package/dist/types-ts4.0/components/Selector/Selector.d.ts +1 -1
  145. package/dist/types-ts4.0/components/Selector/styles.d.ts +6 -4
  146. package/dist/types-ts4.0/components/ShowMore/ShowMore.d.ts +2 -1
  147. package/dist/types-ts4.0/components/ShowMore/index.d.ts +1 -1
  148. package/dist/types-ts4.0/components/ShowMore/styles.d.ts +3 -3
  149. package/dist/types-ts4.0/components/Trigger/Trigger.d.ts +14 -2
  150. package/dist/types-ts4.0/components/Trigger/index.d.ts +1 -1
  151. package/dist/types-ts4.0/components/Trigger/styles.d.ts +1 -1
  152. package/dist/types-ts4.0/containers/ConnectedReactionsView/ConnectedReactionsView.d.ts +3 -3
  153. package/dist/types-ts4.0/hooks/useClickAway.d.ts +2 -1
  154. package/dist/types-ts4.0/shared/constants.d.ts +8 -0
  155. package/dist/types-ts4.0/shared/i18n.d.ts +10 -0
  156. package/dist/types-ts4.0/types/Actions.d.ts +2 -2
  157. package/dist/types-ts4.0/types/index.d.ts +1 -1
  158. package/dist/types-ts4.0/types/reaction.d.ts +19 -1
  159. package/package.json +11 -9
@@ -9,17 +9,15 @@ Object.defineProperty(exports, "__esModule", {
9
9
  });
10
10
  exports.ReactionPicker = exports.RENDER_REACTIONPICKER_TESTID = void 0;
11
11
 
12
- var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
13
-
14
12
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
15
13
 
16
- var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
17
-
18
14
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
19
15
 
20
16
  var _react = _interopRequireWildcard(require("react"));
21
17
 
22
- var _core = require("@emotion/core");
18
+ var _react2 = require("@emotion/react");
19
+
20
+ var _reactIntlNext = require("react-intl-next");
23
21
 
24
22
  var _picker = require("@atlaskit/emoji/picker");
25
23
 
@@ -33,6 +31,8 @@ var _Trigger = require("../Trigger");
33
31
 
34
32
  var _analytics = require("../../analytics");
35
33
 
34
+ var _shared = require("../../shared");
35
+
36
36
  var _hooks = require("../../hooks");
37
37
 
38
38
  var styles = _interopRequireWildcard(require("./styles"));
@@ -49,7 +49,12 @@ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { va
49
49
  * Test id for wrapper ReactionPicker div
50
50
  */
51
51
  var RENDER_REACTIONPICKER_TESTID = 'reactionPicker-testid';
52
+ /**
53
+ * Emoji Picker Controller Id for Accessibility Labels
54
+ */
55
+
52
56
  exports.RENDER_REACTIONPICKER_TESTID = RENDER_REACTIONPICKER_TESTID;
57
+ var PICKER_CONTROL_ID = 'emoji-picker';
53
58
  var popperModifiers = [
54
59
  /**
55
60
  Removing this applyStyle modifier as it throws client errors ref:
@@ -91,7 +96,9 @@ var ReactionPicker = /*#__PURE__*/_react.default.memo(function (props) {
91
96
  pickerQuickReactionEmojiIds = props.pickerQuickReactionEmojiIds,
92
97
  onShowMore = props.onShowMore,
93
98
  onOpen = props.onOpen,
94
- onCancel = props.onCancel;
99
+ onCancel = props.onCancel,
100
+ _props$tooltipContent = props.tooltipContent,
101
+ tooltipContent = _props$tooltipContent === void 0 ? (0, _react2.jsx)(_reactIntlNext.FormattedMessage, _shared.i18n.messages.addReaction) : _props$tooltipContent;
95
102
  /**
96
103
  * Container <div /> reference (used by custom hook to detect click outside)
97
104
  */
@@ -101,9 +108,7 @@ var ReactionPicker = /*#__PURE__*/_react.default.memo(function (props) {
101
108
  * a function you can ask Popper to recompute your tooltip's position. It will directly call the Popper#update method
102
109
  */
103
110
 
104
- var updatePopper = (0, _react.useRef)(function () {
105
- return Promise.resolve();
106
- });
111
+ var updatePopper = (0, _react.useRef)();
107
112
 
108
113
  var _useState = (0, _react.useState)({
109
114
  /**
@@ -130,7 +135,7 @@ var ReactionPicker = /*#__PURE__*/_react.default.memo(function (props) {
130
135
  }
131
136
 
132
137
  close();
133
- });
138
+ }, 'click', true);
134
139
  /**
135
140
  * Event callback when the picker is closed
136
141
  * @param _id Optional id if an emoji button was selected or undefineed if was clicked outside the picker
@@ -145,7 +150,7 @@ var ReactionPicker = /*#__PURE__*/_react.default.memo(function (props) {
145
150
  _analytics.UFO.PickerRender.abort({
146
151
  metadata: {
147
152
  emojiId: _id,
148
- source: 'Reaction-Picker',
153
+ source: 'ReactionPicker',
149
154
  reason: 'close dialog'
150
155
  }
151
156
  });
@@ -155,39 +160,17 @@ var ReactionPicker = /*#__PURE__*/_react.default.memo(function (props) {
155
160
  * @param e event param
156
161
  */
157
162
 
158
- var onSelectMoreClick = (0, _react.useCallback)( /*#__PURE__*/function () {
159
- var _ref = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(e) {
160
- return _regenerator.default.wrap(function _callee$(_context) {
161
- while (1) {
162
- switch (_context.prev = _context.next) {
163
- case 0:
164
- e.preventDefault();
165
- _context.next = 3;
166
- return updatePopper.current();
167
-
168
- case 3:
169
- // Update popper position
170
- setSettings({
171
- isOpen: true,
172
- showFullPicker: true
173
- });
174
-
175
- if (onShowMore) {
176
- onShowMore();
177
- }
178
-
179
- case 5:
180
- case "end":
181
- return _context.stop();
182
- }
183
- }
184
- }, _callee);
185
- }));
186
-
187
- return function (_x) {
188
- return _ref.apply(this, arguments);
189
- };
190
- }(), [onShowMore]);
163
+ var onSelectMoreClick = (0, _react.useCallback)(function (e) {
164
+ e.preventDefault();
165
+ setSettings({
166
+ isOpen: true,
167
+ showFullPicker: true
168
+ });
169
+
170
+ if (onShowMore) {
171
+ onShowMore();
172
+ }
173
+ }, [onShowMore]);
191
174
  /**
192
175
  * Event callback when an emoji icon is selected
193
176
  * @param item selected item
@@ -222,44 +205,61 @@ var ReactionPicker = /*#__PURE__*/_react.default.memo(function (props) {
222
205
 
223
206
  _analytics.UFO.PickerRender.success();
224
207
  };
208
+ /**
209
+ * When picker is opened, re-calculate the picker position
210
+ */
211
+
225
212
 
213
+ (0, _react.useEffect)(function () {
214
+ if (settings.isOpen) {
215
+ if (updatePopper.current) {
216
+ updatePopper.current();
217
+ }
218
+ }
219
+ }, [settings]);
226
220
  var wrapperClassName = " ".concat(settings.isOpen ? 'isOpen' : '', " ").concat(miniMode ? 'miniMode' : '', " ").concat(className);
227
- return (0, _core.jsx)("div", {
221
+ return (0, _react2.jsx)("div", {
228
222
  className: wrapperClassName,
229
223
  css: styles.pickerStyle,
230
224
  ref: wrapperRef,
231
225
  "data-testid": RENDER_REACTIONPICKER_TESTID
232
- }, (0, _core.jsx)(_popper.Manager, null, (0, _core.jsx)(_popper.Reference, null, function (_ref2) {
233
- var popperRef = _ref2.ref;
226
+ }, (0, _react2.jsx)(_popper.Manager, null, (0, _react2.jsx)(_popper.Reference, null, function (_ref) {
227
+ var popperRef = _ref.ref;
234
228
  return (// Render a button to open the <Selector /> panel
235
- (0, _core.jsx)(_Trigger.Trigger, {
229
+ (0, _react2.jsx)(_Trigger.Trigger, {
230
+ ariaAttributes: {
231
+ 'aria-expanded': settings.isOpen,
232
+ 'aria-controls': PICKER_CONTROL_ID
233
+ },
236
234
  ref: popperRef,
237
235
  onClick: onTriggerClick,
238
236
  miniMode: miniMode,
239
- disabled: disabled
237
+ disabled: disabled,
238
+ tooltipContent: tooltipContent
240
239
  })
241
240
  );
242
- }), (0, _core.jsx)(_popper.Popper, {
241
+ }), (0, _react2.jsx)(_popper.Popper, {
243
242
  placement: "bottom-start",
244
243
  modifiers: popperModifiers
245
- }, function (_ref3) {
246
- var ref = _ref3.ref,
247
- style = _ref3.style,
248
- update = _ref3.update;
244
+ }, function (_ref2) {
245
+ var ref = _ref2.ref,
246
+ style = _ref2.style,
247
+ update = _ref2.update;
249
248
  updatePopper.current = update;
250
- return (0, _core.jsx)(_react.Fragment, null, settings.isOpen && (0, _core.jsx)("div", {
249
+ return (0, _react2.jsx)(_react.Fragment, null, settings.isOpen && (0, _react2.jsx)("div", {
250
+ id: PICKER_CONTROL_ID,
251
251
  style: _objectSpread({
252
252
  zIndex: _constants.layers.layer()
253
253
  }, style),
254
254
  ref: ref
255
- }, (0, _core.jsx)("div", {
255
+ }, (0, _react2.jsx)("div", {
256
256
  css: styles.popupStyle
257
- }, settings.showFullPicker ? (0, _core.jsx)(_picker.EmojiPicker, {
257
+ }, settings.showFullPicker ? (0, _react2.jsx)(_picker.EmojiPicker, {
258
258
  emojiProvider: emojiProvider,
259
259
  onSelection: onEmojiSelected
260
- }) : (0, _core.jsx)("div", {
260
+ }) : (0, _react2.jsx)("div", {
261
261
  css: styles.contentStyle
262
- }, (0, _core.jsx)(_Selector.Selector, {
262
+ }, (0, _react2.jsx)(_Selector.Selector, {
263
263
  emojiProvider: emojiProvider,
264
264
  onSelection: onEmojiSelected,
265
265
  showMore: allowAllEmojis,
@@ -5,7 +5,7 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.popupStyle = exports.pickerStyle = exports.contentStyle = void 0;
7
7
 
8
- var _core = require("@emotion/core");
8
+ var _react = require("@emotion/react");
9
9
 
10
10
  var _constants = require("@atlaskit/theme/constants");
11
11
 
@@ -14,7 +14,7 @@ var _colors = require("@atlaskit/theme/colors");
14
14
  var _tokens = require("@atlaskit/tokens");
15
15
 
16
16
  /** @jsx jsx */
17
- var pickerStyle = (0, _core.css)({
17
+ var pickerStyle = (0, _react.css)({
18
18
  verticalAlign: 'middle',
19
19
  '&.miniMode': {
20
20
  display: 'inline-block',
@@ -22,16 +22,18 @@ var pickerStyle = (0, _core.css)({
22
22
  }
23
23
  });
24
24
  exports.pickerStyle = pickerStyle;
25
- var contentStyle = (0, _core.css)({
25
+ var contentStyle = (0, _react.css)({
26
26
  display: 'flex'
27
27
  });
28
28
  exports.contentStyle = contentStyle;
29
- var popupStyle = (0, _core.css)({
29
+ var popupStyle = (0, _react.css)({
30
30
  background: (0, _tokens.token)('elevation.surface.overlay', _colors.N0),
31
31
  borderRadius: "".concat((0, _constants.borderRadius)(), "px"),
32
32
  boxShadow: (0, _tokens.token)('elevation.shadow.overlay', "0 4px 8px -2px ".concat(_colors.N50A, ", 0 0 1px ").concat(_colors.N60A)),
33
33
  '&> div': {
34
- boxShadow: undefined
34
+ boxShadow: undefined,
35
+ marginTop: '4px',
36
+ marginBottom: '4px'
35
37
  }
36
38
  });
37
39
  exports.popupStyle = popupStyle;
@@ -13,7 +13,7 @@ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")
13
13
 
14
14
  var _react = _interopRequireDefault(require("react"));
15
15
 
16
- var _core = require("@emotion/core");
16
+ var _react2 = require("@emotion/react");
17
17
 
18
18
  var _tooltip = _interopRequireDefault(require("@atlaskit/tooltip"));
19
19
 
@@ -46,25 +46,25 @@ var ReactionTooltip = function ReactionTooltip(_ref) {
46
46
  /**
47
47
  * Render list of users in the tooltip box
48
48
  */
49
- var content = !users || users.length === 0 ? null : (0, _core.jsx)("div", {
49
+ var content = !users || users.length === 0 ? null : (0, _react2.jsx)("div", {
50
50
  css: styles.tooltipStyle
51
- }, (0, _core.jsx)("ul", null, emojiName ? (0, _core.jsx)("li", {
51
+ }, (0, _react2.jsx)("ul", null, emojiName ? (0, _react2.jsx)("li", {
52
52
  css: styles.emojiNameStyle
53
53
  }, emojiName) : null, users.slice(0, maxReactions).map(function (user, index) {
54
- return (0, _core.jsx)("li", {
54
+ return (0, _react2.jsx)("li", {
55
55
  key: index
56
56
  }, user.displayName);
57
- }), users.length > maxReactions ? (0, _core.jsx)("li", {
57
+ }), users.length > maxReactions ? (0, _react2.jsx)("li", {
58
58
  css: styles.footerStyle
59
- }, (0, _core.jsx)(_reactIntlNext.FormattedMessage, (0, _extends2.default)({}, _shared.i18n.messages.otherUsers, {
59
+ }, (0, _react2.jsx)(_reactIntlNext.FormattedMessage, (0, _extends2.default)({}, _shared.i18n.messages.otherUsers, {
60
60
  values: {
61
61
  count: users.length - maxReactions
62
62
  }
63
63
  }))) : null));
64
- return (0, _core.jsx)(_tooltip.default, {
64
+ return (0, _react2.jsx)(_tooltip.default, {
65
65
  content: content,
66
66
  position: "bottom",
67
- "data-testid": RENDER_REACTIONTOOLTIP_TESTID
67
+ testId: RENDER_REACTIONTOOLTIP_TESTID
68
68
  }, _react.default.Children.only(children));
69
69
  };
70
70
 
@@ -5,7 +5,7 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.verticalMargin = exports.tooltipStyle = exports.footerStyle = exports.emojiNameStyle = void 0;
7
7
 
8
- var _core = require("@emotion/core");
8
+ var _react = require("@emotion/react");
9
9
 
10
10
  var _tokens = require("@atlaskit/tokens");
11
11
 
@@ -14,7 +14,7 @@ var _colors = require("@atlaskit/theme/colors");
14
14
  /** @jsx jsx */
15
15
  var verticalMargin = 5;
16
16
  exports.verticalMargin = verticalMargin;
17
- var tooltipStyle = (0, _core.css)({
17
+ var tooltipStyle = (0, _react.css)({
18
18
  maxWidth: '150px',
19
19
  textOverflow: 'ellipsis',
20
20
  whiteSpace: 'nowrap',
@@ -33,13 +33,13 @@ var tooltipStyle = (0, _core.css)({
33
33
  }
34
34
  });
35
35
  exports.tooltipStyle = tooltipStyle;
36
- var emojiNameStyle = (0, _core.css)({
36
+ var emojiNameStyle = (0, _react.css)({
37
37
  textTransform: 'capitalize',
38
38
  color: (0, _tokens.token)('color.text.inverse', _colors.N90),
39
39
  fontWeight: 600
40
40
  });
41
41
  exports.emojiNameStyle = emojiNameStyle;
42
- var footerStyle = (0, _core.css)({
42
+ var footerStyle = (0, _react.css)({
43
43
  color: (0, _tokens.token)('color.text.inverse', _colors.N90),
44
44
  fontWeight: 300
45
45
  });
@@ -1,22 +1,19 @@
1
1
  "use strict";
2
2
 
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
3
  var _typeof = require("@babel/runtime/helpers/typeof");
6
4
 
7
5
  Object.defineProperty(exports, "__esModule", {
8
6
  value: true
9
7
  });
10
- exports.Reactions = exports.RENDER_TOOLTIP_TESTID = exports.RENDER_REACTIONS_TESTID = void 0;
8
+ exports.Reactions = exports.RENDER_REACTIONS_TESTID = void 0;
9
+ exports.getTooltip = getTooltip;
11
10
 
12
11
  var _react = _interopRequireWildcard(require("react"));
13
12
 
14
- var _core = require("@emotion/core");
13
+ var _react2 = require("@emotion/react");
15
14
 
16
15
  var _analyticsNext = require("@atlaskit/analytics-next");
17
16
 
18
- var _tooltip = _interopRequireDefault(require("@atlaskit/tooltip"));
19
-
20
17
  var _reactIntlNext = require("react-intl-next");
21
18
 
22
19
  var _analytics = require("../../analytics");
@@ -41,26 +38,40 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
41
38
  * Test id for wrapper Reactions div
42
39
  */
43
40
  var RENDER_REACTIONS_TESTID = 'render-reactions';
41
+ exports.RENDER_REACTIONS_TESTID = RENDER_REACTIONS_TESTID;
42
+
44
43
  /**
45
- * Test id for the tooltip
44
+ * Get content of the tooltip
46
45
  */
46
+ function getTooltip(status, errorMessage) {
47
+ switch (status) {
48
+ case _types.ReactionStatus.error:
49
+ return errorMessage || (0, _react2.jsx)(_reactIntlNext.FormattedMessage, _shared.i18n.messages.unexpectedError);
50
+ // When reaction is not available don't show any tooltip (e.g. Archive page in Confluence)
47
51
 
48
- exports.RENDER_REACTIONS_TESTID = RENDER_REACTIONS_TESTID;
49
- var RENDER_TOOLTIP_TESTID = 'render-tooltip';
50
- exports.RENDER_TOOLTIP_TESTID = RENDER_TOOLTIP_TESTID;
52
+ case _types.ReactionStatus.disabled:
53
+ return null;
54
+
55
+ case _types.ReactionStatus.notLoaded:
56
+ case _types.ReactionStatus.loading:
57
+ return (0, _react2.jsx)(_reactIntlNext.FormattedMessage, _shared.i18n.messages.loadingReactions);
51
58
 
59
+ case _types.ReactionStatus.ready:
60
+ return (0, _react2.jsx)(_reactIntlNext.FormattedMessage, _shared.i18n.messages.addReaction);
61
+ }
62
+ }
52
63
  /**
53
64
  * Renders list of reactions
54
65
  */
66
+
67
+
55
68
  var Reactions = /*#__PURE__*/_react.default.memo(function (_ref) {
56
69
  var _ref$flash = _ref.flash,
57
70
  flash = _ref$flash === void 0 ? {} : _ref$flash,
58
71
  status = _ref.status,
59
72
  errorMessage = _ref.errorMessage,
60
73
  loadReaction = _ref.loadReaction,
61
- quickReactionEmojiIds = _ref.quickReactionEmojiIds,
62
- containerAri = _ref.containerAri,
63
- ari = _ref.ari,
74
+ quickReactionEmojis = _ref.quickReactionEmojis,
64
75
  pickerQuickReactionEmojiIds = _ref.pickerQuickReactionEmojiIds,
65
76
  onReactionHover = _ref.onReactionHover,
66
77
  onSelection = _ref.onSelection,
@@ -92,23 +103,6 @@ var Reactions = /*#__PURE__*/_react.default.memo(function (_ref) {
92
103
  renderTime.current = undefined;
93
104
  }
94
105
  }, [createAnalyticsEvent, status]);
95
- /**
96
- * Get content of the tooltip
97
- */
98
-
99
- var getTooltip = function getTooltip() {
100
- switch (status) {
101
- case _types.ReactionStatus.error:
102
- return errorMessage || (0, _core.jsx)(_reactIntlNext.FormattedMessage, _shared.i18n.messages.unexpectedError);
103
-
104
- case _types.ReactionStatus.loading:
105
- case _types.ReactionStatus.notLoaded:
106
- return (0, _core.jsx)(_reactIntlNext.FormattedMessage, _shared.i18n.messages.loadingReactions);
107
-
108
- default:
109
- return undefined;
110
- }
111
- };
112
106
 
113
107
  var handleReactionMouseEnter = function handleReactionMouseEnter(summary) {
114
108
  if (onReactionHover) {
@@ -147,12 +141,15 @@ var Reactions = /*#__PURE__*/_react.default.memo(function (_ref) {
147
141
  /**
148
142
  * If reactions not empty, don't show quick reactions Pre defined emoji or if its empty => return the current list of reactions
149
143
  */
150
- if (reactions.length > 0 || !quickReactionEmojiIds) {
144
+ if (reactions.length > 0 || !quickReactionEmojis) {
151
145
  return reactions;
152
146
  } // add any missing default reactions
153
147
 
154
148
 
155
- var items = quickReactionEmojiIds.filter(function (emojiId) {
149
+ var ari = quickReactionEmojis.ari,
150
+ containerAri = quickReactionEmojis.containerAri,
151
+ emojiIds = quickReactionEmojis.emojiIds;
152
+ var items = emojiIds.filter(function (emojiId) {
156
153
  return !reactions.some(function (reaction) {
157
154
  return reaction.emojiId === emojiId;
158
155
  });
@@ -166,12 +163,12 @@ var Reactions = /*#__PURE__*/_react.default.memo(function (_ref) {
166
163
  };
167
164
  });
168
165
  return reactions.concat(items);
169
- }, [ari, containerAri, quickReactionEmojiIds, reactions]);
170
- return (0, _core.jsx)("div", {
166
+ }, [quickReactionEmojis, reactions]);
167
+ return (0, _react2.jsx)("div", {
171
168
  css: styles.wrapperStyle,
172
169
  "data-testid": RENDER_REACTIONS_TESTID
173
170
  }, memorizedReactions.map(function (reaction) {
174
- return (0, _core.jsx)(_Reaction.Reaction, {
171
+ return (0, _react2.jsx)(_Reaction.Reaction, {
175
172
  key: reaction.emojiId,
176
173
  css: styles.reactionStyle,
177
174
  reaction: reaction,
@@ -180,10 +177,7 @@ var Reactions = /*#__PURE__*/_react.default.memo(function (_ref) {
180
177
  onMouseEnter: handleReactionMouseEnter,
181
178
  flash: flash[reaction.emojiId]
182
179
  });
183
- }), (0, _core.jsx)(_tooltip.default, {
184
- testId: RENDER_TOOLTIP_TESTID,
185
- content: getTooltip()
186
- }, (0, _core.jsx)(_ReactionPicker.ReactionPicker, {
180
+ }), (0, _react2.jsx)(_ReactionPicker.ReactionPicker, {
187
181
  css: styles.reactionStyle,
188
182
  emojiProvider: emojiProvider,
189
183
  miniMode: true,
@@ -193,8 +187,9 @@ var Reactions = /*#__PURE__*/_react.default.memo(function (_ref) {
193
187
  onSelection: handleOnSelection,
194
188
  onOpen: handlePickerOpen,
195
189
  onCancel: handleOnCancel,
196
- onShowMore: handleOnMore
197
- })));
190
+ onShowMore: handleOnMore,
191
+ tooltipContent: getTooltip(status, errorMessage)
192
+ }));
198
193
  });
199
194
 
200
195
  exports.Reactions = Reactions;
@@ -9,12 +9,6 @@ Object.defineProperty(exports, "RENDER_REACTIONS_TESTID", {
9
9
  return _Reactions.RENDER_REACTIONS_TESTID;
10
10
  }
11
11
  });
12
- Object.defineProperty(exports, "RENDER_TOOLTIP_TESTID", {
13
- enumerable: true,
14
- get: function get() {
15
- return _Reactions.RENDER_TOOLTIP_TESTID;
16
- }
17
- });
18
12
  Object.defineProperty(exports, "Reactions", {
19
13
  enumerable: true,
20
14
  get: function get() {
@@ -5,16 +5,16 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.wrapperStyle = exports.reactionStyle = void 0;
7
7
 
8
- var _core = require("@emotion/core");
8
+ var _react = require("@emotion/react");
9
9
 
10
10
  /** @jsx jsx */
11
- var reactionStyle = (0, _core.css)({
11
+ var reactionStyle = (0, _react.css)({
12
12
  display: 'inline-block',
13
13
  // top margin of 2px to allow spacing between rows when wrapped (paired with top margin in reactionsStyle)
14
14
  margin: '2px 4px 0 4px'
15
15
  });
16
16
  exports.reactionStyle = reactionStyle;
17
- var wrapperStyle = (0, _core.css)({
17
+ var wrapperStyle = (0, _react.css)({
18
18
  display: 'flex',
19
19
  flexWrap: 'wrap',
20
20
  position: 'relative',
@@ -13,7 +13,7 @@ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/sli
13
13
 
14
14
  var _react = _interopRequireWildcard(require("react"));
15
15
 
16
- var _core = require("@emotion/core");
16
+ var _react2 = require("@emotion/react");
17
17
 
18
18
  var _tooltip = _interopRequireDefault(require("@atlaskit/tooltip"));
19
19
 
@@ -102,24 +102,24 @@ var Selector = function Selector(_ref) {
102
102
  var renderEmoji = function renderEmoji(emoji, index) {
103
103
  var _emoji$id;
104
104
 
105
- return (0, _core.jsx)("div", {
105
+ return (0, _react2.jsx)("div", {
106
106
  key: (_emoji$id = emoji.id) !== null && _emoji$id !== void 0 ? _emoji$id : emoji.shortName,
107
107
  className: emoji === selection ? 'selected' : undefined,
108
108
  css: [styles.emojiStyle, styles.revealStyle],
109
109
  style: emojiStyleAnimation(index),
110
110
  "data-testid": RENDER_SELECTOR_TESTID
111
- }, (0, _core.jsx)(_tooltip.default, {
111
+ }, (0, _react2.jsx)(_tooltip.default, {
112
112
  content: emoji.shortName
113
- }, (0, _core.jsx)(_EmojiButton.EmojiButton, {
113
+ }, (0, _react2.jsx)(_EmojiButton.EmojiButton, {
114
114
  emojiId: emoji,
115
115
  emojiProvider: emojiProvider,
116
116
  onClick: onSelected
117
117
  })));
118
118
  };
119
119
 
120
- return (0, _core.jsx)("div", {
120
+ return (0, _react2.jsx)("div", {
121
121
  css: styles.selectorStyle
122
- }, pickerQuickReactionEmojiIds ? pickerQuickReactionEmojiIds.map(renderEmoji) : null, showMore ? (0, _core.jsx)(_ShowMore.ShowMore, {
122
+ }, pickerQuickReactionEmojiIds ? pickerQuickReactionEmojiIds.map(renderEmoji) : null, showMore ? (0, _react2.jsx)(_ShowMore.ShowMore, {
123
123
  key: "more",
124
124
  buttonStyle: styles.revealStyle,
125
125
  style: {
@@ -5,16 +5,16 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.selectorStyle = exports.revealStyle = exports.revealAnimation = exports.emojiStyleAnimation = exports.emojiStyle = void 0;
7
7
 
8
- var _core = require("@emotion/core");
8
+ var _react = require("@emotion/react");
9
9
 
10
10
  /** @jsx jsx */
11
- var selectorStyle = (0, _core.css)({
11
+ var selectorStyle = (0, _react.css)({
12
12
  boxSizing: 'border-box',
13
13
  display: 'flex',
14
14
  padding: 0
15
15
  });
16
16
  exports.selectorStyle = selectorStyle;
17
- var emojiStyle = (0, _core.css)({
17
+ var emojiStyle = (0, _react.css)({
18
18
  display: 'inline-block',
19
19
  opacity: 0,
20
20
  '&.selected': {
@@ -23,7 +23,7 @@ var emojiStyle = (0, _core.css)({
23
23
  }
24
24
  });
25
25
  exports.emojiStyle = emojiStyle;
26
- var revealAnimation = (0, _core.keyframes)({
26
+ var revealAnimation = (0, _react.keyframes)({
27
27
  '0%': {
28
28
  opacity: 1,
29
29
  transform: 'scale(0.5)'
@@ -37,7 +37,7 @@ var revealAnimation = (0, _core.keyframes)({
37
37
  }
38
38
  });
39
39
  exports.revealAnimation = revealAnimation;
40
- var revealStyle = (0, _core.css)({
40
+ var revealStyle = (0, _react.css)({
41
41
  animation: "".concat(revealAnimation, " 150ms ease-in-out forwards")
42
42
  });
43
43
  /**
@@ -7,11 +7,11 @@ var _typeof = require("@babel/runtime/helpers/typeof");
7
7
  Object.defineProperty(exports, "__esModule", {
8
8
  value: true
9
9
  });
10
- exports.ShowMore = exports.RENDER_SHOWMORE_TESTID = void 0;
10
+ exports.ShowMore = exports.RENDER_WRAPPER_TESTID = exports.RENDER_SHOWMORE_TESTID = void 0;
11
11
 
12
12
  var _react = _interopRequireDefault(require("react"));
13
13
 
14
- var _core = require("@emotion/core");
14
+ var _react2 = require("@emotion/react");
15
15
 
16
16
  var _reactIntlNext = require("react-intl-next");
17
17
 
@@ -34,6 +34,8 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
34
34
  */
35
35
  var RENDER_SHOWMORE_TESTID = 'show-more-button';
36
36
  exports.RENDER_SHOWMORE_TESTID = RENDER_SHOWMORE_TESTID;
37
+ var RENDER_WRAPPER_TESTID = 'show-more-wrapper';
38
+ exports.RENDER_WRAPPER_TESTID = RENDER_WRAPPER_TESTID;
37
39
 
38
40
  /**
39
41
  * Show more custom emojis button
@@ -45,24 +47,25 @@ var ShowMore = function ShowMore(_ref) {
45
47
  _ref$className = _ref.className,
46
48
  className = _ref$className === void 0 ? {} : _ref$className,
47
49
  buttonStyle = _ref.buttonStyle;
48
- return (0, _core.jsx)("div", {
50
+ return (0, _react2.jsx)("div", {
49
51
  className: className.container,
50
52
  css: styles.moreEmojiContainerStyle,
51
- style: style.container
52
- }, (0, _core.jsx)("div", {
53
+ style: style.container,
54
+ "data-testid": RENDER_WRAPPER_TESTID
55
+ }, (0, _react2.jsx)("div", {
53
56
  css: styles.separatorStyle
54
- }), (0, _core.jsx)(_reactIntlNext.FormattedMessage, _shared.i18n.messages.moreEmoji, function (message) {
55
- return (0, _core.jsx)(_tooltip.default, {
57
+ }), (0, _react2.jsx)(_reactIntlNext.FormattedMessage, _shared.i18n.messages.moreEmoji, function (message) {
58
+ return (0, _react2.jsx)(_tooltip.default, {
56
59
  content: message
57
- }, (0, _core.jsx)("button", {
60
+ }, (0, _react2.jsx)("button", {
58
61
  className: className.button,
59
62
  css: [styles.moreButtonStyle, buttonStyle],
60
- title: _shared.i18n.messages.moreEmoji.defaultMessage,
63
+ "aria-label": _shared.i18n.messages.moreEmoji.defaultMessage,
61
64
  type: "button",
62
65
  style: style.button,
63
66
  onMouseDown: onClick,
64
67
  "data-testid": RENDER_SHOWMORE_TESTID
65
- }, (0, _core.jsx)(_more.default, {
68
+ }, (0, _react2.jsx)(_more.default, {
66
69
  label: "More"
67
70
  })));
68
71
  }));
@@ -9,6 +9,12 @@ Object.defineProperty(exports, "RENDER_SHOWMORE_TESTID", {
9
9
  return _ShowMore.RENDER_SHOWMORE_TESTID;
10
10
  }
11
11
  });
12
+ Object.defineProperty(exports, "RENDER_WRAPPER_TESTID", {
13
+ enumerable: true,
14
+ get: function get() {
15
+ return _ShowMore.RENDER_WRAPPER_TESTID;
16
+ }
17
+ });
12
18
  Object.defineProperty(exports, "ShowMore", {
13
19
  enumerable: true,
14
20
  get: function get() {