@atlaskit/reactions 21.5.1 → 21.6.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 (310) hide show
  1. package/CHANGELOG.md +11 -0
  2. package/MockReactionsClient/package.json +7 -0
  3. package/dist/cjs/{client/MockReactionsClient.js → MockReactionsClient.js} +4 -6
  4. package/dist/cjs/analytics/analytics.js +141 -0
  5. package/dist/cjs/analytics/index.js +4 -134
  6. package/dist/cjs/client/ReactionServiceClient.js +29 -6
  7. package/dist/cjs/client/index.js +1 -33
  8. package/dist/cjs/components/{Counter.js → Counter/Counter.js} +32 -39
  9. package/dist/cjs/components/Counter/index.js +36 -0
  10. package/dist/cjs/components/Counter/styles.js +33 -0
  11. package/dist/cjs/components/EmojiButton/EmojiButton.js +58 -0
  12. package/dist/cjs/components/EmojiButton/index.js +19 -0
  13. package/dist/cjs/components/EmojiButton/styles.js +25 -0
  14. package/dist/cjs/components/FlashAnimation/FlashAnimation.js +42 -0
  15. package/dist/cjs/components/FlashAnimation/index.js +19 -0
  16. package/dist/cjs/components/{FlashAnimation.js → FlashAnimation/styles.js} +7 -26
  17. package/dist/cjs/components/Reaction/Reaction.js +163 -0
  18. package/dist/cjs/components/Reaction/index.js +19 -0
  19. package/dist/cjs/components/Reaction/styles.js +70 -0
  20. package/dist/cjs/components/ReactionPicker/ReactionPicker.js +272 -0
  21. package/dist/cjs/components/ReactionPicker/index.js +19 -0
  22. package/dist/cjs/components/ReactionPicker/styles.js +37 -0
  23. package/dist/cjs/components/ReactionTooltip/ReactionTooltip.js +71 -0
  24. package/dist/cjs/components/ReactionTooltip/index.js +19 -0
  25. package/dist/cjs/components/ReactionTooltip/styles.js +46 -0
  26. package/dist/cjs/components/Reactions/Reactions.js +200 -0
  27. package/dist/cjs/components/Reactions/index.js +25 -0
  28. package/dist/cjs/components/Reactions/styles.js +29 -0
  29. package/dist/cjs/components/Selector/Selector.js +132 -0
  30. package/dist/cjs/components/Selector/index.js +30 -0
  31. package/dist/cjs/components/Selector/styles.js +56 -0
  32. package/dist/cjs/components/ShowMore/ShowMore.js +71 -0
  33. package/dist/cjs/components/ShowMore/index.js +19 -0
  34. package/dist/cjs/components/ShowMore/styles.js +44 -0
  35. package/dist/cjs/components/Trigger/Trigger.js +59 -0
  36. package/dist/cjs/components/Trigger/index.js +13 -0
  37. package/dist/cjs/components/Trigger/styles.js +46 -0
  38. package/dist/cjs/components/{UfoErrorBoundary.js → UfoErrorBoundary/UfoErrorBoundary.js} +3 -0
  39. package/dist/cjs/components/UfoErrorBoundary/index.js +13 -0
  40. package/dist/cjs/containers/ConnectedReactionPicker/ConnectedReactionPicker.js +62 -0
  41. package/dist/cjs/containers/ConnectedReactionPicker/index.js +13 -0
  42. package/dist/cjs/containers/ConnectedReactionsView/ConnectedReactionsView.js +258 -0
  43. package/dist/cjs/containers/ConnectedReactionsView/index.js +13 -0
  44. package/dist/cjs/containers/index.js +23 -13
  45. package/dist/cjs/hooks/index.js +13 -0
  46. package/dist/cjs/hooks/useClickAway.js +35 -0
  47. package/dist/cjs/index.js +8 -0
  48. package/dist/cjs/shared/constants.js +39 -8
  49. package/dist/cjs/{components → shared}/i18n.js +1 -1
  50. package/dist/cjs/shared/index.js +11 -3
  51. package/dist/cjs/shared/utils.js +54 -0
  52. package/dist/cjs/store/{ReactionsStore.js → MemoryReactionsStore.js} +37 -18
  53. package/dist/cjs/store/ReactionConsumer.js +43 -15
  54. package/dist/cjs/store/index.js +8 -2
  55. package/dist/cjs/store/utils.js +4 -10
  56. package/dist/cjs/{client/ReactionClient.js → types/client.js} +0 -0
  57. package/dist/cjs/types/index.js +2 -2
  58. package/dist/cjs/types/reaction.js +43 -0
  59. package/dist/cjs/types/{DetailedReaction.js → store.js} +0 -0
  60. package/dist/cjs/version.json +1 -1
  61. package/dist/es2019/{client/MockReactionsClient.js → MockReactionsClient.js} +4 -5
  62. package/dist/es2019/analytics/analytics.js +64 -0
  63. package/dist/es2019/analytics/index.js +3 -65
  64. package/dist/es2019/analytics/ufo.js +0 -1
  65. package/dist/es2019/client/ReactionServiceClient.js +31 -6
  66. package/dist/es2019/client/index.js +1 -2
  67. package/dist/es2019/components/{Counter.js → Counter/Counter.js} +26 -31
  68. package/dist/es2019/components/Counter/index.js +3 -0
  69. package/dist/es2019/components/Counter/styles.js +20 -0
  70. package/dist/es2019/components/EmojiButton/EmojiButton.js +35 -0
  71. package/dist/es2019/components/EmojiButton/index.js +1 -0
  72. package/dist/es2019/components/EmojiButton/styles.js +16 -0
  73. package/dist/es2019/components/FlashAnimation/FlashAnimation.js +18 -0
  74. package/dist/es2019/components/FlashAnimation/index.js +1 -0
  75. package/dist/es2019/components/{FlashAnimation.js → FlashAnimation/styles.js} +6 -17
  76. package/dist/es2019/components/Reaction/Reaction.js +104 -0
  77. package/dist/es2019/components/Reaction/index.js +1 -0
  78. package/dist/es2019/components/Reaction/styles.js +55 -0
  79. package/dist/es2019/components/ReactionPicker/ReactionPicker.js +208 -0
  80. package/dist/es2019/components/ReactionPicker/index.js +1 -0
  81. package/dist/es2019/components/ReactionPicker/styles.js +23 -0
  82. package/dist/es2019/components/ReactionTooltip/ReactionTooltip.js +46 -0
  83. package/dist/es2019/components/ReactionTooltip/index.js +1 -0
  84. package/dist/es2019/components/ReactionTooltip/styles.js +32 -0
  85. package/dist/es2019/components/Reactions/Reactions.js +156 -0
  86. package/dist/es2019/components/Reactions/index.js +1 -0
  87. package/dist/es2019/components/Reactions/styles.js +19 -0
  88. package/dist/es2019/components/Selector/Selector.js +98 -0
  89. package/dist/es2019/components/Selector/index.js +3 -0
  90. package/dist/es2019/components/Selector/styles.js +39 -0
  91. package/dist/es2019/components/ShowMore/ShowMore.js +43 -0
  92. package/dist/es2019/components/ShowMore/index.js +1 -0
  93. package/dist/es2019/components/ShowMore/styles.js +30 -0
  94. package/dist/es2019/components/{Trigger.js → Trigger/Trigger.js} +15 -20
  95. package/dist/es2019/components/Trigger/index.js +1 -0
  96. package/dist/es2019/components/Trigger/styles.js +24 -0
  97. package/dist/es2019/components/{UfoErrorBoundary.js → UfoErrorBoundary/UfoErrorBoundary.js} +4 -0
  98. package/dist/es2019/components/UfoErrorBoundary/index.js +1 -0
  99. package/dist/es2019/containers/ConnectedReactionPicker/ConnectedReactionPicker.js +27 -0
  100. package/dist/es2019/containers/ConnectedReactionPicker/index.js +1 -0
  101. package/dist/es2019/containers/ConnectedReactionsView/ConnectedReactionsView.js +166 -0
  102. package/dist/es2019/containers/ConnectedReactionsView/index.js +1 -0
  103. package/dist/es2019/containers/index.js +2 -2
  104. package/dist/es2019/hooks/index.js +1 -0
  105. package/dist/es2019/hooks/useClickAway.js +27 -0
  106. package/dist/es2019/index.js +3 -1
  107. package/dist/es2019/shared/constants.js +32 -4
  108. package/dist/es2019/{components → shared}/i18n.js +1 -1
  109. package/dist/es2019/shared/index.js +6 -2
  110. package/dist/es2019/shared/utils.js +35 -0
  111. package/dist/es2019/store/{ReactionsStore.js → MemoryReactionsStore.js} +36 -17
  112. package/dist/es2019/store/ReactionConsumer.js +18 -12
  113. package/dist/es2019/store/index.js +1 -1
  114. package/dist/es2019/store/utils.js +8 -4
  115. package/dist/es2019/{client/ReactionClient.js → types/client.js} +0 -0
  116. package/dist/es2019/types/index.js +1 -1
  117. package/dist/es2019/types/reaction.js +34 -0
  118. package/dist/es2019/types/{DetailedReaction.js → store.js} +0 -0
  119. package/dist/es2019/version.json +1 -1
  120. package/dist/esm/{client/MockReactionsClient.js → MockReactionsClient.js} +4 -5
  121. package/dist/esm/analytics/analytics.js +99 -0
  122. package/dist/esm/analytics/index.js +3 -99
  123. package/dist/esm/analytics/ufo.js +0 -1
  124. package/dist/esm/client/ReactionServiceClient.js +30 -6
  125. package/dist/esm/client/index.js +1 -2
  126. package/dist/esm/components/{Counter.js → Counter/Counter.js} +26 -31
  127. package/dist/esm/components/Counter/index.js +3 -0
  128. package/dist/esm/components/Counter/styles.js +20 -0
  129. package/dist/esm/components/EmojiButton/EmojiButton.js +35 -0
  130. package/dist/esm/components/EmojiButton/index.js +1 -0
  131. package/dist/esm/components/EmojiButton/styles.js +16 -0
  132. package/dist/esm/components/FlashAnimation/FlashAnimation.js +20 -0
  133. package/dist/esm/components/FlashAnimation/index.js +1 -0
  134. package/dist/esm/components/{FlashAnimation.js → FlashAnimation/styles.js} +6 -19
  135. package/dist/esm/components/Reaction/Reaction.js +131 -0
  136. package/dist/esm/components/Reaction/index.js +1 -0
  137. package/dist/esm/components/Reaction/styles.js +55 -0
  138. package/dist/esm/components/ReactionPicker/ReactionPicker.js +243 -0
  139. package/dist/esm/components/ReactionPicker/index.js +1 -0
  140. package/dist/esm/components/ReactionPicker/styles.js +23 -0
  141. package/dist/esm/components/ReactionTooltip/ReactionTooltip.js +46 -0
  142. package/dist/esm/components/ReactionTooltip/index.js +1 -0
  143. package/dist/esm/components/ReactionTooltip/styles.js +32 -0
  144. package/dist/esm/components/Reactions/Reactions.js +166 -0
  145. package/dist/esm/components/Reactions/index.js +1 -0
  146. package/dist/esm/components/Reactions/styles.js +19 -0
  147. package/dist/esm/components/Selector/Selector.js +107 -0
  148. package/dist/esm/components/Selector/index.js +3 -0
  149. package/dist/esm/components/Selector/styles.js +41 -0
  150. package/dist/esm/components/ShowMore/ShowMore.js +46 -0
  151. package/dist/esm/components/ShowMore/index.js +1 -0
  152. package/dist/esm/components/ShowMore/styles.js +30 -0
  153. package/dist/esm/components/{Trigger.js → Trigger/Trigger.js} +15 -20
  154. package/dist/esm/components/Trigger/index.js +1 -0
  155. package/dist/esm/components/Trigger/styles.js +31 -0
  156. package/dist/esm/components/{UfoErrorBoundary.js → UfoErrorBoundary/UfoErrorBoundary.js} +4 -0
  157. package/dist/esm/components/UfoErrorBoundary/index.js +1 -0
  158. package/dist/esm/containers/ConnectedReactionPicker/ConnectedReactionPicker.js +46 -0
  159. package/dist/esm/containers/ConnectedReactionPicker/index.js +1 -0
  160. package/dist/esm/containers/ConnectedReactionsView/ConnectedReactionsView.js +227 -0
  161. package/dist/esm/containers/ConnectedReactionsView/index.js +1 -0
  162. package/dist/esm/containers/index.js +2 -2
  163. package/dist/esm/hooks/index.js +1 -0
  164. package/dist/esm/hooks/useClickAway.js +28 -0
  165. package/dist/esm/index.js +3 -1
  166. package/dist/esm/shared/constants.js +34 -4
  167. package/dist/esm/{components → shared}/i18n.js +1 -1
  168. package/dist/esm/shared/index.js +6 -2
  169. package/dist/esm/shared/utils.js +41 -0
  170. package/dist/esm/store/{ReactionsStore.js → MemoryReactionsStore.js} +36 -20
  171. package/dist/esm/store/ReactionConsumer.js +42 -15
  172. package/dist/esm/store/index.js +1 -1
  173. package/dist/esm/store/utils.js +8 -4
  174. package/dist/{es2019/types/ReactionSource.js → esm/types/client.js} +0 -0
  175. package/dist/esm/types/index.js +1 -1
  176. package/dist/esm/types/reaction.js +34 -0
  177. package/dist/{es2019/types/ReactionSummary.js → esm/types/store.js} +0 -0
  178. package/dist/esm/version.json +1 -1
  179. package/dist/types/{client/MockReactionsClient.d.ts → MockReactionsClient.d.ts} +4 -5
  180. package/dist/types/analytics/analytics.d.ts +96 -0
  181. package/dist/types/analytics/index.d.ts +1 -96
  182. package/dist/types/client/ReactionServiceClient.d.ts +27 -10
  183. package/dist/types/client/index.d.ts +0 -2
  184. package/dist/types/components/{Counter.d.ts → Counter/Counter.d.ts} +15 -7
  185. package/dist/types/components/Counter/index.d.ts +3 -0
  186. package/dist/types/components/Counter/styles.d.ts +3 -0
  187. package/dist/types/components/EmojiButton/EmojiButton.d.ts +22 -0
  188. package/dist/types/components/EmojiButton/index.d.ts +2 -0
  189. package/dist/types/components/EmojiButton/styles.d.ts +1 -0
  190. package/dist/types/components/FlashAnimation/FlashAnimation.d.ts +20 -0
  191. package/dist/types/components/FlashAnimation/index.d.ts +2 -0
  192. package/dist/types/components/FlashAnimation/styles.d.ts +3 -0
  193. package/dist/types/components/Reaction/Reaction.d.ts +38 -0
  194. package/dist/types/components/Reaction/index.d.ts +2 -0
  195. package/dist/types/components/Reaction/styles.d.ts +10 -0
  196. package/dist/types/components/{ReactionPicker.d.ts → ReactionPicker/ReactionPicker.d.ts} +12 -33
  197. package/dist/types/components/ReactionPicker/index.d.ts +2 -0
  198. package/dist/types/components/ReactionPicker/styles.d.ts +3 -0
  199. package/dist/types/components/ReactionTooltip/ReactionTooltip.d.ts +22 -0
  200. package/dist/types/components/ReactionTooltip/index.d.ts +2 -0
  201. package/dist/types/components/ReactionTooltip/styles.d.ts +4 -0
  202. package/dist/types/components/Reactions/Reactions.d.ts +64 -0
  203. package/dist/types/components/Reactions/index.d.ts +2 -0
  204. package/dist/types/components/Reactions/styles.d.ts +2 -0
  205. package/dist/types/components/Selector/Selector.d.ts +34 -0
  206. package/dist/types/components/Selector/index.d.ts +3 -0
  207. package/dist/types/components/Selector/styles.d.ts +10 -0
  208. package/dist/types/components/{ShowMore.d.ts → ShowMore/ShowMore.d.ts} +14 -13
  209. package/dist/types/components/ShowMore/index.d.ts +2 -0
  210. package/dist/types/components/ShowMore/styles.d.ts +3 -0
  211. package/dist/types/components/Trigger/Trigger.d.ts +23 -0
  212. package/dist/types/components/Trigger/index.d.ts +2 -0
  213. package/dist/types/components/Trigger/styles.d.ts +5 -0
  214. package/dist/types/components/UfoErrorBoundary/UfoErrorBoundary.d.ts +16 -0
  215. package/dist/types/components/UfoErrorBoundary/index.d.ts +2 -0
  216. package/dist/types/components/index.d.ts +4 -1
  217. package/dist/types/containers/ConnectedReactionPicker/ConnectedReactionPicker.d.ts +27 -0
  218. package/dist/types/containers/ConnectedReactionPicker/index.d.ts +2 -0
  219. package/dist/types/containers/ConnectedReactionsView/ConnectedReactionsView.d.ts +52 -0
  220. package/dist/types/containers/ConnectedReactionsView/index.d.ts +2 -0
  221. package/dist/types/containers/index.d.ts +2 -2
  222. package/dist/types/hooks/index.d.ts +1 -0
  223. package/dist/types/hooks/useClickAway.d.ts +8 -0
  224. package/dist/types/index.d.ts +2 -2
  225. package/dist/types/shared/constants.d.ts +13 -3
  226. package/dist/types/{components → shared}/i18n.d.ts +0 -0
  227. package/dist/types/shared/index.d.ts +3 -1
  228. package/dist/types/shared/utils.d.ts +11 -0
  229. package/dist/types/store/{ReactionsStore.d.ts → MemoryReactionsStore.d.ts} +21 -61
  230. package/dist/types/store/ReactionConsumer.d.ts +47 -19
  231. package/dist/types/store/index.d.ts +2 -2
  232. package/dist/types/store/utils.d.ts +3 -7
  233. package/dist/types/types/Actions.d.ts +3 -0
  234. package/dist/types/types/User.d.ts +6 -0
  235. package/dist/types/types/client.d.ts +38 -0
  236. package/dist/types/types/index.d.ts +4 -6
  237. package/dist/types/types/reaction.d.ts +82 -0
  238. package/dist/types/types/store.d.ts +63 -0
  239. package/extract-react-type/ConnectedReactionPicker.ts +2 -4
  240. package/extract-react-type/ConnectedReactionsView.ts +3 -5
  241. package/extract-react-type/Reaction.ts +2 -4
  242. package/extract-react-type/Reactions.ts +2 -4
  243. package/extract-react-type/actions.ts +1 -3
  244. package/extract-react-type/reactionClient.ts +3 -5
  245. package/extract-react-type/reactionsStore.ts +3 -5
  246. package/package.json +21 -5
  247. package/dist/cjs/components/EmojiButton.js +0 -100
  248. package/dist/cjs/components/Reaction.js +0 -229
  249. package/dist/cjs/components/ReactionPicker.js +0 -297
  250. package/dist/cjs/components/ReactionTooltip.js +0 -82
  251. package/dist/cjs/components/Reactions.js +0 -194
  252. package/dist/cjs/components/Selector.js +0 -189
  253. package/dist/cjs/components/ShowMore.js +0 -119
  254. package/dist/cjs/components/Trigger.js +0 -58
  255. package/dist/cjs/components/utils.js +0 -28
  256. package/dist/cjs/containers/ConnectedReactionPicker.js +0 -53
  257. package/dist/cjs/containers/ConnectedReactionsView.js +0 -139
  258. package/dist/cjs/types/ReactionSource.js +0 -5
  259. package/dist/cjs/types/ReactionStatus.js +0 -19
  260. package/dist/cjs/types/ReactionSummary.js +0 -5
  261. package/dist/cjs/types/Reactions.js +0 -5
  262. package/dist/cjs/types/ReactionsState.js +0 -5
  263. package/dist/es2019/components/EmojiButton.js +0 -50
  264. package/dist/es2019/components/Reaction.js +0 -183
  265. package/dist/es2019/components/ReactionPicker.js +0 -247
  266. package/dist/es2019/components/ReactionTooltip.js +0 -66
  267. package/dist/es2019/components/Reactions.js +0 -150
  268. package/dist/es2019/components/Selector.js +0 -127
  269. package/dist/es2019/components/ShowMore.js +0 -71
  270. package/dist/es2019/components/utils.js +0 -13
  271. package/dist/es2019/containers/ConnectedReactionPicker.js +0 -36
  272. package/dist/es2019/containers/ConnectedReactionsView.js +0 -118
  273. package/dist/es2019/types/ReactionStatus.js +0 -11
  274. package/dist/es2019/types/Reactions.js +0 -1
  275. package/dist/es2019/types/ReactionsState.js +0 -1
  276. package/dist/esm/client/ReactionClient.js +0 -1
  277. package/dist/esm/components/EmojiButton.js +0 -77
  278. package/dist/esm/components/Reaction.js +0 -207
  279. package/dist/esm/components/ReactionPicker.js +0 -274
  280. package/dist/esm/components/ReactionTooltip.js +0 -63
  281. package/dist/esm/components/Reactions.js +0 -180
  282. package/dist/esm/components/Selector.js +0 -160
  283. package/dist/esm/components/ShowMore.js +0 -95
  284. package/dist/esm/components/utils.js +0 -15
  285. package/dist/esm/containers/ConnectedReactionPicker.js +0 -38
  286. package/dist/esm/containers/ConnectedReactionsView.js +0 -116
  287. package/dist/esm/types/DetailedReaction.js +0 -1
  288. package/dist/esm/types/ReactionSource.js +0 -1
  289. package/dist/esm/types/ReactionStatus.js +0 -11
  290. package/dist/esm/types/ReactionSummary.js +0 -1
  291. package/dist/esm/types/Reactions.js +0 -1
  292. package/dist/esm/types/ReactionsState.js +0 -1
  293. package/dist/types/client/ReactionClient.d.ts +0 -28
  294. package/dist/types/components/EmojiButton.d.ts +0 -21
  295. package/dist/types/components/FlashAnimation.d.ts +0 -18
  296. package/dist/types/components/Reaction.d.ts +0 -44
  297. package/dist/types/components/ReactionTooltip.d.ts +0 -14
  298. package/dist/types/components/Reactions.d.ts +0 -83
  299. package/dist/types/components/Selector.d.ts +0 -39
  300. package/dist/types/components/Trigger.d.ts +0 -16
  301. package/dist/types/components/UfoErrorBoundary.d.ts +0 -9
  302. package/dist/types/components/utils.d.ts +0 -4
  303. package/dist/types/containers/ConnectedReactionPicker.d.ts +0 -16
  304. package/dist/types/containers/ConnectedReactionsView.d.ts +0 -31
  305. package/dist/types/types/DetailedReaction.d.ts +0 -7
  306. package/dist/types/types/ReactionSource.d.ts +0 -4
  307. package/dist/types/types/ReactionStatus.d.ts +0 -9
  308. package/dist/types/types/ReactionSummary.d.ts +0 -10
  309. package/dist/types/types/Reactions.d.ts +0 -4
  310. package/dist/types/types/ReactionsState.d.ts +0 -20
@@ -0,0 +1,272 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ var _typeof = require("@babel/runtime/helpers/typeof");
6
+
7
+ Object.defineProperty(exports, "__esModule", {
8
+ value: true
9
+ });
10
+ exports.ReactionPicker = exports.RENDER_REACTIONPICKER_TESTID = void 0;
11
+
12
+ var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
13
+
14
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
15
+
16
+ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
17
+
18
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
19
+
20
+ var _react = _interopRequireWildcard(require("react"));
21
+
22
+ var _core = require("@emotion/core");
23
+
24
+ var _picker = require("@atlaskit/emoji/picker");
25
+
26
+ var _popper = require("@atlaskit/popper");
27
+
28
+ var _constants = require("@atlaskit/theme/constants");
29
+
30
+ var _Selector = require("../Selector");
31
+
32
+ var _Trigger = require("../Trigger");
33
+
34
+ var _analytics = require("../../analytics");
35
+
36
+ var _hooks = require("../../hooks");
37
+
38
+ var styles = _interopRequireWildcard(require("./styles"));
39
+
40
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
41
+
42
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
43
+
44
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
45
+
46
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
47
+
48
+ /**
49
+ * Test id for wrapper ReactionPicker div
50
+ */
51
+ var RENDER_REACTIONPICKER_TESTID = 'reactionPicker-testid';
52
+ exports.RENDER_REACTIONPICKER_TESTID = RENDER_REACTIONPICKER_TESTID;
53
+ var popperModifiers = [
54
+ /**
55
+ Removing this applyStyle modifier as it throws client errors ref:
56
+ https://popper.js.org/docs/v1/#modifiers
57
+ https://popper.js.org/docs/v1/#modifiers..applyStyle
58
+ { name: 'applyStyle', enabled: false },
59
+ */
60
+ {
61
+ name: 'hide',
62
+ enabled: false
63
+ }, {
64
+ name: 'offset',
65
+ enabled: true,
66
+ options: {
67
+ offset: [0, 0]
68
+ }
69
+ }, {
70
+ name: 'flip',
71
+ enabled: true,
72
+ options: {
73
+ flipVariations: true,
74
+ boundariesElement: 'scrollParent'
75
+ }
76
+ }, {
77
+ name: 'preventOverflow',
78
+ enabled: true
79
+ }];
80
+
81
+ /**
82
+ * Picker component for adding reactions
83
+ */
84
+ var ReactionPicker = /*#__PURE__*/_react.default.memo(function (props) {
85
+ var miniMode = props.miniMode,
86
+ className = props.className,
87
+ emojiProvider = props.emojiProvider,
88
+ onSelection = props.onSelection,
89
+ allowAllEmojis = props.allowAllEmojis,
90
+ disabled = props.disabled,
91
+ pickerQuickReactionEmojiIds = props.pickerQuickReactionEmojiIds,
92
+ onShowMore = props.onShowMore,
93
+ onOpen = props.onOpen,
94
+ onCancel = props.onCancel;
95
+ /**
96
+ * Container <div /> reference (used by custom hook to detect click outside)
97
+ */
98
+
99
+ var wrapperRef = (0, _react.useRef)(null);
100
+ /**
101
+ * a function you can ask Popper to recompute your tooltip's position. It will directly call the Popper#update method
102
+ */
103
+
104
+ var updatePopper = (0, _react.useRef)(function () {
105
+ return Promise.resolve();
106
+ });
107
+
108
+ var _useState = (0, _react.useState)({
109
+ /**
110
+ * Show the picker floating panel
111
+ */
112
+ isOpen: false,
113
+
114
+ /**
115
+ * Show the full custom emoji list picker or the default list of emojis
116
+ */
117
+ showFullPicker: !!allowAllEmojis && Array.isArray(pickerQuickReactionEmojiIds) && pickerQuickReactionEmojiIds.length === 0
118
+ }),
119
+ _useState2 = (0, _slicedToArray2.default)(_useState, 2),
120
+ settings = _useState2[0],
121
+ setSettings = _useState2[1];
122
+ /**
123
+ * Custom hook triggers when user clicks outside the reactions picker
124
+ */
125
+
126
+
127
+ (0, _hooks.useClickAway)(wrapperRef, function () {
128
+ if (onCancel) {
129
+ onCancel();
130
+ }
131
+
132
+ close();
133
+ });
134
+ /**
135
+ * Event callback when the picker is closed
136
+ * @param _id Optional id if an emoji button was selected or undefineed if was clicked outside the picker
137
+ */
138
+
139
+ var close = (0, _react.useCallback)(function (_id) {
140
+ setSettings({
141
+ isOpen: false,
142
+ showFullPicker: !!allowAllEmojis && Array.isArray(pickerQuickReactionEmojiIds) && pickerQuickReactionEmojiIds.length === 0
143
+ }); // ufo abort reaction experience
144
+
145
+ _analytics.UFO.PickerRender.abort({
146
+ metadata: {
147
+ emojiId: _id,
148
+ source: 'Reaction-Picker',
149
+ reason: 'close dialog'
150
+ }
151
+ });
152
+ }, [allowAllEmojis, pickerQuickReactionEmojiIds]);
153
+ /**
154
+ * Event handle rwhen selecting to show the custom emoji icons picker
155
+ * @param e event param
156
+ */
157
+
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]);
191
+ /**
192
+ * Event callback when an emoji icon is selected
193
+ * @param item selected item
194
+ */
195
+
196
+ var onEmojiSelected = (0, _react.useCallback)(function (item) {
197
+ // no emoji was selected
198
+ if (!item.id) {
199
+ return;
200
+ }
201
+
202
+ onSelection(item.id, settings.showFullPicker ? 'emojiPicker' : 'quickSelector');
203
+ close(item.id);
204
+ }, [close, onSelection, settings.showFullPicker]);
205
+ /**
206
+ * Event handler when the emoji icon to open the custom picker is selected
207
+ */
208
+
209
+ var onTriggerClick = function onTriggerClick() {
210
+ // ufo start reactions picker open experience
211
+ _analytics.UFO.PickerRender.start();
212
+
213
+ setSettings({
214
+ isOpen: !settings.isOpen,
215
+ showFullPicker: !!allowAllEmojis && Array.isArray(pickerQuickReactionEmojiIds) && pickerQuickReactionEmojiIds.length === 0
216
+ });
217
+
218
+ if (onOpen) {
219
+ onOpen();
220
+ } // ufo reactions picker opened success
221
+
222
+
223
+ _analytics.UFO.PickerRender.success();
224
+ };
225
+
226
+ var wrapperClassName = " ".concat(settings.isOpen ? 'isOpen' : '', " ").concat(miniMode ? 'miniMode' : '', " ").concat(className);
227
+ return (0, _core.jsx)("div", {
228
+ className: wrapperClassName,
229
+ css: styles.pickerStyle,
230
+ ref: wrapperRef,
231
+ "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;
234
+ return (// Render a button to open the <Selector /> panel
235
+ (0, _core.jsx)(_Trigger.Trigger, {
236
+ ref: popperRef,
237
+ onClick: onTriggerClick,
238
+ miniMode: miniMode,
239
+ disabled: disabled
240
+ })
241
+ );
242
+ }), (0, _core.jsx)(_popper.Popper, {
243
+ placement: "bottom-start",
244
+ modifiers: popperModifiers
245
+ }, function (_ref3) {
246
+ var ref = _ref3.ref,
247
+ style = _ref3.style,
248
+ update = _ref3.update;
249
+ updatePopper.current = update;
250
+ return (0, _core.jsx)(_react.Fragment, null, settings.isOpen && (0, _core.jsx)("div", {
251
+ style: _objectSpread({
252
+ zIndex: _constants.layers.layer()
253
+ }, style),
254
+ ref: ref
255
+ }, (0, _core.jsx)("div", {
256
+ css: styles.popupStyle
257
+ }, settings.showFullPicker ? (0, _core.jsx)(_picker.EmojiPicker, {
258
+ emojiProvider: emojiProvider,
259
+ onSelection: onEmojiSelected
260
+ }) : (0, _core.jsx)("div", {
261
+ css: styles.contentStyle
262
+ }, (0, _core.jsx)(_Selector.Selector, {
263
+ emojiProvider: emojiProvider,
264
+ onSelection: onEmojiSelected,
265
+ showMore: allowAllEmojis,
266
+ onMoreClick: onSelectMoreClick,
267
+ pickerQuickReactionEmojiIds: pickerQuickReactionEmojiIds
268
+ })))));
269
+ })));
270
+ });
271
+
272
+ exports.ReactionPicker = ReactionPicker;
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ Object.defineProperty(exports, "RENDER_REACTIONPICKER_TESTID", {
7
+ enumerable: true,
8
+ get: function get() {
9
+ return _ReactionPicker.RENDER_REACTIONPICKER_TESTID;
10
+ }
11
+ });
12
+ Object.defineProperty(exports, "ReactionPicker", {
13
+ enumerable: true,
14
+ get: function get() {
15
+ return _ReactionPicker.ReactionPicker;
16
+ }
17
+ });
18
+
19
+ var _ReactionPicker = require("./ReactionPicker");
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.popupStyle = exports.pickerStyle = exports.contentStyle = void 0;
7
+
8
+ var _core = require("@emotion/core");
9
+
10
+ var _constants = require("@atlaskit/theme/constants");
11
+
12
+ var _colors = require("@atlaskit/theme/colors");
13
+
14
+ var _tokens = require("@atlaskit/tokens");
15
+
16
+ /** @jsx jsx */
17
+ var pickerStyle = (0, _core.css)({
18
+ verticalAlign: 'middle',
19
+ '&.miniMode': {
20
+ display: 'inline-block',
21
+ marginRight: '4px'
22
+ }
23
+ });
24
+ exports.pickerStyle = pickerStyle;
25
+ var contentStyle = (0, _core.css)({
26
+ display: 'flex'
27
+ });
28
+ exports.contentStyle = contentStyle;
29
+ var popupStyle = (0, _core.css)({
30
+ background: (0, _tokens.token)('elevation.surface.overlay', _colors.N0),
31
+ borderRadius: "".concat((0, _constants.borderRadius)(), "px"),
32
+ boxShadow: (0, _tokens.token)('elevation.shadow.overlay', "0 4px 8px -2px ".concat(_colors.N50A, ", 0 0 1px ").concat(_colors.N60A)),
33
+ '&> div': {
34
+ boxShadow: undefined
35
+ }
36
+ });
37
+ exports.popupStyle = popupStyle;
@@ -0,0 +1,71 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ var _typeof = require("@babel/runtime/helpers/typeof");
6
+
7
+ Object.defineProperty(exports, "__esModule", {
8
+ value: true
9
+ });
10
+ exports.ReactionTooltip = exports.RENDER_REACTIONTOOLTIP_TESTID = void 0;
11
+
12
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
13
+
14
+ var _react = _interopRequireDefault(require("react"));
15
+
16
+ var _core = require("@emotion/core");
17
+
18
+ var _tooltip = _interopRequireDefault(require("@atlaskit/tooltip"));
19
+
20
+ var _reactIntlNext = require("react-intl-next");
21
+
22
+ var _shared = require("../../shared");
23
+
24
+ var styles = _interopRequireWildcard(require("./styles"));
25
+
26
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
27
+
28
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
29
+
30
+ /** @jsx jsx */
31
+
32
+ /**
33
+ * Test id for wrapper ReactionTooltip div
34
+ */
35
+ var RENDER_REACTIONTOOLTIP_TESTID = 'render-reactionTooltip';
36
+ exports.RENDER_REACTIONTOOLTIP_TESTID = RENDER_REACTIONTOOLTIP_TESTID;
37
+
38
+ var ReactionTooltip = function ReactionTooltip(_ref) {
39
+ var emojiName = _ref.emojiName,
40
+ children = _ref.children,
41
+ _ref$maxReactions = _ref.maxReactions,
42
+ maxReactions = _ref$maxReactions === void 0 ? _shared.constants.TOOLTIP_USERS_LIMIT : _ref$maxReactions,
43
+ _ref$reaction$users = _ref.reaction.users,
44
+ users = _ref$reaction$users === void 0 ? [] : _ref$reaction$users;
45
+
46
+ /**
47
+ * Render list of users in the tooltip box
48
+ */
49
+ var content = !users || users.length === 0 ? null : (0, _core.jsx)("div", {
50
+ css: styles.tooltipStyle
51
+ }, (0, _core.jsx)("ul", null, emojiName ? (0, _core.jsx)("li", {
52
+ css: styles.emojiNameStyle
53
+ }, emojiName) : null, users.slice(0, maxReactions).map(function (user, index) {
54
+ return (0, _core.jsx)("li", {
55
+ key: index
56
+ }, user.displayName);
57
+ }), users.length > maxReactions ? (0, _core.jsx)("li", {
58
+ css: styles.footerStyle
59
+ }, (0, _core.jsx)(_reactIntlNext.FormattedMessage, (0, _extends2.default)({}, _shared.i18n.messages.otherUsers, {
60
+ values: {
61
+ count: users.length - maxReactions
62
+ }
63
+ }))) : null));
64
+ return (0, _core.jsx)(_tooltip.default, {
65
+ content: content,
66
+ position: "bottom",
67
+ "data-testid": RENDER_REACTIONTOOLTIP_TESTID
68
+ }, _react.default.Children.only(children));
69
+ };
70
+
71
+ exports.ReactionTooltip = ReactionTooltip;
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ Object.defineProperty(exports, "RENDER_REACTIONTOOLTIP_TESTID", {
7
+ enumerable: true,
8
+ get: function get() {
9
+ return _ReactionTooltip.RENDER_REACTIONTOOLTIP_TESTID;
10
+ }
11
+ });
12
+ Object.defineProperty(exports, "ReactionTooltip", {
13
+ enumerable: true,
14
+ get: function get() {
15
+ return _ReactionTooltip.ReactionTooltip;
16
+ }
17
+ });
18
+
19
+ var _ReactionTooltip = require("./ReactionTooltip");
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.verticalMargin = exports.tooltipStyle = exports.footerStyle = exports.emojiNameStyle = void 0;
7
+
8
+ var _core = require("@emotion/core");
9
+
10
+ var _tokens = require("@atlaskit/tokens");
11
+
12
+ var _colors = require("@atlaskit/theme/colors");
13
+
14
+ /** @jsx jsx */
15
+ var verticalMargin = 5;
16
+ exports.verticalMargin = verticalMargin;
17
+ var tooltipStyle = (0, _core.css)({
18
+ maxWidth: '150px',
19
+ textOverflow: 'ellipsis',
20
+ whiteSpace: 'nowrap',
21
+ overflow: 'hidden',
22
+ marginBottom: verticalMargin,
23
+ ul: {
24
+ listStyle: 'none',
25
+ margin: 0,
26
+ padding: 0,
27
+ textAlign: 'left'
28
+ },
29
+ li: {
30
+ overflow: 'hidden',
31
+ textOverflow: 'ellipsis',
32
+ marginTop: verticalMargin
33
+ }
34
+ });
35
+ exports.tooltipStyle = tooltipStyle;
36
+ var emojiNameStyle = (0, _core.css)({
37
+ textTransform: 'capitalize',
38
+ color: (0, _tokens.token)('color.text.inverse', _colors.N90),
39
+ fontWeight: 600
40
+ });
41
+ exports.emojiNameStyle = emojiNameStyle;
42
+ var footerStyle = (0, _core.css)({
43
+ color: (0, _tokens.token)('color.text.inverse', _colors.N90),
44
+ fontWeight: 300
45
+ });
46
+ exports.footerStyle = footerStyle;
@@ -0,0 +1,200 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ var _typeof = require("@babel/runtime/helpers/typeof");
6
+
7
+ Object.defineProperty(exports, "__esModule", {
8
+ value: true
9
+ });
10
+ exports.Reactions = exports.RENDER_TOOLTIP_TESTID = exports.RENDER_REACTIONS_TESTID = void 0;
11
+
12
+ var _react = _interopRequireWildcard(require("react"));
13
+
14
+ var _core = require("@emotion/core");
15
+
16
+ var _analyticsNext = require("@atlaskit/analytics-next");
17
+
18
+ var _tooltip = _interopRequireDefault(require("@atlaskit/tooltip"));
19
+
20
+ var _reactIntlNext = require("react-intl-next");
21
+
22
+ var _analytics = require("../../analytics");
23
+
24
+ var _types = require("../../types");
25
+
26
+ var _shared = require("../../shared");
27
+
28
+ var _Reaction = require("../Reaction");
29
+
30
+ var _ReactionPicker = require("../ReactionPicker");
31
+
32
+ var styles = _interopRequireWildcard(require("./styles"));
33
+
34
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
35
+
36
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
37
+
38
+ /** @jsx jsx */
39
+
40
+ /**
41
+ * Test id for wrapper Reactions div
42
+ */
43
+ var RENDER_REACTIONS_TESTID = 'render-reactions';
44
+ /**
45
+ * Test id for the tooltip
46
+ */
47
+
48
+ exports.RENDER_REACTIONS_TESTID = RENDER_REACTIONS_TESTID;
49
+ var RENDER_TOOLTIP_TESTID = 'render-tooltip';
50
+ exports.RENDER_TOOLTIP_TESTID = RENDER_TOOLTIP_TESTID;
51
+
52
+ /**
53
+ * Renders list of reactions
54
+ */
55
+ var Reactions = /*#__PURE__*/_react.default.memo(function (_ref) {
56
+ var _ref$flash = _ref.flash,
57
+ flash = _ref$flash === void 0 ? {} : _ref$flash,
58
+ status = _ref.status,
59
+ errorMessage = _ref.errorMessage,
60
+ loadReaction = _ref.loadReaction,
61
+ quickReactionEmojiIds = _ref.quickReactionEmojiIds,
62
+ containerAri = _ref.containerAri,
63
+ ari = _ref.ari,
64
+ pickerQuickReactionEmojiIds = _ref.pickerQuickReactionEmojiIds,
65
+ onReactionHover = _ref.onReactionHover,
66
+ onSelection = _ref.onSelection,
67
+ _ref$reactions = _ref.reactions,
68
+ reactions = _ref$reactions === void 0 ? [] : _ref$reactions,
69
+ emojiProvider = _ref.emojiProvider,
70
+ allowAllEmojis = _ref.allowAllEmojis,
71
+ onReactionClick = _ref.onReactionClick;
72
+
73
+ var _useAnalyticsEvents = (0, _analyticsNext.useAnalyticsEvents)(),
74
+ createAnalyticsEvent = _useAnalyticsEvents.createAnalyticsEvent;
75
+
76
+ var openTime = (0, _react.useRef)();
77
+ var renderTime = (0, _react.useRef)();
78
+
79
+ if (status !== _types.ReactionStatus.ready) {
80
+ renderTime.current = Date.now();
81
+ }
82
+
83
+ (0, _react.useEffect)(function () {
84
+ if (status === _types.ReactionStatus.notLoaded) {
85
+ loadReaction();
86
+ }
87
+ }, [status, loadReaction]);
88
+ (0, _react.useEffect)(function () {
89
+ if (status === _types.ReactionStatus.ready && renderTime.current) {
90
+ _analytics.Analytics.createAndFireSafe(createAnalyticsEvent, _analytics.Analytics.createReactionsRenderedEvent, renderTime.current);
91
+
92
+ renderTime.current = undefined;
93
+ }
94
+ }, [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
+
113
+ var handleReactionMouseEnter = function handleReactionMouseEnter(summary) {
114
+ if (onReactionHover) {
115
+ onReactionHover(summary.emojiId);
116
+ }
117
+ };
118
+
119
+ var handlePickerOpen = (0, _react.useCallback)(function () {
120
+ openTime.current = Date.now();
121
+
122
+ _analytics.Analytics.createAndFireSafe(createAnalyticsEvent, _analytics.Analytics.createPickerButtonClickedEvent, reactions.length);
123
+ }, [createAnalyticsEvent, reactions]);
124
+ var handleOnCancel = (0, _react.useCallback)(function () {
125
+ _analytics.Analytics.createAndFireSafe(createAnalyticsEvent, _analytics.Analytics.createPickerCancelledEvent, openTime.current);
126
+
127
+ openTime.current = undefined;
128
+ }, [createAnalyticsEvent]);
129
+ var handleOnMore = (0, _react.useCallback)(function () {
130
+ _analytics.Analytics.createAndFireSafe(createAnalyticsEvent, _analytics.Analytics.createPickerMoreClickedEvent, openTime.current);
131
+ }, [createAnalyticsEvent]);
132
+ var handleOnSelection = (0, _react.useCallback)(function (emojiId, source) {
133
+ _analytics.Analytics.createAndFireSafe(createAnalyticsEvent, _analytics.Analytics.createReactionSelectionEvent, source, emojiId, reactions.find(function (reaction) {
134
+ return reaction.emojiId === emojiId;
135
+ }), openTime.current);
136
+
137
+ openTime.current = undefined;
138
+ onSelection(emojiId);
139
+ }, [createAnalyticsEvent, onSelection, reactions]);
140
+ /**
141
+ * Get the reactions that we want to render are any reactions with a count greater than zero as well as any default emoji not already shown
142
+ */
143
+
144
+ var memorizedReactions = (0, _react.useMemo)(function () {
145
+ //
146
+
147
+ /**
148
+ * If reactions not empty, don't show quick reactions Pre defined emoji or if its empty => return the current list of reactions
149
+ */
150
+ if (reactions.length > 0 || !quickReactionEmojiIds) {
151
+ return reactions;
152
+ } // add any missing default reactions
153
+
154
+
155
+ var items = quickReactionEmojiIds.filter(function (emojiId) {
156
+ return !reactions.some(function (reaction) {
157
+ return reaction.emojiId === emojiId;
158
+ });
159
+ }).map(function (emojiId) {
160
+ return {
161
+ ari: ari,
162
+ containerAri: containerAri,
163
+ emojiId: emojiId,
164
+ count: 0,
165
+ reacted: false
166
+ };
167
+ });
168
+ return reactions.concat(items);
169
+ }, [ari, containerAri, quickReactionEmojiIds, reactions]);
170
+ return (0, _core.jsx)("div", {
171
+ css: styles.wrapperStyle,
172
+ "data-testid": RENDER_REACTIONS_TESTID
173
+ }, memorizedReactions.map(function (reaction) {
174
+ return (0, _core.jsx)(_Reaction.Reaction, {
175
+ key: reaction.emojiId,
176
+ css: styles.reactionStyle,
177
+ reaction: reaction,
178
+ emojiProvider: emojiProvider,
179
+ onClick: onReactionClick,
180
+ onMouseEnter: handleReactionMouseEnter,
181
+ flash: flash[reaction.emojiId]
182
+ });
183
+ }), (0, _core.jsx)(_tooltip.default, {
184
+ testId: RENDER_TOOLTIP_TESTID,
185
+ content: getTooltip()
186
+ }, (0, _core.jsx)(_ReactionPicker.ReactionPicker, {
187
+ css: styles.reactionStyle,
188
+ emojiProvider: emojiProvider,
189
+ miniMode: true,
190
+ allowAllEmojis: allowAllEmojis,
191
+ pickerQuickReactionEmojiIds: pickerQuickReactionEmojiIds,
192
+ disabled: status !== _types.ReactionStatus.ready,
193
+ onSelection: handleOnSelection,
194
+ onOpen: handlePickerOpen,
195
+ onCancel: handleOnCancel,
196
+ onShowMore: handleOnMore
197
+ })));
198
+ });
199
+
200
+ exports.Reactions = Reactions;
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ Object.defineProperty(exports, "RENDER_REACTIONS_TESTID", {
7
+ enumerable: true,
8
+ get: function get() {
9
+ return _Reactions.RENDER_REACTIONS_TESTID;
10
+ }
11
+ });
12
+ Object.defineProperty(exports, "RENDER_TOOLTIP_TESTID", {
13
+ enumerable: true,
14
+ get: function get() {
15
+ return _Reactions.RENDER_TOOLTIP_TESTID;
16
+ }
17
+ });
18
+ Object.defineProperty(exports, "Reactions", {
19
+ enumerable: true,
20
+ get: function get() {
21
+ return _Reactions.Reactions;
22
+ }
23
+ });
24
+
25
+ var _Reactions = require("./Reactions");