@atlaskit/reactions 21.4.0 → 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 (319) hide show
  1. package/CHANGELOG.md +28 -0
  2. package/MockReactionsClient/package.json +7 -0
  3. package/dist/cjs/MockReactionsClient.js +276 -0
  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/components/{Counter.js → Counter/Counter.js} +32 -39
  8. package/dist/cjs/components/Counter/index.js +36 -0
  9. package/dist/cjs/components/Counter/styles.js +33 -0
  10. package/dist/cjs/components/EmojiButton/EmojiButton.js +58 -0
  11. package/dist/cjs/components/EmojiButton/index.js +19 -0
  12. package/dist/cjs/components/EmojiButton/styles.js +25 -0
  13. package/dist/cjs/components/FlashAnimation/FlashAnimation.js +42 -0
  14. package/dist/cjs/components/FlashAnimation/index.js +19 -0
  15. package/dist/cjs/components/{FlashAnimation.js → FlashAnimation/styles.js} +7 -26
  16. package/dist/cjs/components/Reaction/Reaction.js +163 -0
  17. package/dist/cjs/components/Reaction/index.js +19 -0
  18. package/dist/cjs/components/Reaction/styles.js +70 -0
  19. package/dist/cjs/components/ReactionPicker/ReactionPicker.js +272 -0
  20. package/dist/cjs/components/ReactionPicker/index.js +19 -0
  21. package/dist/cjs/components/ReactionPicker/styles.js +37 -0
  22. package/dist/cjs/components/ReactionTooltip/ReactionTooltip.js +71 -0
  23. package/dist/cjs/components/ReactionTooltip/index.js +19 -0
  24. package/dist/cjs/components/ReactionTooltip/styles.js +46 -0
  25. package/dist/cjs/components/Reactions/Reactions.js +200 -0
  26. package/dist/cjs/components/Reactions/index.js +25 -0
  27. package/dist/cjs/components/Reactions/styles.js +29 -0
  28. package/dist/cjs/components/Selector/Selector.js +132 -0
  29. package/dist/cjs/components/Selector/index.js +30 -0
  30. package/dist/cjs/components/Selector/styles.js +56 -0
  31. package/dist/cjs/components/ShowMore/ShowMore.js +71 -0
  32. package/dist/cjs/components/ShowMore/index.js +19 -0
  33. package/dist/cjs/components/ShowMore/styles.js +44 -0
  34. package/dist/cjs/components/Trigger/Trigger.js +59 -0
  35. package/dist/cjs/components/Trigger/index.js +13 -0
  36. package/dist/cjs/components/Trigger/styles.js +46 -0
  37. package/dist/cjs/components/{UfoErrorBoundary.js → UfoErrorBoundary/UfoErrorBoundary.js} +3 -0
  38. package/dist/cjs/components/UfoErrorBoundary/index.js +13 -0
  39. package/dist/cjs/containers/ConnectedReactionPicker/ConnectedReactionPicker.js +62 -0
  40. package/dist/cjs/containers/ConnectedReactionPicker/index.js +13 -0
  41. package/dist/cjs/containers/ConnectedReactionsView/ConnectedReactionsView.js +258 -0
  42. package/dist/cjs/containers/ConnectedReactionsView/index.js +13 -0
  43. package/dist/cjs/containers/index.js +23 -13
  44. package/dist/cjs/hooks/index.js +13 -0
  45. package/dist/cjs/hooks/useClickAway.js +35 -0
  46. package/dist/cjs/index.js +8 -0
  47. package/dist/cjs/shared/constants.js +44 -0
  48. package/dist/cjs/{components → shared}/i18n.js +1 -1
  49. package/dist/cjs/shared/index.js +24 -0
  50. package/dist/cjs/shared/utils.js +54 -0
  51. package/dist/cjs/store/{ReactionsStore.js → MemoryReactionsStore.js} +41 -18
  52. package/dist/cjs/store/ReactionConsumer.js +43 -15
  53. package/dist/cjs/store/index.js +8 -2
  54. package/dist/cjs/store/utils.js +4 -10
  55. package/dist/cjs/{client/ReactionClient.js → types/client.js} +0 -0
  56. package/dist/cjs/types/index.js +2 -2
  57. package/dist/cjs/types/reaction.js +43 -0
  58. package/dist/cjs/types/{DetailedReaction.js → store.js} +0 -0
  59. package/dist/cjs/version.json +1 -1
  60. package/dist/es2019/MockReactionsClient.js +126 -0
  61. package/dist/es2019/analytics/analytics.js +64 -0
  62. package/dist/es2019/analytics/index.js +3 -65
  63. package/dist/es2019/analytics/ufo.js +0 -1
  64. package/dist/es2019/client/ReactionServiceClient.js +31 -6
  65. package/dist/es2019/components/{Counter.js → Counter/Counter.js} +26 -31
  66. package/dist/es2019/components/Counter/index.js +3 -0
  67. package/dist/es2019/components/Counter/styles.js +20 -0
  68. package/dist/es2019/components/EmojiButton/EmojiButton.js +35 -0
  69. package/dist/es2019/components/EmojiButton/index.js +1 -0
  70. package/dist/es2019/components/EmojiButton/styles.js +16 -0
  71. package/dist/es2019/components/FlashAnimation/FlashAnimation.js +18 -0
  72. package/dist/es2019/components/FlashAnimation/index.js +1 -0
  73. package/dist/es2019/components/{FlashAnimation.js → FlashAnimation/styles.js} +6 -17
  74. package/dist/es2019/components/Reaction/Reaction.js +104 -0
  75. package/dist/es2019/components/Reaction/index.js +1 -0
  76. package/dist/es2019/components/Reaction/styles.js +55 -0
  77. package/dist/es2019/components/ReactionPicker/ReactionPicker.js +208 -0
  78. package/dist/es2019/components/ReactionPicker/index.js +1 -0
  79. package/dist/es2019/components/ReactionPicker/styles.js +23 -0
  80. package/dist/es2019/components/ReactionTooltip/ReactionTooltip.js +46 -0
  81. package/dist/es2019/components/ReactionTooltip/index.js +1 -0
  82. package/dist/es2019/components/ReactionTooltip/styles.js +32 -0
  83. package/dist/es2019/components/Reactions/Reactions.js +156 -0
  84. package/dist/es2019/components/Reactions/index.js +1 -0
  85. package/dist/es2019/components/Reactions/styles.js +19 -0
  86. package/dist/es2019/components/Selector/Selector.js +98 -0
  87. package/dist/es2019/components/Selector/index.js +3 -0
  88. package/dist/es2019/components/Selector/styles.js +39 -0
  89. package/dist/es2019/components/ShowMore/ShowMore.js +43 -0
  90. package/dist/es2019/components/ShowMore/index.js +1 -0
  91. package/dist/es2019/components/ShowMore/styles.js +30 -0
  92. package/dist/es2019/components/{Trigger.js → Trigger/Trigger.js} +15 -20
  93. package/dist/es2019/components/Trigger/index.js +1 -0
  94. package/dist/es2019/components/Trigger/styles.js +24 -0
  95. package/dist/es2019/components/{UfoErrorBoundary.js → UfoErrorBoundary/UfoErrorBoundary.js} +4 -0
  96. package/dist/es2019/components/UfoErrorBoundary/index.js +1 -0
  97. package/dist/es2019/containers/ConnectedReactionPicker/ConnectedReactionPicker.js +27 -0
  98. package/dist/es2019/containers/ConnectedReactionPicker/index.js +1 -0
  99. package/dist/es2019/containers/ConnectedReactionsView/ConnectedReactionsView.js +166 -0
  100. package/dist/es2019/containers/ConnectedReactionsView/index.js +1 -0
  101. package/dist/es2019/containers/index.js +2 -2
  102. package/dist/es2019/hooks/index.js +1 -0
  103. package/dist/es2019/hooks/useClickAway.js +27 -0
  104. package/dist/es2019/index.js +3 -1
  105. package/dist/es2019/shared/constants.js +32 -0
  106. package/dist/es2019/{components → shared}/i18n.js +1 -1
  107. package/dist/es2019/shared/index.js +6 -0
  108. package/dist/es2019/shared/utils.js +35 -0
  109. package/dist/es2019/store/{ReactionsStore.js → MemoryReactionsStore.js} +40 -14
  110. package/dist/es2019/store/ReactionConsumer.js +18 -12
  111. package/dist/es2019/store/index.js +1 -1
  112. package/dist/es2019/store/utils.js +8 -4
  113. package/dist/es2019/{client/ReactionClient.js → types/client.js} +0 -0
  114. package/dist/es2019/types/index.js +1 -1
  115. package/dist/es2019/types/reaction.js +34 -0
  116. package/dist/es2019/types/{DetailedReaction.js → store.js} +0 -0
  117. package/dist/es2019/version.json +1 -1
  118. package/dist/esm/MockReactionsClient.js +257 -0
  119. package/dist/esm/analytics/analytics.js +99 -0
  120. package/dist/esm/analytics/index.js +3 -99
  121. package/dist/esm/analytics/ufo.js +0 -1
  122. package/dist/esm/client/ReactionServiceClient.js +30 -6
  123. package/dist/esm/components/{Counter.js → Counter/Counter.js} +26 -31
  124. package/dist/esm/components/Counter/index.js +3 -0
  125. package/dist/esm/components/Counter/styles.js +20 -0
  126. package/dist/esm/components/EmojiButton/EmojiButton.js +35 -0
  127. package/dist/esm/components/EmojiButton/index.js +1 -0
  128. package/dist/esm/components/EmojiButton/styles.js +16 -0
  129. package/dist/esm/components/FlashAnimation/FlashAnimation.js +20 -0
  130. package/dist/esm/components/FlashAnimation/index.js +1 -0
  131. package/dist/esm/components/{FlashAnimation.js → FlashAnimation/styles.js} +6 -19
  132. package/dist/esm/components/Reaction/Reaction.js +131 -0
  133. package/dist/esm/components/Reaction/index.js +1 -0
  134. package/dist/esm/components/Reaction/styles.js +55 -0
  135. package/dist/esm/components/ReactionPicker/ReactionPicker.js +243 -0
  136. package/dist/esm/components/ReactionPicker/index.js +1 -0
  137. package/dist/esm/components/ReactionPicker/styles.js +23 -0
  138. package/dist/esm/components/ReactionTooltip/ReactionTooltip.js +46 -0
  139. package/dist/esm/components/ReactionTooltip/index.js +1 -0
  140. package/dist/esm/components/ReactionTooltip/styles.js +32 -0
  141. package/dist/esm/components/Reactions/Reactions.js +166 -0
  142. package/dist/esm/components/Reactions/index.js +1 -0
  143. package/dist/esm/components/Reactions/styles.js +19 -0
  144. package/dist/esm/components/Selector/Selector.js +107 -0
  145. package/dist/esm/components/Selector/index.js +3 -0
  146. package/dist/esm/components/Selector/styles.js +41 -0
  147. package/dist/esm/components/ShowMore/ShowMore.js +46 -0
  148. package/dist/esm/components/ShowMore/index.js +1 -0
  149. package/dist/esm/components/ShowMore/styles.js +30 -0
  150. package/dist/esm/components/{Trigger.js → Trigger/Trigger.js} +15 -20
  151. package/dist/esm/components/Trigger/index.js +1 -0
  152. package/dist/esm/components/Trigger/styles.js +31 -0
  153. package/dist/esm/components/{UfoErrorBoundary.js → UfoErrorBoundary/UfoErrorBoundary.js} +4 -0
  154. package/dist/esm/components/UfoErrorBoundary/index.js +1 -0
  155. package/dist/esm/containers/ConnectedReactionPicker/ConnectedReactionPicker.js +46 -0
  156. package/dist/esm/containers/ConnectedReactionPicker/index.js +1 -0
  157. package/dist/esm/containers/ConnectedReactionsView/ConnectedReactionsView.js +227 -0
  158. package/dist/esm/containers/ConnectedReactionsView/index.js +1 -0
  159. package/dist/esm/containers/index.js +2 -2
  160. package/dist/esm/hooks/index.js +1 -0
  161. package/dist/esm/hooks/useClickAway.js +28 -0
  162. package/dist/esm/index.js +3 -1
  163. package/dist/esm/shared/constants.js +34 -0
  164. package/dist/esm/{components → shared}/i18n.js +1 -1
  165. package/dist/esm/shared/index.js +6 -0
  166. package/dist/esm/shared/utils.js +41 -0
  167. package/dist/esm/store/{ReactionsStore.js → MemoryReactionsStore.js} +40 -17
  168. package/dist/esm/store/ReactionConsumer.js +42 -15
  169. package/dist/esm/store/index.js +1 -1
  170. package/dist/esm/store/utils.js +8 -4
  171. package/dist/{es2019/types/ReactionSource.js → esm/types/client.js} +0 -0
  172. package/dist/esm/types/index.js +1 -1
  173. package/dist/esm/types/reaction.js +34 -0
  174. package/dist/{es2019/types/ReactionSummary.js → esm/types/store.js} +0 -0
  175. package/dist/esm/version.json +1 -1
  176. package/dist/types/MockReactionsClient.d.ts +20 -0
  177. package/dist/types/analytics/analytics.d.ts +96 -0
  178. package/dist/types/analytics/index.d.ts +1 -96
  179. package/dist/types/client/ReactionServiceClient.d.ts +27 -10
  180. package/dist/types/client/index.d.ts +0 -1
  181. package/dist/types/components/Counter/Counter.d.ts +40 -0
  182. package/dist/types/components/Counter/index.d.ts +3 -0
  183. package/dist/types/components/Counter/styles.d.ts +3 -0
  184. package/dist/types/components/EmojiButton/EmojiButton.d.ts +22 -0
  185. package/dist/types/components/EmojiButton/index.d.ts +2 -0
  186. package/dist/types/components/EmojiButton/styles.d.ts +1 -0
  187. package/dist/types/components/FlashAnimation/FlashAnimation.d.ts +20 -0
  188. package/dist/types/components/FlashAnimation/index.d.ts +2 -0
  189. package/dist/types/components/FlashAnimation/styles.d.ts +3 -0
  190. package/dist/types/components/Reaction/Reaction.d.ts +38 -0
  191. package/dist/types/components/Reaction/index.d.ts +2 -0
  192. package/dist/types/components/Reaction/styles.d.ts +10 -0
  193. package/dist/types/components/ReactionPicker/ReactionPicker.d.ts +53 -0
  194. package/dist/types/components/ReactionPicker/index.d.ts +2 -0
  195. package/dist/types/components/ReactionPicker/styles.d.ts +3 -0
  196. package/dist/types/components/ReactionTooltip/ReactionTooltip.d.ts +22 -0
  197. package/dist/types/components/ReactionTooltip/index.d.ts +2 -0
  198. package/dist/types/components/ReactionTooltip/styles.d.ts +4 -0
  199. package/dist/types/components/Reactions/Reactions.d.ts +64 -0
  200. package/dist/types/components/Reactions/index.d.ts +2 -0
  201. package/dist/types/components/Reactions/styles.d.ts +2 -0
  202. package/dist/types/components/Selector/Selector.d.ts +34 -0
  203. package/dist/types/components/Selector/index.d.ts +3 -0
  204. package/dist/types/components/Selector/styles.d.ts +10 -0
  205. package/dist/types/components/ShowMore/ShowMore.d.ts +34 -0
  206. package/dist/types/components/ShowMore/index.d.ts +2 -0
  207. package/dist/types/components/ShowMore/styles.d.ts +3 -0
  208. package/dist/types/components/Trigger/Trigger.d.ts +23 -0
  209. package/dist/types/components/Trigger/index.d.ts +2 -0
  210. package/dist/types/components/Trigger/styles.d.ts +5 -0
  211. package/dist/types/components/UfoErrorBoundary/UfoErrorBoundary.d.ts +16 -0
  212. package/dist/types/components/UfoErrorBoundary/index.d.ts +2 -0
  213. package/dist/types/components/index.d.ts +4 -1
  214. package/dist/types/containers/ConnectedReactionPicker/ConnectedReactionPicker.d.ts +27 -0
  215. package/dist/types/containers/ConnectedReactionPicker/index.d.ts +2 -0
  216. package/dist/types/containers/ConnectedReactionsView/ConnectedReactionsView.d.ts +52 -0
  217. package/dist/types/containers/ConnectedReactionsView/index.d.ts +2 -0
  218. package/dist/types/containers/index.d.ts +2 -2
  219. package/dist/types/hooks/index.d.ts +1 -0
  220. package/dist/types/hooks/useClickAway.d.ts +8 -0
  221. package/dist/types/index.d.ts +2 -2
  222. package/dist/types/shared/constants.d.ts +13 -0
  223. package/dist/types/{components → shared}/i18n.d.ts +0 -0
  224. package/dist/types/shared/index.d.ts +3 -0
  225. package/dist/types/shared/utils.d.ts +11 -0
  226. package/dist/types/store/{ReactionsStore.d.ts → MemoryReactionsStore.d.ts} +23 -26
  227. package/dist/types/store/ReactionConsumer.d.ts +47 -19
  228. package/dist/types/store/index.d.ts +2 -2
  229. package/dist/types/store/utils.d.ts +3 -7
  230. package/dist/types/types/Actions.d.ts +20 -4
  231. package/dist/types/types/User.d.ts +6 -0
  232. package/dist/types/types/client.d.ts +38 -0
  233. package/dist/types/types/index.d.ts +5 -7
  234. package/dist/types/types/reaction.d.ts +82 -0
  235. package/dist/types/types/store.d.ts +63 -0
  236. package/docs/0-intro.tsx +118 -27
  237. package/docs/1-connected-reaction-picker.tsx +133 -0
  238. package/docs/2-connected-reactions-view.tsx +130 -0
  239. package/docs/3-reactions-store.tsx +71 -0
  240. package/docs/4-reaction-service-client.tsx +42 -0
  241. package/extract-react-type/ConnectedReactionPicker.ts +6 -0
  242. package/extract-react-type/ConnectedReactionsView.ts +6 -0
  243. package/extract-react-type/Reaction.ts +6 -0
  244. package/extract-react-type/Reactions.ts +6 -0
  245. package/extract-react-type/actions.ts +6 -0
  246. package/extract-react-type/reactionClient.ts +6 -0
  247. package/extract-react-type/reactionsStore.ts +6 -0
  248. package/package.json +24 -7
  249. package/dist/cjs/client/MockReactionsClient.js +0 -183
  250. package/dist/cjs/components/EmojiButton.js +0 -100
  251. package/dist/cjs/components/Reaction.js +0 -226
  252. package/dist/cjs/components/ReactionPicker.js +0 -289
  253. package/dist/cjs/components/ReactionTooltip.js +0 -82
  254. package/dist/cjs/components/Reactions.js +0 -194
  255. package/dist/cjs/components/Selector.js +0 -189
  256. package/dist/cjs/components/ShowMore.js +0 -119
  257. package/dist/cjs/components/Trigger.js +0 -58
  258. package/dist/cjs/components/utils.js +0 -28
  259. package/dist/cjs/containers/ConnectedReactionPicker.js +0 -44
  260. package/dist/cjs/containers/ConnectedReactionsView.js +0 -139
  261. package/dist/cjs/types/ReactionSource.js +0 -5
  262. package/dist/cjs/types/ReactionStatus.js +0 -15
  263. package/dist/cjs/types/ReactionSummary.js +0 -5
  264. package/dist/cjs/types/Reactions.js +0 -5
  265. package/dist/cjs/types/ReactionsState.js +0 -5
  266. package/dist/es2019/client/MockReactionsClient.js +0 -123
  267. package/dist/es2019/components/EmojiButton.js +0 -50
  268. package/dist/es2019/components/Reaction.js +0 -180
  269. package/dist/es2019/components/ReactionPicker.js +0 -239
  270. package/dist/es2019/components/ReactionTooltip.js +0 -66
  271. package/dist/es2019/components/Reactions.js +0 -150
  272. package/dist/es2019/components/Selector.js +0 -127
  273. package/dist/es2019/components/ShowMore.js +0 -71
  274. package/dist/es2019/components/utils.js +0 -13
  275. package/dist/es2019/containers/ConnectedReactionPicker.js +0 -27
  276. package/dist/es2019/containers/ConnectedReactionsView.js +0 -118
  277. package/dist/es2019/types/ReactionStatus.js +0 -8
  278. package/dist/es2019/types/Reactions.js +0 -1
  279. package/dist/es2019/types/ReactionsState.js +0 -1
  280. package/dist/esm/client/MockReactionsClient.js +0 -164
  281. package/dist/esm/client/ReactionClient.js +0 -1
  282. package/dist/esm/components/EmojiButton.js +0 -77
  283. package/dist/esm/components/Reaction.js +0 -204
  284. package/dist/esm/components/ReactionPicker.js +0 -266
  285. package/dist/esm/components/ReactionTooltip.js +0 -63
  286. package/dist/esm/components/Reactions.js +0 -180
  287. package/dist/esm/components/Selector.js +0 -160
  288. package/dist/esm/components/ShowMore.js +0 -95
  289. package/dist/esm/components/utils.js +0 -15
  290. package/dist/esm/containers/ConnectedReactionPicker.js +0 -29
  291. package/dist/esm/containers/ConnectedReactionsView.js +0 -116
  292. package/dist/esm/types/DetailedReaction.js +0 -1
  293. package/dist/esm/types/ReactionSource.js +0 -1
  294. package/dist/esm/types/ReactionStatus.js +0 -8
  295. package/dist/esm/types/ReactionSummary.js +0 -1
  296. package/dist/esm/types/Reactions.js +0 -1
  297. package/dist/esm/types/ReactionsState.js +0 -1
  298. package/dist/types/client/MockReactionsClient.d.ts +0 -28
  299. package/dist/types/client/ReactionClient.d.ts +0 -25
  300. package/dist/types/components/Counter.d.ts +0 -14
  301. package/dist/types/components/EmojiButton.d.ts +0 -12
  302. package/dist/types/components/FlashAnimation.d.ts +0 -13
  303. package/dist/types/components/Reaction.d.ts +0 -25
  304. package/dist/types/components/ReactionPicker.d.ts +0 -39
  305. package/dist/types/components/ReactionTooltip.d.ts +0 -9
  306. package/dist/types/components/Reactions.d.ts +0 -49
  307. package/dist/types/components/Selector.d.ts +0 -27
  308. package/dist/types/components/ShowMore.d.ts +0 -21
  309. package/dist/types/components/Trigger.d.ts +0 -7
  310. package/dist/types/components/UfoErrorBoundary.d.ts +0 -9
  311. package/dist/types/components/utils.d.ts +0 -4
  312. package/dist/types/containers/ConnectedReactionPicker.d.ts +0 -10
  313. package/dist/types/containers/ConnectedReactionsView.d.ts +0 -19
  314. package/dist/types/types/DetailedReaction.d.ts +0 -7
  315. package/dist/types/types/ReactionSource.d.ts +0 -1
  316. package/dist/types/types/ReactionStatus.d.ts +0 -6
  317. package/dist/types/types/ReactionSummary.d.ts +0 -10
  318. package/dist/types/types/Reactions.d.ts +0 -4
  319. package/dist/types/types/ReactionsState.d.ts +0 -17
@@ -0,0 +1,42 @@
1
+ import React from 'react';
2
+ import { md, code, Props } from '@atlaskit/docs';
3
+
4
+ export default md`
5
+
6
+ The ReactionServiceClient class is another key element used in the Reactions memory state management. It wraps all API calls to the pf-reactions-service required for communicating with the remote API.
7
+
8
+ ## Usage
9
+
10
+ ${code`
11
+ import { MemoryReactionsStore, State, ReactionServiceClient } from '@atlaskit/reactions';
12
+
13
+ const apiConfig = {
14
+ baseUrl: 'http://www.example.org',
15
+ // optional, generate token from asap, check \`pf-emoji-service\` for more info
16
+ authHeader: 'Bearer token',
17
+ };
18
+
19
+ // Create a client object fetching the reactions data from the specified url
20
+ const client = new ReactionServiceClient(apiConfig.baseUrl, apiConfig.authHeader) = {};
21
+
22
+ // Add the client to the MemoryReactionsStore class
23
+
24
+ // Define the initial state object
25
+ const intialState: State = {
26
+ reactions: {},
27
+ flash: {}
28
+ };
29
+
30
+ // Define the store object that will handle all the reactions data (get/set/remove) and the API calls to the server
31
+ const store = new MemoryReactionsStore(client, intialState, {
32
+ subproduct: 'atlaskit',
33
+ });
34
+ `}
35
+
36
+ ${(
37
+ <Props
38
+ heading="ReactionClient type"
39
+ props={require('!!extract-react-types-loader!../extract-react-type/reactionClient')}
40
+ />
41
+ )}
42
+ `;
@@ -0,0 +1,6 @@
1
+ import type { ConnectedReactionPickerProps } from '../src/containers';
2
+
3
+ /**
4
+ * The props definition in src/containers/ConnectedReactionPicker.tsx breaks ERT unfortunately, hence this hack (for the custom component props).
5
+ */
6
+ export default function (_: ConnectedReactionPickerProps) {}
@@ -0,0 +1,6 @@
1
+ import type { ConnectedReactionsViewProps } from '../src/containers';
2
+
3
+ /**
4
+ * The props definition in src/containers/ConnectedReactionsView.tsx breaks ERT unfortunately, hence this hack (for the custom component props).
5
+ */
6
+ export default function (_: ConnectedReactionsViewProps) {}
@@ -0,0 +1,6 @@
1
+ import type { ReactionProps } from '../src/components';
2
+
3
+ /**
4
+ * The props definition in src/components/Reaction/Reaction.ts breaks ERT unfortunately, hence this hack (for the custom component props).
5
+ */
6
+ export default function (_: ReactionProps) {}
@@ -0,0 +1,6 @@
1
+ import type { ReactionsProps } from '../src/components';
2
+
3
+ /**
4
+ * The props definition in src/components/Reactions/Reactions.tsx breaks ERT unfortunately, hence this hack (for the custom component props).
5
+ */
6
+ export default function (_: ReactionsProps) {}
@@ -0,0 +1,6 @@
1
+ import type { Actions } from '../src/types';
2
+
3
+ /**
4
+ * The props definition in src/types/action.ts breaks ERT unfortunately, hence this hack (for the custom component props).
5
+ */
6
+ export default function (_: Actions) {}
@@ -0,0 +1,6 @@
1
+ import type { Client } from '../src/types';
2
+
3
+ /**
4
+ * The props definition in src/types/client.ts breaks ERT unfortunately, hence this hack (for the custom component props).
5
+ */
6
+ export default function (_: Client) {}
@@ -0,0 +1,6 @@
1
+ import type { Store } from '../src/types';
2
+
3
+ /**
4
+ * The props definition in src/types/store.ts breaks ERT unfortunately, hence this hack (for the custom component props).
5
+ */
6
+ export default function (_: Store) {}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@atlaskit/reactions",
3
- "version": "21.4.0",
3
+ "version": "21.6.0",
4
4
  "description": "Reactions component",
5
5
  "publishConfig": {
6
6
  "registry": "https://registry.npmjs.org/"
@@ -29,12 +29,12 @@
29
29
  "@atlaskit/analytics-namespaced-context": "^6.5.0",
30
30
  "@atlaskit/analytics-next": "^8.2.0",
31
31
  "@atlaskit/button": "^16.3.0",
32
- "@atlaskit/ds-lib": "^2.0.0",
33
- "@atlaskit/emoji": "^65.0.0",
32
+ "@atlaskit/ds-lib": "^2.1.0",
33
+ "@atlaskit/emoji": "^65.2.0",
34
34
  "@atlaskit/icon": "^21.10.0",
35
35
  "@atlaskit/motion": "^1.2.0",
36
36
  "@atlaskit/popper": "^5.0.0",
37
- "@atlaskit/theme": "^12.1.0",
37
+ "@atlaskit/theme": "^12.2.0",
38
38
  "@atlaskit/tokens": "^0.10.0",
39
39
  "@atlaskit/tooltip": "^17.5.0",
40
40
  "@atlaskit/ufo": "^0.1.0",
@@ -52,18 +52,25 @@
52
52
  "@atlaskit/docs": "^9.0.0",
53
53
  "@atlaskit/editor-test-helpers": "^17.1.0",
54
54
  "@atlaskit/elements-test-helpers": "^0.7.0",
55
+ "@atlaskit/section-message": "^6.2.0",
55
56
  "@atlaskit/tooltip": "^17.5.0",
56
- "@atlaskit/util-data-test": "^17.4.0",
57
+ "@atlaskit/util-data-test": "^17.5.0",
57
58
  "@atlassian/atlassian-frontend-prettier-config-1.0.1": "npm:@atlassian/atlassian-frontend-prettier-config@1.0.1",
58
59
  "@atlassian/ufo": "^0.1.0",
60
+ "@emotion/jest": "^11.8.0",
61
+ "@testing-library/dom": "^7.7.3",
62
+ "@testing-library/jest-dom": "^4.1.0",
63
+ "@testing-library/react": "^8.0.1",
64
+ "@testing-library/user-event": "10.4.0",
59
65
  "@types/webpack-dev-server": "^3.11.2",
66
+ "dotenv": "^8.2.0",
60
67
  "enzyme": "^3.10.0",
61
68
  "enzyme-adapter-react-16": "^1.15.1",
62
69
  "es6-promise": "^4.0.5",
63
70
  "fetch-mock": "^8.0.0",
64
71
  "react": "^16.8.0",
65
72
  "react-intl-next": "npm:react-intl@^5.18.1",
66
- "typescript": "4.2.4",
73
+ "typescript": "4.3.5",
67
74
  "wait-for-expect": "^1.2.0",
68
75
  "webpack-dev-server": "^3.11.2"
69
76
  },
@@ -79,5 +86,15 @@
79
86
  "tree-shaking": []
80
87
  }
81
88
  },
82
- "prettier": "@atlassian/atlassian-frontend-prettier-config-1.0.1"
89
+ "prettier": "@atlassian/atlassian-frontend-prettier-config-1.0.1",
90
+ "scripts": {
91
+ "setup-first-time": "yarn run setup-local-config; yarn run setup-env",
92
+ "setup-local-config": "cp -nv local-config-template.ts local-config.ts",
93
+ "setup-env": "cp -nv .env-template .env",
94
+ "start": "cd ../../ && yarn start reactions",
95
+ "test": "cd ../../ && yarn test reactions",
96
+ "typecheck": "cd ../../ && yarn typecheck:package ./packages/elements/reactions",
97
+ "start:dev": "cd ../../ && yarn start reactions --proxy ./packages/elements/reactions/proxy.ts",
98
+ "start:edge": "cd ../../ && PROXY_TARGET_ENV=edge yarn start reactions --proxy ./packages/elements/reactions/proxy.ts"
99
+ }
83
100
  }
@@ -1,183 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
- Object.defineProperty(exports, "__esModule", {
6
- value: true
7
- });
8
- exports.user = exports.reaction = exports.containerAri = exports.ari = exports.MockReactionsClient = void 0;
9
-
10
- var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
11
-
12
- var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
13
-
14
- var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
15
-
16
- var _defineProperty3 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
17
-
18
- var _Selector = require("../components/Selector");
19
-
20
- 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; }
21
-
22
- 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, _defineProperty3.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; }
23
-
24
- var containerAri = 'ari:cloud:owner:demo-cloud-id:container/1';
25
- exports.containerAri = containerAri;
26
- var ari = 'ari:cloud:owner:demo-cloud-id:item/1';
27
- exports.ari = ari;
28
-
29
- var reaction = function reaction(shortName, count, reacted) {
30
- return {
31
- ari: ari,
32
- containerAri: containerAri,
33
- emojiId: _Selector.defaultReactionsByShortName.get(shortName).id,
34
- count: count,
35
- reacted: reacted
36
- };
37
- };
38
-
39
- exports.reaction = reaction;
40
-
41
- var user = function user(id, displayName) {
42
- return {
43
- id: id,
44
- displayName: displayName
45
- };
46
- };
47
-
48
- exports.user = user;
49
-
50
- var objectReactionKey = function objectReactionKey(containerAri, ari) {
51
- return "".concat(containerAri, "|").concat(ari);
52
- };
53
-
54
- var defaultUsers = [user('oscar', 'Oscar Wallhult'), user('julien', 'Julien Michel Hoarau'), user('craig', 'Craig Petchell'), user('jerome', 'Jerome Touffe-Blin'), user('esoares', 'Eduardo Soares'), user('lpereira', 'Luiz Pereira'), user('pcurren', 'Paul Curren'), user('ttjandra', 'Tara Tjandra'), user('severington', 'Ste Everington'), user('sguillope', 'Sylvain Guillope'), user('alunnon', 'Alex Lunnon')];
55
-
56
- var MockReactionsClient = /*#__PURE__*/function () {
57
- function MockReactionsClient() {
58
- var _this = this;
59
-
60
- var delay = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
61
- (0, _classCallCheck2.default)(this, MockReactionsClient);
62
- (0, _defineProperty3.default)(this, "mockData", (0, _defineProperty3.default)({}, objectReactionKey(containerAri, ari), [reaction(':fire:', 1, true), reaction(':thumbsup:', 9, false), reaction(':astonished:', 5, false), reaction(':heart:', 100, false)]));
63
- (0, _defineProperty3.default)(this, "delayPromise", function () {
64
- return new Promise(function (resolve) {
65
- return window.setTimeout(resolve, _this.delay);
66
- });
67
- });
68
- this.delay = delay;
69
- }
70
-
71
- (0, _createClass2.default)(MockReactionsClient, [{
72
- key: "getReactions",
73
- value: function getReactions(containerAri, aris) {
74
- var _this2 = this;
75
-
76
- return this.delayPromise().then(function () {
77
- return aris.reduce(function (results, ari) {
78
- var reactionKey = objectReactionKey(containerAri, ari);
79
- results[ari] = _this2.mockData[reactionKey] || [];
80
- return results;
81
- }, {});
82
- });
83
- }
84
- }, {
85
- key: "getDetailedReaction",
86
- value: function getDetailedReaction(containerAri, ari, emojiId) {
87
- var _this3 = this;
88
-
89
- return this.delayPromise().then(function () {
90
- var reactionKey = "".concat(containerAri, "|").concat(ari);
91
- var reactionsMockData = _this3.mockData[reactionKey];
92
-
93
- if (reactionsMockData) {
94
- var _reaction = reactionsMockData.find(function (reaction) {
95
- return reaction.emojiId === emojiId;
96
- });
97
-
98
- if (_reaction) {
99
- var users = [].concat(defaultUsers).slice(Math.floor(Math.random() * 4), Math.floor(Math.random() * 9) + 4).slice(0, _reaction.count);
100
- return _objectSpread(_objectSpread({}, _reaction), {}, {
101
- users: users
102
- });
103
- }
104
- }
105
-
106
- return {
107
- containerAri: containerAri,
108
- ari: ari,
109
- emojiId: emojiId,
110
- count: 1,
111
- reacted: true,
112
- users: []
113
- };
114
- });
115
- }
116
- }, {
117
- key: "addReaction",
118
- value: function addReaction(containerAri, ari, emojiId) {
119
- var _this4 = this;
120
-
121
- return this.delayPromise().then(function () {
122
- var reactionKey = objectReactionKey(containerAri, ari);
123
- var found = false;
124
- var reactionsMockData = _this4.mockData[reactionKey];
125
-
126
- if (reactionsMockData) {
127
- _this4.mockData[reactionKey] = reactionsMockData.map(function (reaction) {
128
- if (reaction.emojiId === emojiId) {
129
- found = true;
130
- return _objectSpread(_objectSpread({}, reaction), {}, {
131
- count: reaction.count + 1,
132
- reacted: true
133
- });
134
- }
135
-
136
- return reaction;
137
- });
138
- }
139
-
140
- if (!found) {
141
- _this4.mockData[reactionKey] = [].concat((0, _toConsumableArray2.default)(reactionsMockData ? reactionsMockData : []), [{
142
- containerAri: containerAri,
143
- ari: ari,
144
- emojiId: emojiId,
145
- count: 1,
146
- reacted: true
147
- }]);
148
- }
149
-
150
- return _this4.mockData[reactionKey];
151
- });
152
- }
153
- }, {
154
- key: "deleteReaction",
155
- value: function deleteReaction(containerAri, ari, emojiId) {
156
- var _this5 = this;
157
-
158
- return this.delayPromise().then(function () {
159
- var reactionKey = objectReactionKey(containerAri, ari);
160
- _this5.mockData[reactionKey] = _this5.mockData[reactionKey].map(function (reaction) {
161
- if (reaction.emojiId === emojiId) {
162
- if (reaction.count === 1) {
163
- return undefined;
164
- }
165
-
166
- return _objectSpread(_objectSpread({}, reaction), {}, {
167
- count: reaction.count - 1,
168
- reacted: false
169
- });
170
- }
171
-
172
- return reaction;
173
- }).filter(function (reaction) {
174
- return !!reaction;
175
- });
176
- return _this5.mockData[reactionKey];
177
- });
178
- }
179
- }]);
180
- return MockReactionsClient;
181
- }();
182
-
183
- exports.MockReactionsClient = MockReactionsClient;
@@ -1,100 +0,0 @@
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.EmojiButton = void 0;
11
-
12
- var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
13
-
14
- var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
15
-
16
- var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
17
-
18
- var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
19
-
20
- var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
21
-
22
- var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
23
-
24
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
25
-
26
- var _core = require("@emotion/core");
27
-
28
- var _element = require("@atlaskit/emoji/element");
29
-
30
- var _react = _interopRequireWildcard(require("react"));
31
-
32
- var _utils = require("./utils");
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
- function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }
39
-
40
- function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
41
-
42
- var emojiButtonStyle = (0, _core.css)({
43
- outline: 'none',
44
- display: 'flex',
45
- backgroundColor: 'transparent',
46
- border: 0,
47
- borderRadius: '5px',
48
- cursor: 'pointer',
49
- margin: '0',
50
- padding: '10px 8px',
51
- '&:hover > span': {
52
- transition: 'transform cubic-bezier(0.23, 1, 0.32, 1) 200ms',
53
- transform: 'scale(1.33)'
54
- }
55
- });
56
-
57
- var EmojiButton = /*#__PURE__*/function (_PureComponent) {
58
- (0, _inherits2.default)(EmojiButton, _PureComponent);
59
-
60
- var _super = _createSuper(EmojiButton);
61
-
62
- function EmojiButton() {
63
- var _this;
64
-
65
- (0, _classCallCheck2.default)(this, EmojiButton);
66
-
67
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
68
- args[_key] = arguments[_key];
69
- }
70
-
71
- _this = _super.call.apply(_super, [this].concat(args));
72
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "handleMouseDown", function (event) {
73
- event.preventDefault();
74
-
75
- if (_this.props.onClick && (0, _utils.isLeftClick)(event)) {
76
- _this.props.onClick(_this.props.emojiId, undefined, event);
77
- }
78
- });
79
- return _this;
80
- }
81
-
82
- (0, _createClass2.default)(EmojiButton, [{
83
- key: "render",
84
- value: function render() {
85
- var _this$props = this.props,
86
- emojiId = _this$props.emojiId,
87
- emojiProvider = _this$props.emojiProvider;
88
- return (0, _core.jsx)("button", {
89
- onMouseUp: this.handleMouseDown,
90
- css: emojiButtonStyle
91
- }, (0, _core.jsx)(_element.ResourcedEmoji, {
92
- emojiProvider: emojiProvider,
93
- emojiId: emojiId
94
- }));
95
- }
96
- }]);
97
- return EmojiButton;
98
- }(_react.PureComponent);
99
-
100
- exports.EmojiButton = EmojiButton;
@@ -1,226 +0,0 @@
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.Reaction = void 0;
11
-
12
- var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
13
-
14
- var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
15
-
16
- var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
17
-
18
- var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
19
-
20
- var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
21
-
22
- var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
23
-
24
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
25
-
26
- var _core = require("@emotion/core");
27
-
28
- var _analyticsNext = require("@atlaskit/analytics-next");
29
-
30
- var _element = require("@atlaskit/emoji/element");
31
-
32
- var _colors = require("@atlaskit/theme/colors");
33
-
34
- var _tokens = require("@atlaskit/tokens");
35
-
36
- var _react = _interopRequireWildcard(require("react"));
37
-
38
- var _analytics = require("../analytics");
39
-
40
- var _Counter = require("./Counter");
41
-
42
- var _FlashAnimation = require("./FlashAnimation");
43
-
44
- var _ReactionTooltip = require("./ReactionTooltip");
45
-
46
- var _utils = require("./utils");
47
-
48
- 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); }
49
-
50
- 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; }
51
-
52
- function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }
53
-
54
- function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
55
-
56
- /**
57
- * Styling Note:
58
- * Padding and line height are set within the child components
59
- * of FlashAnimation b/c it otherwise throws off the flash styling
60
- */
61
- var emojiStyle = (0, _core.css)({
62
- transformOrigin: 'center center 0',
63
- lineHeight: '12px',
64
- padding: '4px 4px 4px 8px'
65
- });
66
- var reactionStyle = (0, _core.css)({
67
- outline: 'none',
68
- display: 'flex',
69
- flexDirection: 'row',
70
- alignItems: 'flex-start',
71
- minWidth: '36px',
72
- height: "".concat(_utils.akHeight, "px"),
73
- background: 'transparent',
74
- border: "1px solid ".concat((0, _tokens.token)('color.border', _colors.N40)),
75
- boxSizing: 'border-box',
76
- borderRadius: '20px',
77
- color: "".concat((0, _tokens.token)('color.text.subtle', _colors.N400)),
78
- cursor: 'pointer',
79
- margin: 0,
80
- padding: 0,
81
- transition: '200ms ease-in-out',
82
- '&:hover': {
83
- background: "".concat((0, _tokens.token)('color.background.neutral.subtle.hovered', _colors.N20))
84
- }
85
- });
86
- var reactedStyle = (0, _core.css)({
87
- backgroundColor: (0, _tokens.token)('color.background.selected', _colors.B50),
88
- borderColor: (0, _tokens.token)('color.border.selected', _colors.B300),
89
- '&:hover': {
90
- background: "".concat((0, _tokens.token)('color.background.selected.hovered', _colors.B75))
91
- }
92
- });
93
- var flashHeight = _utils.akHeight - 2; // height without the 1px border
94
-
95
- var flashStyle = (0, _core.css)({
96
- display: 'flex',
97
- flexDirection: 'row',
98
- borderRadius: '10px',
99
- height: "".concat(flashHeight, "px")
100
- });
101
-
102
- var ReactionWithoutAnalytics = /*#__PURE__*/function (_PureComponent) {
103
- (0, _inherits2.default)(ReactionWithoutAnalytics, _PureComponent);
104
-
105
- var _super = _createSuper(ReactionWithoutAnalytics);
106
-
107
- function ReactionWithoutAnalytics(props) {
108
- var _this;
109
-
110
- (0, _classCallCheck2.default)(this, ReactionWithoutAnalytics);
111
- _this = _super.call(this, props);
112
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "mounted", false);
113
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "handleMouseDown", function (event) {
114
- event.preventDefault();
115
- event.stopPropagation();
116
-
117
- if (_this.props.onClick && (0, _utils.isLeftClick)(event)) {
118
- var _this$props = _this.props,
119
- _reaction = _this$props.reaction,
120
- createAnalyticsEvent = _this$props.createAnalyticsEvent;
121
- var reacted = _reaction.reacted,
122
- _emojiId = _reaction.emojiId;
123
- (0, _analytics.createAndFireSafe)(createAnalyticsEvent, _analytics.createReactionClickedEvent, !reacted, _emojiId);
124
-
125
- _this.props.onClick(_this.props.reaction.emojiId, event);
126
- }
127
- });
128
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "handleMouseEnter", function (event) {
129
- event.preventDefault();
130
- var _this$props2 = _this.props,
131
- onMouseEnter = _this$props2.onMouseEnter,
132
- reaction = _this$props2.reaction;
133
-
134
- if (!reaction.users || !reaction.users.length) {
135
- _this.hoverStart = Date.now();
136
- }
137
-
138
- if (onMouseEnter) {
139
- onMouseEnter(_this.props.reaction, event);
140
- }
141
- });
142
- _this.state = {};
143
- return _this;
144
- }
145
-
146
- (0, _createClass2.default)(ReactionWithoutAnalytics, [{
147
- key: "componentDidUpdate",
148
- value: function componentDidUpdate(_ref) {
149
- var prevReaction = _ref.reaction;
150
-
151
- if (!prevReaction.users && this.props.reaction.users) {
152
- (0, _analytics.createAndFireSafe)(this.props.createAnalyticsEvent, _analytics.createReactionHoveredEvent, this.hoverStart);
153
- }
154
- }
155
- }, {
156
- key: "componentDidMount",
157
- value: function componentDidMount() {
158
- var _this2 = this;
159
-
160
- this.mounted = true;
161
- this.props.emojiProvider.then(function (emojiResource) {
162
- return emojiResource.findByEmojiId({
163
- shortName: '',
164
- id: _this2.props.reaction.emojiId
165
- });
166
- }).then(function (foundEmoji) {
167
- if (foundEmoji && _this2.mounted) {
168
- _this2.setState({
169
- emojiName: foundEmoji.name
170
- });
171
- }
172
- });
173
- }
174
- }, {
175
- key: "componentWillUnmount",
176
- value: function componentWillUnmount() {
177
- this.mounted = false;
178
- }
179
- }, {
180
- key: "render",
181
- value: function render() {
182
- var _this$props3 = this.props,
183
- emojiProvider = _this$props3.emojiProvider,
184
- reaction = _this$props3.reaction,
185
- classNameProp = _this$props3.className,
186
- flash = _this$props3.flash;
187
- var emojiName = this.state.emojiName;
188
- var emojiId = {
189
- id: reaction.emojiId,
190
- shortName: ''
191
- };
192
- return (0, _core.jsx)(_ReactionTooltip.ReactionTooltip, {
193
- emojiName: emojiName,
194
- reaction: reaction
195
- }, (0, _core.jsx)("button", {
196
- className: classNameProp,
197
- css: [reactionStyle, reaction.reacted && reactedStyle],
198
- onMouseUp: this.handleMouseDown,
199
- onMouseEnter: this.handleMouseEnter
200
- }, (0, _core.jsx)(_FlashAnimation.FlashAnimation, {
201
- flash: flash,
202
- css: flashStyle
203
- }, (0, _core.jsx)("div", {
204
- css: emojiStyle
205
- }, (0, _core.jsx)(_element.ResourcedEmoji, {
206
- emojiProvider: emojiProvider,
207
- emojiId: emojiId,
208
- fitToHeight: 16
209
- })), (0, _core.jsx)(_Counter.Counter, {
210
- value: reaction.count,
211
- highlight: reaction.reacted
212
- }))));
213
- }
214
- }]);
215
- return ReactionWithoutAnalytics;
216
- }(_react.PureComponent);
217
-
218
- (0, _defineProperty2.default)(ReactionWithoutAnalytics, "defaultProps", {
219
- flash: false,
220
- className: undefined,
221
- onMouseEnter: undefined,
222
- flashOnMount: false
223
- });
224
- (0, _defineProperty2.default)(ReactionWithoutAnalytics, "displayName", 'Reaction');
225
- var Reaction = (0, _analyticsNext.withAnalyticsEvents)()(ReactionWithoutAnalytics);
226
- exports.Reaction = Reaction;