@atlaskit/reactions 27.0.0 → 27.1.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 (152) hide show
  1. package/CHANGELOG.md +9 -0
  2. package/dist/cjs/analytics/index.js +1 -1
  3. package/dist/cjs/components/ReactionSummary/ReactionSummaryButton.js +12 -4
  4. package/dist/cjs/components/ReactionSummary/ReactionSummaryView.js +19 -2
  5. package/dist/cjs/components/ReactionSummary/ReactionSummaryViewEmojiPicker.js +101 -0
  6. package/dist/cjs/components/Reactions/Reactions.js +12 -4
  7. package/dist/cjs/i18n/cs.js +0 -1
  8. package/dist/cjs/i18n/da.js +0 -1
  9. package/dist/cjs/i18n/de.js +0 -1
  10. package/dist/cjs/i18n/en.js +0 -1
  11. package/dist/cjs/i18n/en_GB.js +0 -1
  12. package/dist/cjs/i18n/en_ZZ.js +0 -1
  13. package/dist/cjs/i18n/es.js +0 -1
  14. package/dist/cjs/i18n/fi.js +0 -1
  15. package/dist/cjs/i18n/fr.js +0 -1
  16. package/dist/cjs/i18n/hu.js +0 -1
  17. package/dist/cjs/i18n/it.js +0 -1
  18. package/dist/cjs/i18n/ja.js +0 -1
  19. package/dist/cjs/i18n/ko.js +1 -2
  20. package/dist/cjs/i18n/nb.js +0 -1
  21. package/dist/cjs/i18n/nl.js +0 -1
  22. package/dist/cjs/i18n/pl.js +0 -1
  23. package/dist/cjs/i18n/pt_BR.js +0 -1
  24. package/dist/cjs/i18n/ru.js +0 -1
  25. package/dist/cjs/i18n/sv.js +0 -1
  26. package/dist/cjs/i18n/th.js +0 -1
  27. package/dist/cjs/i18n/tr.js +0 -1
  28. package/dist/cjs/i18n/uk.js +1 -2
  29. package/dist/cjs/i18n/vi.js +0 -1
  30. package/dist/cjs/i18n/zh.js +0 -1
  31. package/dist/cjs/i18n/zh_TW.js +0 -1
  32. package/dist/es2019/analytics/index.js +1 -1
  33. package/dist/es2019/components/ReactionSummary/ReactionSummaryButton.js +12 -5
  34. package/dist/es2019/components/ReactionSummary/ReactionSummaryView.js +20 -3
  35. package/dist/es2019/components/ReactionSummary/ReactionSummaryViewEmojiPicker.js +81 -0
  36. package/dist/es2019/components/Reactions/Reactions.js +11 -4
  37. package/dist/es2019/i18n/cs.js +0 -1
  38. package/dist/es2019/i18n/da.js +0 -1
  39. package/dist/es2019/i18n/de.js +0 -1
  40. package/dist/es2019/i18n/en.js +0 -1
  41. package/dist/es2019/i18n/en_GB.js +0 -1
  42. package/dist/es2019/i18n/en_ZZ.js +0 -1
  43. package/dist/es2019/i18n/es.js +0 -1
  44. package/dist/es2019/i18n/fi.js +0 -1
  45. package/dist/es2019/i18n/fr.js +0 -1
  46. package/dist/es2019/i18n/hu.js +0 -1
  47. package/dist/es2019/i18n/it.js +0 -1
  48. package/dist/es2019/i18n/ja.js +0 -1
  49. package/dist/es2019/i18n/ko.js +1 -2
  50. package/dist/es2019/i18n/nb.js +0 -1
  51. package/dist/es2019/i18n/nl.js +0 -1
  52. package/dist/es2019/i18n/pl.js +0 -1
  53. package/dist/es2019/i18n/pt_BR.js +0 -1
  54. package/dist/es2019/i18n/ru.js +0 -1
  55. package/dist/es2019/i18n/sv.js +0 -1
  56. package/dist/es2019/i18n/th.js +0 -1
  57. package/dist/es2019/i18n/tr.js +0 -1
  58. package/dist/es2019/i18n/uk.js +1 -2
  59. package/dist/es2019/i18n/vi.js +0 -1
  60. package/dist/es2019/i18n/zh.js +0 -1
  61. package/dist/es2019/i18n/zh_TW.js +0 -1
  62. package/dist/esm/analytics/index.js +1 -1
  63. package/dist/esm/components/ReactionSummary/ReactionSummaryButton.js +13 -5
  64. package/dist/esm/components/ReactionSummary/ReactionSummaryView.js +19 -2
  65. package/dist/esm/components/ReactionSummary/ReactionSummaryViewEmojiPicker.js +92 -0
  66. package/dist/esm/components/Reactions/Reactions.js +12 -4
  67. package/dist/esm/i18n/cs.js +0 -1
  68. package/dist/esm/i18n/da.js +0 -1
  69. package/dist/esm/i18n/de.js +0 -1
  70. package/dist/esm/i18n/en.js +0 -1
  71. package/dist/esm/i18n/en_GB.js +0 -1
  72. package/dist/esm/i18n/en_ZZ.js +0 -1
  73. package/dist/esm/i18n/es.js +0 -1
  74. package/dist/esm/i18n/fi.js +0 -1
  75. package/dist/esm/i18n/fr.js +0 -1
  76. package/dist/esm/i18n/hu.js +0 -1
  77. package/dist/esm/i18n/it.js +0 -1
  78. package/dist/esm/i18n/ja.js +0 -1
  79. package/dist/esm/i18n/ko.js +1 -2
  80. package/dist/esm/i18n/nb.js +0 -1
  81. package/dist/esm/i18n/nl.js +0 -1
  82. package/dist/esm/i18n/pl.js +0 -1
  83. package/dist/esm/i18n/pt_BR.js +0 -1
  84. package/dist/esm/i18n/ru.js +0 -1
  85. package/dist/esm/i18n/sv.js +0 -1
  86. package/dist/esm/i18n/th.js +0 -1
  87. package/dist/esm/i18n/tr.js +0 -1
  88. package/dist/esm/i18n/uk.js +1 -2
  89. package/dist/esm/i18n/vi.js +0 -1
  90. package/dist/esm/i18n/zh.js +0 -1
  91. package/dist/esm/i18n/zh_TW.js +0 -1
  92. package/dist/types/components/ReactionSummary/ReactionSummaryButton.d.ts +4 -0
  93. package/dist/types/components/ReactionSummary/ReactionSummaryView.d.ts +14 -3
  94. package/dist/types/components/ReactionSummary/ReactionSummaryViewEmojiPicker.d.ts +6 -0
  95. package/dist/types/components/Reactions/Reactions.d.ts +5 -1
  96. package/dist/types/containers/ConnectedReactionsView/ConnectedReactionsView.d.ts +1 -1
  97. package/dist/types/i18n/cs.d.ts +0 -1
  98. package/dist/types/i18n/da.d.ts +0 -1
  99. package/dist/types/i18n/de.d.ts +0 -1
  100. package/dist/types/i18n/en.d.ts +0 -1
  101. package/dist/types/i18n/en_GB.d.ts +0 -1
  102. package/dist/types/i18n/en_ZZ.d.ts +0 -1
  103. package/dist/types/i18n/es.d.ts +0 -1
  104. package/dist/types/i18n/fi.d.ts +0 -1
  105. package/dist/types/i18n/fr.d.ts +0 -1
  106. package/dist/types/i18n/hu.d.ts +0 -1
  107. package/dist/types/i18n/it.d.ts +0 -1
  108. package/dist/types/i18n/ja.d.ts +0 -1
  109. package/dist/types/i18n/ko.d.ts +0 -1
  110. package/dist/types/i18n/nb.d.ts +0 -1
  111. package/dist/types/i18n/nl.d.ts +0 -1
  112. package/dist/types/i18n/pl.d.ts +0 -1
  113. package/dist/types/i18n/pt_BR.d.ts +0 -1
  114. package/dist/types/i18n/ru.d.ts +0 -1
  115. package/dist/types/i18n/sv.d.ts +0 -1
  116. package/dist/types/i18n/th.d.ts +0 -1
  117. package/dist/types/i18n/tr.d.ts +0 -1
  118. package/dist/types/i18n/uk.d.ts +0 -1
  119. package/dist/types/i18n/vi.d.ts +0 -1
  120. package/dist/types/i18n/zh.d.ts +0 -1
  121. package/dist/types/i18n/zh_TW.d.ts +0 -1
  122. package/dist/types-ts4.5/components/ReactionSummary/ReactionSummaryButton.d.ts +4 -0
  123. package/dist/types-ts4.5/components/ReactionSummary/ReactionSummaryView.d.ts +14 -3
  124. package/dist/types-ts4.5/components/ReactionSummary/ReactionSummaryViewEmojiPicker.d.ts +6 -0
  125. package/dist/types-ts4.5/components/Reactions/Reactions.d.ts +5 -1
  126. package/dist/types-ts4.5/containers/ConnectedReactionsView/ConnectedReactionsView.d.ts +1 -1
  127. package/dist/types-ts4.5/i18n/cs.d.ts +0 -1
  128. package/dist/types-ts4.5/i18n/da.d.ts +0 -1
  129. package/dist/types-ts4.5/i18n/de.d.ts +0 -1
  130. package/dist/types-ts4.5/i18n/en.d.ts +0 -1
  131. package/dist/types-ts4.5/i18n/en_GB.d.ts +0 -1
  132. package/dist/types-ts4.5/i18n/en_ZZ.d.ts +0 -1
  133. package/dist/types-ts4.5/i18n/es.d.ts +0 -1
  134. package/dist/types-ts4.5/i18n/fi.d.ts +0 -1
  135. package/dist/types-ts4.5/i18n/fr.d.ts +0 -1
  136. package/dist/types-ts4.5/i18n/hu.d.ts +0 -1
  137. package/dist/types-ts4.5/i18n/it.d.ts +0 -1
  138. package/dist/types-ts4.5/i18n/ja.d.ts +0 -1
  139. package/dist/types-ts4.5/i18n/ko.d.ts +0 -1
  140. package/dist/types-ts4.5/i18n/nb.d.ts +0 -1
  141. package/dist/types-ts4.5/i18n/nl.d.ts +0 -1
  142. package/dist/types-ts4.5/i18n/pl.d.ts +0 -1
  143. package/dist/types-ts4.5/i18n/pt_BR.d.ts +0 -1
  144. package/dist/types-ts4.5/i18n/ru.d.ts +0 -1
  145. package/dist/types-ts4.5/i18n/sv.d.ts +0 -1
  146. package/dist/types-ts4.5/i18n/th.d.ts +0 -1
  147. package/dist/types-ts4.5/i18n/tr.d.ts +0 -1
  148. package/dist/types-ts4.5/i18n/uk.d.ts +0 -1
  149. package/dist/types-ts4.5/i18n/vi.d.ts +0 -1
  150. package/dist/types-ts4.5/i18n/zh.d.ts +0 -1
  151. package/dist/types-ts4.5/i18n/zh_TW.d.ts +0 -1
  152. package/package.json +4 -4
@@ -0,0 +1,81 @@
1
+ import _extends from "@babel/runtime/helpers/extends";
2
+ /**
3
+ * @jsxRuntime classic
4
+ * @jsx jsx
5
+ */
6
+ import { useCallback, useState } from 'react';
7
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/use-compiled -- Ignored via go/DSP-18766
8
+ import { jsx } from '@emotion/react';
9
+ import { EmojiPicker } from '@atlaskit/emoji/picker';
10
+ import Popup from '@atlaskit/popup';
11
+ import { PickerRender } from '../../ufo';
12
+ import { Trigger } from '../Trigger';
13
+ ;
14
+ export const ReactionSummaryViewEmojiPicker = ({
15
+ emojiProvider,
16
+ onSelection,
17
+ emojiPickerSize,
18
+ disabled,
19
+ reactionPickerTriggerIcon,
20
+ tooltipContent,
21
+ onOpen
22
+ }) => {
23
+ const [isOpen, setIsOpen] = useState(false);
24
+ const handleClick = () => {
25
+ // ufo start reactions picker open experience
26
+ PickerRender.start();
27
+ setIsOpen(prevIsOpen => !prevIsOpen);
28
+ onOpen && onOpen();
29
+
30
+ // ufo reactions picker opened success
31
+ PickerRender.success();
32
+ };
33
+
34
+ /**
35
+ * Event callback when the picker is closed
36
+ * @param _id Optional id if an emoji button was selected or undefined if was clicked outside the picker
37
+ */
38
+ const close = useCallback(_id => {
39
+ setIsOpen(false);
40
+ // ufo abort reaction experience
41
+ PickerRender.abort({
42
+ metadata: {
43
+ emojiId: _id,
44
+ source: 'ReactionPicker',
45
+ reason: 'close dialog'
46
+ }
47
+ });
48
+ }, [setIsOpen]);
49
+
50
+ /**
51
+ * Event callback when an emoji icon is selected
52
+ * @param item selected item
53
+ */
54
+ const onEmojiSelected = useCallback(item => {
55
+ // no emoji was selected
56
+ if (!item.id) {
57
+ return;
58
+ }
59
+ onSelection(item.id, 'emojiPicker');
60
+ close(item.id);
61
+ }, [onSelection, close]);
62
+ return jsx(Popup, {
63
+ testId: "reaction-summary-view-emoji-picker",
64
+ isOpen: isOpen,
65
+ placement: "right",
66
+ onClose: () => close(),
67
+ content: () => jsx(EmojiPicker, {
68
+ emojiProvider: emojiProvider,
69
+ onSelection: onEmojiSelected,
70
+ size: emojiPickerSize
71
+ }),
72
+ trigger: triggerProps => jsx(Trigger, _extends({}, triggerProps, {
73
+ disabled: disabled,
74
+ reactionPickerTriggerIcon: reactionPickerTriggerIcon,
75
+ tooltipContent: tooltipContent,
76
+ showAddReactionText: false,
77
+ subtleReactionsSummaryAndPicker: true,
78
+ onClick: handleClick
79
+ }))
80
+ });
81
+ };
@@ -82,7 +82,6 @@ export function getTooltip(status, errorMessage, tooltipContent) {
82
82
  case ReactionStatus.ready:
83
83
  return !!tooltipContent ? tooltipContent : jsx(FormattedMessage, messages.addReaction);
84
84
  }
85
- ;
86
85
  }
87
86
 
88
87
  /**
@@ -125,7 +124,8 @@ export const Reactions = /*#__PURE__*/React.memo(({
125
124
  noRelativeContainer = false,
126
125
  showSubtleDefaultReactions,
127
126
  reactionPickerTriggerToolipContent,
128
- reactionPickerTriggerIcon
127
+ reactionPickerTriggerIcon,
128
+ allowSelectFromSummaryView = false
129
129
  }) => {
130
130
  const [selectedEmojiId, setSelectedEmojiId] = useState();
131
131
  const {
@@ -275,6 +275,7 @@ export const Reactions = /*#__PURE__*/React.memo(({
275
275
  emojiProvider: emojiProvider,
276
276
  flash: flash,
277
277
  particleEffectByEmoji: particleEffectByEmoji,
278
+ onSelection: handleOnSelection,
278
279
  onReactionClick: onReactionClick,
279
280
  onReactionFocused: handleReactionFocused,
280
281
  onReactionMouseEnter: handleReactionMouseEnter,
@@ -285,7 +286,13 @@ export const Reactions = /*#__PURE__*/React.memo(({
285
286
  source: 'summaryView'
286
287
  }),
287
288
  allowUserDialog: allowUserDialog && hasEmojiWithFivePlusReactions,
288
- isViewOnly: isViewOnly
289
+ isViewOnly: isViewOnly,
290
+ allowSelectFromSummaryView: allowSelectFromSummaryView,
291
+ disabled: status !== ReactionStatus.ready,
292
+ reactionPickerTriggerIcon: reactionPickerTriggerIcon,
293
+ tooltipContent: getTooltip(status, errorMessage, reactionPickerTriggerToolipContent),
294
+ emojiPickerSize: emojiPickerSize,
295
+ onOpen: handlePickerOpen
289
296
  })) : memorizedReactions.map(reaction => jsx(Reaction, {
290
297
  key: reaction.emojiId,
291
298
  reaction: reaction,
@@ -300,7 +307,7 @@ export const Reactions = /*#__PURE__*/React.memo(({
300
307
  handleOpenReactionsDialog: handleOpenReactionsDialog,
301
308
  isViewOnly: isViewOnly,
302
309
  showSubtleStyle: showSubtleDefaultReactions && reactions.length === 0
303
- }))), !isViewOnly && jsx(ReactionPicker
310
+ }))), isViewOnly || allowSelectFromSummaryView ? null : jsx(ReactionPicker
304
311
  // eslint-disable-next-line @atlaskit/ui-styling-standard/no-imported-style-values -- Ignored via go/DSP-18766
305
312
  , {
306
313
  css: reactionPickerStyle,
@@ -18,7 +18,6 @@ export default {
18
18
  'reactions.dialog.close': 'Zavřít',
19
19
  'reactions.dialog.emoji.name': '{emojiName}',
20
20
  'reactions.dialog.left.navigate': 'Navigace doleva',
21
- 'reactions.dialog.people-who-reacted.subheader': 'Lidé, kteří reagovali smajlíkem {emojiShortName}',
22
21
  'reactions.dialog.reactions.count': '{count, plural, one {{count,number} reakce celkem} few {{count,number} reakce celkem} many {{count,number} reakce celkem} other {{count,number} reakcí celkem}}',
23
22
  'reactions.dialog.right.navigate': 'Navigace doprava',
24
23
  'reactions.dialog.viewall': 'Zobrazit vše',
@@ -18,7 +18,6 @@ export default {
18
18
  'reactions.dialog.close': 'Luk',
19
19
  'reactions.dialog.emoji.name': '{emojiName}',
20
20
  'reactions.dialog.left.navigate': 'Navigation til venstre',
21
- 'reactions.dialog.people-who-reacted.subheader': 'Personer der reagerede med {emojiShortName}',
22
21
  'reactions.dialog.reactions.count': '{count, plural, one {{count,number} reaktion i alt} other {{count,number} reaktioner i alt}}',
23
22
  'reactions.dialog.right.navigate': 'Navigation til højre',
24
23
  'reactions.dialog.viewall': 'Vis alle',
@@ -17,7 +17,6 @@ export default {
17
17
  'reaction-picker-trigger.add.reaction.message': 'Eine Reaktion hinzufügen',
18
18
  'reactions.dialog.close': 'Schließen',
19
19
  'reactions.dialog.left.navigate': 'Nach links navigieren',
20
- 'reactions.dialog.people-who-reacted.subheader': 'Personen, die mit {emojiShortName} reagiert haben',
21
20
  'reactions.dialog.reactions.count': '{count, plural, one {{count,number} Reaktion insgesamt} other {{count,number} Reaktionen insgesamt}}',
22
21
  'reactions.dialog.right.navigate': 'Nach rechts navigieren',
23
22
  'reactions.dialog.viewall': 'Alle anzeigen',
@@ -18,7 +18,6 @@ export default {
18
18
  'reactions.dialog.close': 'Close',
19
19
  'reactions.dialog.emoji.name': '{emojiName}',
20
20
  'reactions.dialog.left.navigate': 'Left Navigate',
21
- 'reactions.dialog.people-who-reacted.subheader': 'People who reacted with {emojiShortName}',
22
21
  'reactions.dialog.reactions.count': '{count, plural, one {# total reaction} other {# total reactions} }',
23
22
  'reactions.dialog.right.navigate': 'Right Navigate',
24
23
  'reactions.dialog.viewall': 'View all',
@@ -18,7 +18,6 @@ export default {
18
18
  'reactions.dialog.close': 'Close',
19
19
  'reactions.dialog.emoji.name': '{emojiName}',
20
20
  'reactions.dialog.left.navigate': 'Left Navigate',
21
- 'reactions.dialog.people-who-reacted.subheader': 'People who reacted with {emojiShortName}',
22
21
  'reactions.dialog.reactions.count': '{count, plural, one {# total reaction} other {# total reactions} }',
23
22
  'reactions.dialog.right.navigate': 'Right Navigate',
24
23
  'reactions.dialog.viewall': 'View all',
@@ -18,7 +18,6 @@ export default {
18
18
  'reactions.dialog.close': '⁣⁢Close‍⁡‌؜‍⁡‌‌⁣⁤',
19
19
  'reactions.dialog.emoji.name': '⁣⁢{emojiName}⁡‌‌‍؜⁠⁡‍⁡؜⁠‌‌‍‍⁡⁣⁤',
20
20
  'reactions.dialog.left.navigate': '⁣⁢Left Navigate؜‍‌؜⁠؜⁡‍⁠⁠⁡⁣⁤',
21
- 'reactions.dialog.people-who-reacted.subheader': '⁣⁢People who reacted with {emojiShortName}⁠⁡‍‌‌‌‍‌‍⁣⁤',
22
21
  'reactions.dialog.reactions.count': '{count, plural, one {⁣⁢{count,number} total reaction؜‍⁡‌⁠⁠‌‌‌؜⁣⁤} other {⁣⁢{count,number} total reactions؜‍⁡‌⁠⁠‌‌‌؜⁣⁤}}',
23
22
  'reactions.dialog.right.navigate': '⁣⁢Right Navigate⁠؜؜⁠‌‌⁡‍‍⁠⁠⁣⁤',
24
23
  'reactions.dialog.viewall': '⁣⁢View all‌‌⁡⁠⁡‌؜⁣⁤',
@@ -18,7 +18,6 @@ export default {
18
18
  'reactions.dialog.close': 'Cerrar',
19
19
  'reactions.dialog.emoji.name': '{emojiName}',
20
20
  'reactions.dialog.left.navigate': 'Desplazarse hacia la izquierda',
21
- 'reactions.dialog.people-who-reacted.subheader': 'Personas que han reaccionado con {emojiShortName}',
22
21
  'reactions.dialog.reactions.count': '{count, plural, one {{count,number} reacción total} other {{count,number} reacciones totales}}',
23
22
  'reactions.dialog.right.navigate': 'Desplazarse hacia la derecha',
24
23
  'reactions.dialog.viewall': 'Ver todo',
@@ -17,7 +17,6 @@ export default {
17
17
  'reaction-picker-trigger.add.reaction.message': 'Lisää reaktio',
18
18
  'reactions.dialog.close': 'Sulje',
19
19
  'reactions.dialog.left.navigate': 'Navigointi vasemmalle',
20
- 'reactions.dialog.people-who-reacted.subheader': 'Henkilöt, jotka reagoivat emojilla {emojiShortName}',
21
20
  'reactions.dialog.reactions.count': '{count, plural, one {Yhteensä {count,number} reaktio} other {Yhteensä {count,number} reaktiota}}',
22
21
  'reactions.dialog.right.navigate': 'Navigointi oikealle',
23
22
  'reactions.dialog.viewall': 'Näytä kaikki',
@@ -18,7 +18,6 @@ export default {
18
18
  'reactions.dialog.close': 'Fermer',
19
19
  'reactions.dialog.emoji.name': '{emojiName}',
20
20
  'reactions.dialog.left.navigate': 'Naviguer vers la gauche',
21
- 'reactions.dialog.people-who-reacted.subheader': 'Personnes qui ont réagi par {emojiShortName}',
22
21
  'reactions.dialog.reactions.count': '{count, plural, one {{count,number} réaction au total} other {{count,number} réactions au total}}',
23
22
  'reactions.dialog.right.navigate': 'Naviguer vers la droite',
24
23
  'reactions.dialog.viewall': 'Afficher tout',
@@ -18,7 +18,6 @@ export default {
18
18
  'reactions.dialog.close': 'Bezárás',
19
19
  'reactions.dialog.emoji.name': '{emojiName}',
20
20
  'reactions.dialog.left.navigate': 'Balra navigálás',
21
- 'reactions.dialog.people-who-reacted.subheader': 'A következővel reagáló felhasználók: {emojiShortName}',
22
21
  'reactions.dialog.reactions.count': '{count, plural, one {{count,number} reakció összesen} other {{count,number} reakció összesen}}',
23
22
  'reactions.dialog.right.navigate': 'Jobbra navigálás',
24
23
  'reactions.dialog.viewall': 'Összes megtekintése',
@@ -18,7 +18,6 @@ export default {
18
18
  'reactions.dialog.close': 'Chiudi',
19
19
  'reactions.dialog.emoji.name': '{emojiName}',
20
20
  'reactions.dialog.left.navigate': 'Navigazione a sinistra',
21
- 'reactions.dialog.people-who-reacted.subheader': 'Persone che hanno reagito con {emojiShortName}',
22
21
  'reactions.dialog.reactions.count': '{count, plural, one {{count,number} reazione in totale} other {{count,number} reazioni in totale}}',
23
22
  'reactions.dialog.right.navigate': 'Navigazione a destra',
24
23
  'reactions.dialog.viewall': 'Visualizza tutto',
@@ -18,7 +18,6 @@ export default {
18
18
  'reactions.dialog.close': '閉じる',
19
19
  'reactions.dialog.emoji.name': '{emojiName}',
20
20
  'reactions.dialog.left.navigate': '左に移動',
21
- 'reactions.dialog.people-who-reacted.subheader': '{emojiShortName} でリアクションしたユーザー',
22
21
  'reactions.dialog.reactions.count': '{count, plural, other {合計 {count,number} 件のリアクション}}',
23
22
  'reactions.dialog.right.navigate': '右に移動',
24
23
  'reactions.dialog.viewall': 'すべて表示',
@@ -17,8 +17,7 @@ export default {
17
17
  'reaction-picker-trigger.add.reaction.message': '반응 추가',
18
18
  'reactions.dialog.close': '닫기',
19
19
  'reactions.dialog.left.navigate': '왼쪽 탐색',
20
- 'reactions.dialog.people-who-reacted.subheader': '{emojiShortName} 이모지로 반응한 사용자',
21
- 'reactions.dialog.reactions.count': '{count, plural, other {반응 총 {count,number}개}}',
20
+ 'reactions.dialog.reactions.count': '{count, plural, other {총 {count,number}개 반응}}',
22
21
  'reactions.dialog.right.navigate': '오른쪽 탐색',
23
22
  'reactions.dialog.viewall': '모두 보기',
24
23
  'reactions.dialog.viewall.tooltip': '사용자 반응 모두 보기'
@@ -17,7 +17,6 @@ export default {
17
17
  'reaction-picker-trigger.add.reaction.message': 'Legg til en reaksjon',
18
18
  'reactions.dialog.close': 'Lukk',
19
19
  'reactions.dialog.left.navigate': 'Naviger til venstre',
20
- 'reactions.dialog.people-who-reacted.subheader': 'Personer som reagerte med {emojiShortName}',
21
20
  'reactions.dialog.reactions.count': '{count, plural, one {{count,number} reaksjon totalt} other {{count,number} reaksjoner totalt}}',
22
21
  'reactions.dialog.right.navigate': 'Naviger til høyre',
23
22
  'reactions.dialog.viewall': 'Vis alle',
@@ -18,7 +18,6 @@ export default {
18
18
  'reactions.dialog.close': 'Sluiten',
19
19
  'reactions.dialog.emoji.name': '{emojiName}',
20
20
  'reactions.dialog.left.navigate': 'Navigeer naar links',
21
- 'reactions.dialog.people-who-reacted.subheader': 'Mensen die {emojiShortName} hebben gereageerd',
22
21
  'reactions.dialog.reactions.count': '{count, plural, one {{count,number} totale reactie} other {{count,number} totale reacties}}',
23
22
  'reactions.dialog.right.navigate': 'Navigeer naar rechts',
24
23
  'reactions.dialog.viewall': 'Alles bekijken',
@@ -18,7 +18,6 @@ export default {
18
18
  'reactions.dialog.close': 'Zamknij',
19
19
  'reactions.dialog.emoji.name': '{emojiName}',
20
20
  'reactions.dialog.left.navigate': 'Przejdź w lewo',
21
- 'reactions.dialog.people-who-reacted.subheader': 'Osoby, które zareagowały, przesyłając emoji {emojiShortName}',
22
21
  'reactions.dialog.reactions.count': '{count, plural, one {Łącznie {count,number} reakcja} few {Łącznie {count,number} reakcje} many {Łącznie {count,number} reakcji} other {Łącznie {count,number} reakcji}}',
23
22
  'reactions.dialog.right.navigate': 'Przejdź w prawo',
24
23
  'reactions.dialog.viewall': 'Wyświetl wszystkich',
@@ -18,7 +18,6 @@ export default {
18
18
  'reactions.dialog.close': 'Fechar',
19
19
  'reactions.dialog.emoji.name': '{emojiName}',
20
20
  'reactions.dialog.left.navigate': 'Navegar para a esquerda',
21
- 'reactions.dialog.people-who-reacted.subheader': 'Pessoas que reagiram com {emojiShortName}',
22
21
  'reactions.dialog.reactions.count': '{count, plural, one {{count,number} reação total} other {{count,number} reações totais}}',
23
22
  'reactions.dialog.right.navigate': 'Navegar para a direita',
24
23
  'reactions.dialog.viewall': 'Ver tudo',
@@ -17,7 +17,6 @@ export default {
17
17
  'reaction-picker-trigger.add.reaction.message': 'Добавьте реакцию',
18
18
  'reactions.dialog.close': 'Закрыть',
19
19
  'reactions.dialog.left.navigate': 'Навигация влево',
20
- 'reactions.dialog.people-who-reacted.subheader': 'Люди, которые оставили реакцию {emojiShortName}',
21
20
  'reactions.dialog.reactions.count': '{count, plural, one {Всего реакций: {count,number}} few {Всего реакций: {count,number}} many {Всего реакций: {count,number}} other {Всего реакций: {count,number}}}',
22
21
  'reactions.dialog.right.navigate': 'Навигация вправо',
23
22
  'reactions.dialog.viewall': 'Просмотреть все',
@@ -18,7 +18,6 @@ export default {
18
18
  'reactions.dialog.close': 'Stäng',
19
19
  'reactions.dialog.emoji.name': '{emojiName}',
20
20
  'reactions.dialog.left.navigate': 'Vänster navigering',
21
- 'reactions.dialog.people-who-reacted.subheader': 'Personer som reagerade med {emojiShortName}',
22
21
  'reactions.dialog.reactions.count': '{count, plural, one {{count,number} reaktion} other {{count,number} reaktioner}}',
23
22
  'reactions.dialog.right.navigate': 'Höger navigering',
24
23
  'reactions.dialog.viewall': 'Visa alla',
@@ -18,7 +18,6 @@ export default {
18
18
  'reactions.dialog.close': 'ปิด',
19
19
  'reactions.dialog.emoji.name': '{emojiName}',
20
20
  'reactions.dialog.left.navigate': 'นำทางไปทางซ้าย',
21
- 'reactions.dialog.people-who-reacted.subheader': 'ผู้ที่แสดงปฏิกิริยาด้วยเอโมจิ {emojiShortName}',
22
21
  'reactions.dialog.reactions.count': '{count, plural, other {การโต้ตอบทั้งหมด {count,number} ครั้ง}}',
23
22
  'reactions.dialog.right.navigate': 'นำทางไปทางขวา',
24
23
  'reactions.dialog.viewall': 'ดูทั้งหมด',
@@ -18,7 +18,6 @@ export default {
18
18
  'reactions.dialog.close': 'Kapat',
19
19
  'reactions.dialog.emoji.name': '{emojiName}',
20
20
  'reactions.dialog.left.navigate': 'Sol Gezinme',
21
- 'reactions.dialog.people-who-reacted.subheader': '{emojiShortName} ile tepki veren kişiler',
22
21
  'reactions.dialog.reactions.count': '{count, plural, one {Toplam {count,number} tepki} other {Toplam {count,number} tepki}}',
23
22
  'reactions.dialog.right.navigate': 'Sağ Gezinme',
24
23
  'reactions.dialog.viewall': 'Tümünü göster',
@@ -18,8 +18,7 @@ export default {
18
18
  'reactions.dialog.close': 'Закрити',
19
19
  'reactions.dialog.emoji.name': '{emojiName}',
20
20
  'reactions.dialog.left.navigate': 'Перейти вліво',
21
- 'reactions.dialog.people-who-reacted.subheader': 'Люди, що додали реакцію {emojiShortName}',
22
- 'reactions.dialog.reactions.count': '{count, plural, one {Усього {count,number} реакція} few {Усього {count,number} реакції} many {Усього {count,number} реакцій} other {Усього {count,number} реакцій}}',
21
+ 'reactions.dialog.reactions.count': '{count, plural, one {Усього {count,number} реакція} few {Усього {count,number} реакції} many {Усього {count,number} реакцій} other {Усього {count,number} реакції}}',
23
22
  'reactions.dialog.right.navigate': 'Перейти вправо',
24
23
  'reactions.dialog.viewall': 'Переглянути все',
25
24
  'reactions.dialog.viewall.tooltip': 'Переглянути всі реакції користувачів'
@@ -18,7 +18,6 @@ export default {
18
18
  'reactions.dialog.close': 'Đóng',
19
19
  'reactions.dialog.emoji.name': '{emojiName}',
20
20
  'reactions.dialog.left.navigate': 'Sang trái',
21
- 'reactions.dialog.people-who-reacted.subheader': 'Những người đã tương tác bằng {emojiShortName}',
22
21
  'reactions.dialog.reactions.count': '{count, plural, other {Tổng số {count,number} lượt tương tác}}',
23
22
  'reactions.dialog.right.navigate': 'Sang phải',
24
23
  'reactions.dialog.viewall': 'Xem tất cả',
@@ -18,7 +18,6 @@ export default {
18
18
  'reactions.dialog.close': '关闭',
19
19
  'reactions.dialog.emoji.name': '{emojiName}',
20
20
  'reactions.dialog.left.navigate': '向左导航',
21
- 'reactions.dialog.people-who-reacted.subheader': '使用 {emojiShortName} 回应的人员',
22
21
  'reactions.dialog.reactions.count': '{count, plural, other {共 {count,number} 条回应}}',
23
22
  'reactions.dialog.right.navigate': '向右导航',
24
23
  'reactions.dialog.viewall': '查看全部',
@@ -17,7 +17,6 @@ export default {
17
17
  'reaction-picker-trigger.add.reaction.message': '新增回應',
18
18
  'reactions.dialog.close': '關閉',
19
19
  'reactions.dialog.left.navigate': '左側導覽',
20
- 'reactions.dialog.people-who-reacted.subheader': '使用 {emojiShortName} 回應的人',
21
20
  'reactions.dialog.reactions.count': '{count, plural, other {{count,number} 個回應總計}}',
22
21
  'reactions.dialog.right.navigate': '右側導覽',
23
22
  'reactions.dialog.viewall': '查看全部',
@@ -4,7 +4,7 @@ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t =
4
4
  import { createAndFireEvent } from '@atlaskit/analytics-next';
5
5
  import { UI_EVENT_TYPE, OPERATIONAL_EVENT_TYPE } from '@atlaskit/analytics-gas-types';
6
6
  var packageName = "@atlaskit/reactions";
7
- var packageVersion = "27.0.0";
7
+ var packageVersion = "27.1.0";
8
8
  /**
9
9
  * TODO: move to utility package?
10
10
  * A random sampling function
@@ -2,7 +2,7 @@ import _toConsumableArray from "@babel/runtime/helpers/toConsumableArray";
2
2
  import React, { forwardRef, useMemo } from 'react';
3
3
  import { useIntl } from 'react-intl-next';
4
4
  import { ResourcedEmoji } from '@atlaskit/emoji';
5
- import { Inline, xcss, Box } from '@atlaskit/primitives';
5
+ import { Inline, xcss, Box, Flex } from '@atlaskit/primitives';
6
6
  import { messages } from '../../shared/i18n';
7
7
  import { Counter } from '../Counter';
8
8
  import { ReactionButton } from '../Reaction';
@@ -17,6 +17,9 @@ var buttonStyle = xcss({
17
17
  paddingBottom: 'space.050',
18
18
  paddingLeft: 'space.100'
19
19
  });
20
+ var compactButtonStyle = xcss({
21
+ height: '22px'
22
+ });
20
23
  var opaqueBackgroundStyles = xcss({
21
24
  backgroundColor: 'elevation.surface',
22
25
  ':hover': {
@@ -53,7 +56,9 @@ export var ReactionSummaryButton = /*#__PURE__*/forwardRef(function (_ref, ref)
53
56
  _ref$showOpaqueBackgr = _ref.showOpaqueBackground,
54
57
  showOpaqueBackground = _ref$showOpaqueBackgr === void 0 ? false : _ref$showOpaqueBackgr,
55
58
  _ref$subtleReactionsS = _ref.subtleReactionsSummaryAndPicker,
56
- subtleReactionsSummaryAndPicker = _ref$subtleReactionsS === void 0 ? false : _ref$subtleReactionsS;
59
+ subtleReactionsSummaryAndPicker = _ref$subtleReactionsS === void 0 ? false : _ref$subtleReactionsS,
60
+ _ref$useCompactStyles = _ref.useCompactStyles,
61
+ useCompactStyles = _ref$useCompactStyles === void 0 ? false : _ref$useCompactStyles;
57
62
  var intl = useIntl();
58
63
 
59
64
  // Helper function to sort reactions by count and return top N
@@ -72,14 +77,17 @@ export var ReactionSummaryButton = /*#__PURE__*/forwardRef(function (_ref, ref)
72
77
  }, [emojisToShow, reactions]);
73
78
  var buttonStyles = showOpaqueBackground ? [opaqueBackgroundStyles] : [];
74
79
  var subtleSummaryStyles = subtleReactionsSummaryAndPicker ? [hideBorderStyle] : [];
75
- return /*#__PURE__*/React.createElement(Box, {
80
+ var compactButtonStyles = useCompactStyles ? [compactButtonStyle] : [];
81
+ return /*#__PURE__*/React.createElement(Flex, {
76
82
  xcss: containerStyle,
77
- ref: ref
83
+ ref: ref,
84
+ alignItems: "center",
85
+ justifyContent: "center"
78
86
  }, /*#__PURE__*/React.createElement(ReactionButton, {
79
87
  onClick: onClick,
80
88
  testId: RENDER_SUMMARY_BUTTON_TESTID,
81
89
  ariaLabel: intl.formatMessage(messages.summary),
82
- additionalStyles: [].concat(buttonStyles, subtleSummaryStyles)
90
+ additionalStyles: [].concat(buttonStyles, subtleSummaryStyles, compactButtonStyles)
83
91
  }, /*#__PURE__*/React.createElement(Inline, {
84
92
  space: "space.050",
85
93
  xcss: buttonStyle
@@ -4,6 +4,7 @@ import React, { useCallback, useState } from 'react';
4
4
  import Popup from '@atlaskit/popup';
5
5
  import { Inline, xcss } from '@atlaskit/primitives';
6
6
  import { Reaction } from '../Reaction';
7
+ import { ReactionSummaryViewEmojiPicker } from './ReactionSummaryViewEmojiPicker';
7
8
  import { ReactionSummaryButton } from './ReactionSummaryButton';
8
9
  var summaryPopupStyles = xcss({
9
10
  padding: 'space.100',
@@ -35,7 +36,14 @@ export var ReactionSummaryView = function ReactionSummaryView(_ref) {
35
36
  allowUserDialog = _ref.allowUserDialog,
36
37
  handleOpenReactionsDialog = _ref.handleOpenReactionsDialog,
37
38
  _ref$isViewOnly = _ref.isViewOnly,
38
- isViewOnly = _ref$isViewOnly === void 0 ? false : _ref$isViewOnly;
39
+ isViewOnly = _ref$isViewOnly === void 0 ? false : _ref$isViewOnly,
40
+ allowSelectFromSummaryView = _ref.allowSelectFromSummaryView,
41
+ disabled = _ref.disabled,
42
+ emojiPickerSize = _ref.emojiPickerSize,
43
+ onSelection = _ref.onSelection,
44
+ tooltipContent = _ref.tooltipContent,
45
+ reactionPickerTriggerIcon = _ref.reactionPickerTriggerIcon,
46
+ onOpen = _ref.onOpen;
39
47
  var _useState = useState(false),
40
48
  _useState2 = _slicedToArray(_useState, 2),
41
49
  isSummaryPopupOpen = _useState2[0],
@@ -69,6 +77,14 @@ export var ReactionSummaryView = function ReactionSummaryView(_ref) {
69
77
  handleOpenReactionsDialog: handleOpenReactionsDialog,
70
78
  isViewOnly: isViewOnly
71
79
  });
80
+ }), allowSelectFromSummaryView && /*#__PURE__*/React.createElement(ReactionSummaryViewEmojiPicker, {
81
+ emojiProvider: emojiProvider,
82
+ disabled: disabled,
83
+ onSelection: onSelection,
84
+ emojiPickerSize: emojiPickerSize,
85
+ tooltipContent: tooltipContent,
86
+ reactionPickerTriggerIcon: reactionPickerTriggerIcon,
87
+ onOpen: onOpen
72
88
  }));
73
89
  },
74
90
  isOpen: isSummaryPopupOpen,
@@ -79,7 +95,8 @@ export var ReactionSummaryView = function ReactionSummaryView(_ref) {
79
95
  reactions: reactions,
80
96
  onClick: handleSummaryClick,
81
97
  showOpaqueBackground: showOpaqueBackground,
82
- subtleReactionsSummaryAndPicker: subtleReactionsSummaryAndPicker
98
+ subtleReactionsSummaryAndPicker: subtleReactionsSummaryAndPicker,
99
+ useCompactStyles: allowSelectFromSummaryView
83
100
  }));
84
101
  }
85
102
  });
@@ -0,0 +1,92 @@
1
+ import _extends from "@babel/runtime/helpers/extends";
2
+ import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
3
+ /**
4
+ * @jsxRuntime classic
5
+ * @jsx jsx
6
+ */
7
+ import { useCallback, useState } from 'react';
8
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/use-compiled -- Ignored via go/DSP-18766
9
+ import { jsx } from '@emotion/react';
10
+ import { EmojiPicker } from '@atlaskit/emoji/picker';
11
+ import Popup from '@atlaskit/popup';
12
+ import { PickerRender } from '../../ufo';
13
+ import { Trigger } from '../Trigger';
14
+ ;
15
+ export var ReactionSummaryViewEmojiPicker = function ReactionSummaryViewEmojiPicker(_ref) {
16
+ var emojiProvider = _ref.emojiProvider,
17
+ onSelection = _ref.onSelection,
18
+ emojiPickerSize = _ref.emojiPickerSize,
19
+ disabled = _ref.disabled,
20
+ reactionPickerTriggerIcon = _ref.reactionPickerTriggerIcon,
21
+ tooltipContent = _ref.tooltipContent,
22
+ onOpen = _ref.onOpen;
23
+ var _useState = useState(false),
24
+ _useState2 = _slicedToArray(_useState, 2),
25
+ isOpen = _useState2[0],
26
+ setIsOpen = _useState2[1];
27
+ var handleClick = function handleClick() {
28
+ // ufo start reactions picker open experience
29
+ PickerRender.start();
30
+ setIsOpen(function (prevIsOpen) {
31
+ return !prevIsOpen;
32
+ });
33
+ onOpen && onOpen();
34
+
35
+ // ufo reactions picker opened success
36
+ PickerRender.success();
37
+ };
38
+
39
+ /**
40
+ * Event callback when the picker is closed
41
+ * @param _id Optional id if an emoji button was selected or undefined if was clicked outside the picker
42
+ */
43
+ var close = useCallback(function (_id) {
44
+ setIsOpen(false);
45
+ // ufo abort reaction experience
46
+ PickerRender.abort({
47
+ metadata: {
48
+ emojiId: _id,
49
+ source: 'ReactionPicker',
50
+ reason: 'close dialog'
51
+ }
52
+ });
53
+ }, [setIsOpen]);
54
+
55
+ /**
56
+ * Event callback when an emoji icon is selected
57
+ * @param item selected item
58
+ */
59
+ var onEmojiSelected = useCallback(function (item) {
60
+ // no emoji was selected
61
+ if (!item.id) {
62
+ return;
63
+ }
64
+ onSelection(item.id, 'emojiPicker');
65
+ close(item.id);
66
+ }, [onSelection, close]);
67
+ return jsx(Popup, {
68
+ testId: "reaction-summary-view-emoji-picker",
69
+ isOpen: isOpen,
70
+ placement: "right",
71
+ onClose: function onClose() {
72
+ return close();
73
+ },
74
+ content: function content() {
75
+ return jsx(EmojiPicker, {
76
+ emojiProvider: emojiProvider,
77
+ onSelection: onEmojiSelected,
78
+ size: emojiPickerSize
79
+ });
80
+ },
81
+ trigger: function trigger(triggerProps) {
82
+ return jsx(Trigger, _extends({}, triggerProps, {
83
+ disabled: disabled,
84
+ reactionPickerTriggerIcon: reactionPickerTriggerIcon,
85
+ tooltipContent: tooltipContent,
86
+ showAddReactionText: false,
87
+ subtleReactionsSummaryAndPicker: true,
88
+ onClick: handleClick
89
+ }));
90
+ }
91
+ });
92
+ };
@@ -84,7 +84,6 @@ export function getTooltip(status, errorMessage, tooltipContent) {
84
84
  case ReactionStatus.ready:
85
85
  return !!tooltipContent ? tooltipContent : jsx(FormattedMessage, messages.addReaction);
86
86
  }
87
- ;
88
87
  }
89
88
 
90
89
  /**
@@ -148,7 +147,9 @@ export var Reactions = /*#__PURE__*/React.memo(function (_ref) {
148
147
  noRelativeContainer = _ref$noRelativeContai === void 0 ? false : _ref$noRelativeContai,
149
148
  showSubtleDefaultReactions = _ref.showSubtleDefaultReactions,
150
149
  reactionPickerTriggerToolipContent = _ref.reactionPickerTriggerToolipContent,
151
- reactionPickerTriggerIcon = _ref.reactionPickerTriggerIcon;
150
+ reactionPickerTriggerIcon = _ref.reactionPickerTriggerIcon,
151
+ _ref$allowSelectFromS = _ref.allowSelectFromSummaryView,
152
+ allowSelectFromSummaryView = _ref$allowSelectFromS === void 0 ? false : _ref$allowSelectFromS;
152
153
  var _useState = useState(),
153
154
  _useState2 = _slicedToArray(_useState, 2),
154
155
  selectedEmojiId = _useState2[0],
@@ -309,6 +310,7 @@ export var Reactions = /*#__PURE__*/React.memo(function (_ref) {
309
310
  emojiProvider: emojiProvider,
310
311
  flash: flash,
311
312
  particleEffectByEmoji: particleEffectByEmoji,
313
+ onSelection: handleOnSelection,
312
314
  onReactionClick: onReactionClick,
313
315
  onReactionFocused: handleReactionFocused,
314
316
  onReactionMouseEnter: handleReactionMouseEnter,
@@ -321,7 +323,13 @@ export var Reactions = /*#__PURE__*/React.memo(function (_ref) {
321
323
  });
322
324
  },
323
325
  allowUserDialog: allowUserDialog && hasEmojiWithFivePlusReactions,
324
- isViewOnly: isViewOnly
326
+ isViewOnly: isViewOnly,
327
+ allowSelectFromSummaryView: allowSelectFromSummaryView,
328
+ disabled: status !== ReactionStatus.ready,
329
+ reactionPickerTriggerIcon: reactionPickerTriggerIcon,
330
+ tooltipContent: getTooltip(status, errorMessage, reactionPickerTriggerToolipContent),
331
+ emojiPickerSize: emojiPickerSize,
332
+ onOpen: handlePickerOpen
325
333
  })) : memorizedReactions.map(function (reaction) {
326
334
  return jsx(Reaction, {
327
335
  key: reaction.emojiId,
@@ -338,7 +346,7 @@ export var Reactions = /*#__PURE__*/React.memo(function (_ref) {
338
346
  isViewOnly: isViewOnly,
339
347
  showSubtleStyle: showSubtleDefaultReactions && reactions.length === 0
340
348
  });
341
- })), !isViewOnly && jsx(ReactionPicker
349
+ })), isViewOnly || allowSelectFromSummaryView ? null : jsx(ReactionPicker
342
350
  // eslint-disable-next-line @atlaskit/ui-styling-standard/no-imported-style-values -- Ignored via go/DSP-18766
343
351
  , {
344
352
  css: reactionPickerStyle,
@@ -18,7 +18,6 @@ export default {
18
18
  'reactions.dialog.close': 'Zavřít',
19
19
  'reactions.dialog.emoji.name': '{emojiName}',
20
20
  'reactions.dialog.left.navigate': 'Navigace doleva',
21
- 'reactions.dialog.people-who-reacted.subheader': 'Lidé, kteří reagovali smajlíkem {emojiShortName}',
22
21
  'reactions.dialog.reactions.count': '{count, plural, one {{count,number} reakce celkem} few {{count,number} reakce celkem} many {{count,number} reakce celkem} other {{count,number} reakcí celkem}}',
23
22
  'reactions.dialog.right.navigate': 'Navigace doprava',
24
23
  'reactions.dialog.viewall': 'Zobrazit vše',