@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
@@ -1,123 +0,0 @@
1
- import _defineProperty from "@babel/runtime/helpers/defineProperty";
2
- import { defaultReactionsByShortName } from '../components/Selector';
3
- export const containerAri = 'ari:cloud:owner:demo-cloud-id:container/1';
4
- export const ari = 'ari:cloud:owner:demo-cloud-id:item/1';
5
- export const reaction = (shortName, count, reacted) => ({
6
- ari,
7
- containerAri,
8
- emojiId: defaultReactionsByShortName.get(shortName).id,
9
- count,
10
- reacted
11
- });
12
- export const user = (id, displayName) => ({
13
- id,
14
- displayName
15
- });
16
-
17
- const objectReactionKey = (containerAri, ari) => {
18
- return `${containerAri}|${ari}`;
19
- };
20
-
21
- const 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')];
22
- export class MockReactionsClient {
23
- constructor(delay = 0) {
24
- _defineProperty(this, "mockData", {
25
- [objectReactionKey(containerAri, ari)]: [reaction(':fire:', 1, true), reaction(':thumbsup:', 9, false), reaction(':astonished:', 5, false), reaction(':heart:', 100, false)]
26
- });
27
-
28
- _defineProperty(this, "delayPromise", () => new Promise(resolve => window.setTimeout(resolve, this.delay)));
29
-
30
- this.delay = delay;
31
- }
32
-
33
- getReactions(containerAri, aris) {
34
- return this.delayPromise().then(() => aris.reduce((results, ari) => {
35
- const reactionKey = objectReactionKey(containerAri, ari);
36
- results[ari] = this.mockData[reactionKey] || [];
37
- return results;
38
- }, {}));
39
- }
40
-
41
- getDetailedReaction(containerAri, ari, emojiId) {
42
- return this.delayPromise().then(() => {
43
- const reactionKey = `${containerAri}|${ari}`;
44
- const reactionsMockData = this.mockData[reactionKey];
45
-
46
- if (reactionsMockData) {
47
- const reaction = reactionsMockData.find(reaction => reaction.emojiId === emojiId);
48
-
49
- if (reaction) {
50
- const users = [...defaultUsers].slice(Math.floor(Math.random() * 4), Math.floor(Math.random() * 9) + 4).slice(0, reaction.count);
51
- return { ...reaction,
52
- users
53
- };
54
- }
55
- }
56
-
57
- return {
58
- containerAri,
59
- ari,
60
- emojiId,
61
- count: 1,
62
- reacted: true,
63
- users: []
64
- };
65
- });
66
- }
67
-
68
- addReaction(containerAri, ari, emojiId) {
69
- return this.delayPromise().then(() => {
70
- const reactionKey = objectReactionKey(containerAri, ari);
71
- let found = false;
72
- const reactionsMockData = this.mockData[reactionKey];
73
-
74
- if (reactionsMockData) {
75
- this.mockData[reactionKey] = reactionsMockData.map(reaction => {
76
- if (reaction.emojiId === emojiId) {
77
- found = true;
78
- return { ...reaction,
79
- count: reaction.count + 1,
80
- reacted: true
81
- };
82
- }
83
-
84
- return reaction;
85
- });
86
- }
87
-
88
- if (!found) {
89
- this.mockData[reactionKey] = [...(reactionsMockData ? reactionsMockData : []), {
90
- containerAri,
91
- ari,
92
- emojiId,
93
- count: 1,
94
- reacted: true
95
- }];
96
- }
97
-
98
- return this.mockData[reactionKey];
99
- });
100
- }
101
-
102
- deleteReaction(containerAri, ari, emojiId) {
103
- return this.delayPromise().then(() => {
104
- const reactionKey = objectReactionKey(containerAri, ari);
105
- this.mockData[reactionKey] = this.mockData[reactionKey].map(reaction => {
106
- if (reaction.emojiId === emojiId) {
107
- if (reaction.count === 1) {
108
- return undefined;
109
- }
110
-
111
- return { ...reaction,
112
- count: reaction.count - 1,
113
- reacted: false
114
- };
115
- }
116
-
117
- return reaction;
118
- }).filter(reaction => !!reaction);
119
- return this.mockData[reactionKey];
120
- });
121
- }
122
-
123
- }
@@ -1,50 +0,0 @@
1
- import _defineProperty from "@babel/runtime/helpers/defineProperty";
2
-
3
- /** @jsx jsx */
4
- import { jsx, css } from '@emotion/core';
5
- import { ResourcedEmoji } from '@atlaskit/emoji/element';
6
- import React from 'react';
7
- import { PureComponent } from 'react';
8
- import { isLeftClick } from './utils';
9
- const emojiButtonStyle = css({
10
- outline: 'none',
11
- display: 'flex',
12
- backgroundColor: 'transparent',
13
- border: 0,
14
- borderRadius: '5px',
15
- cursor: 'pointer',
16
- margin: '0',
17
- padding: '10px 8px',
18
- '&:hover > span': {
19
- transition: 'transform cubic-bezier(0.23, 1, 0.32, 1) 200ms',
20
- transform: 'scale(1.33)'
21
- }
22
- });
23
- export class EmojiButton extends PureComponent {
24
- constructor(...args) {
25
- super(...args);
26
-
27
- _defineProperty(this, "handleMouseDown", event => {
28
- event.preventDefault();
29
-
30
- if (this.props.onClick && isLeftClick(event)) {
31
- this.props.onClick(this.props.emojiId, undefined, event);
32
- }
33
- });
34
- }
35
-
36
- render() {
37
- const {
38
- emojiId,
39
- emojiProvider
40
- } = this.props;
41
- return jsx("button", {
42
- onMouseUp: this.handleMouseDown,
43
- css: emojiButtonStyle
44
- }, jsx(ResourcedEmoji, {
45
- emojiProvider: emojiProvider,
46
- emojiId: emojiId
47
- }));
48
- }
49
-
50
- }
@@ -1,180 +0,0 @@
1
- import _defineProperty from "@babel/runtime/helpers/defineProperty";
2
-
3
- /** @jsx jsx */
4
- import { jsx, css } from '@emotion/core';
5
- import { withAnalyticsEvents } from '@atlaskit/analytics-next';
6
- import { ResourcedEmoji } from '@atlaskit/emoji/element';
7
- import { B50, B75, B300, N20, N40, N400 } from '@atlaskit/theme/colors';
8
- import { token } from '@atlaskit/tokens';
9
- import React from 'react';
10
- import { PureComponent } from 'react';
11
- import { createAndFireSafe, createReactionClickedEvent, createReactionHoveredEvent } from '../analytics';
12
- import { Counter } from './Counter';
13
- import { FlashAnimation } from './FlashAnimation';
14
- import { ReactionTooltip } from './ReactionTooltip';
15
- import { isLeftClick, akHeight } from './utils';
16
- /**
17
- * Styling Note:
18
- * Padding and line height are set within the child components
19
- * of FlashAnimation b/c it otherwise throws off the flash styling
20
- */
21
-
22
- const emojiStyle = css({
23
- transformOrigin: 'center center 0',
24
- lineHeight: '12px',
25
- padding: '4px 4px 4px 8px'
26
- });
27
- const reactionStyle = css({
28
- outline: 'none',
29
- display: 'flex',
30
- flexDirection: 'row',
31
- alignItems: 'flex-start',
32
- minWidth: '36px',
33
- height: `${akHeight}px`,
34
- background: 'transparent',
35
- border: `1px solid ${token('color.border', N40)}`,
36
- boxSizing: 'border-box',
37
- borderRadius: '20px',
38
- color: `${token('color.text.subtle', N400)}`,
39
- cursor: 'pointer',
40
- margin: 0,
41
- padding: 0,
42
- transition: '200ms ease-in-out',
43
- '&:hover': {
44
- background: `${token('color.background.neutral.subtle.hovered', N20)}`
45
- }
46
- });
47
- const reactedStyle = css({
48
- backgroundColor: token('color.background.selected', B50),
49
- borderColor: token('color.border.selected', B300),
50
- '&:hover': {
51
- background: `${token('color.background.selected.hovered', B75)}`
52
- }
53
- });
54
- const flashHeight = akHeight - 2; // height without the 1px border
55
-
56
- const flashStyle = css({
57
- display: 'flex',
58
- flexDirection: 'row',
59
- borderRadius: '10px',
60
- height: `${flashHeight}px`
61
- });
62
-
63
- class ReactionWithoutAnalytics extends PureComponent {
64
- constructor(props) {
65
- super(props);
66
-
67
- _defineProperty(this, "mounted", false);
68
-
69
- _defineProperty(this, "handleMouseDown", event => {
70
- event.preventDefault();
71
- event.stopPropagation();
72
-
73
- if (this.props.onClick && isLeftClick(event)) {
74
- const {
75
- reaction,
76
- createAnalyticsEvent
77
- } = this.props;
78
- const {
79
- reacted,
80
- emojiId
81
- } = reaction;
82
- createAndFireSafe(createAnalyticsEvent, createReactionClickedEvent, !reacted, emojiId);
83
- this.props.onClick(this.props.reaction.emojiId, event);
84
- }
85
- });
86
-
87
- _defineProperty(this, "handleMouseEnter", event => {
88
- event.preventDefault();
89
- const {
90
- onMouseEnter,
91
- reaction
92
- } = this.props;
93
-
94
- if (!reaction.users || !reaction.users.length) {
95
- this.hoverStart = Date.now();
96
- }
97
-
98
- if (onMouseEnter) {
99
- onMouseEnter(this.props.reaction, event);
100
- }
101
- });
102
-
103
- this.state = {};
104
- }
105
-
106
- componentDidUpdate({
107
- reaction: prevReaction
108
- }) {
109
- if (!prevReaction.users && this.props.reaction.users) {
110
- createAndFireSafe(this.props.createAnalyticsEvent, createReactionHoveredEvent, this.hoverStart);
111
- }
112
- }
113
-
114
- componentDidMount() {
115
- this.mounted = true;
116
- this.props.emojiProvider.then(emojiResource => emojiResource.findByEmojiId({
117
- shortName: '',
118
- id: this.props.reaction.emojiId
119
- })).then(foundEmoji => {
120
- if (foundEmoji && this.mounted) {
121
- this.setState({
122
- emojiName: foundEmoji.name
123
- });
124
- }
125
- });
126
- }
127
-
128
- componentWillUnmount() {
129
- this.mounted = false;
130
- }
131
-
132
- render() {
133
- const {
134
- emojiProvider,
135
- reaction,
136
- className: classNameProp,
137
- flash
138
- } = this.props;
139
- const {
140
- emojiName
141
- } = this.state;
142
- const emojiId = {
143
- id: reaction.emojiId,
144
- shortName: ''
145
- };
146
- return jsx(ReactionTooltip, {
147
- emojiName: emojiName,
148
- reaction: reaction
149
- }, jsx("button", {
150
- className: classNameProp,
151
- css: [reactionStyle, reaction.reacted && reactedStyle],
152
- onMouseUp: this.handleMouseDown,
153
- onMouseEnter: this.handleMouseEnter
154
- }, jsx(FlashAnimation, {
155
- flash: flash,
156
- css: flashStyle
157
- }, jsx("div", {
158
- css: emojiStyle
159
- }, jsx(ResourcedEmoji, {
160
- emojiProvider: emojiProvider,
161
- emojiId: emojiId,
162
- fitToHeight: 16
163
- })), jsx(Counter, {
164
- value: reaction.count,
165
- highlight: reaction.reacted
166
- }))));
167
- }
168
-
169
- }
170
-
171
- _defineProperty(ReactionWithoutAnalytics, "defaultProps", {
172
- flash: false,
173
- className: undefined,
174
- onMouseEnter: undefined,
175
- flashOnMount: false
176
- });
177
-
178
- _defineProperty(ReactionWithoutAnalytics, "displayName", 'Reaction');
179
-
180
- export const Reaction = withAnalyticsEvents()(ReactionWithoutAnalytics);
@@ -1,239 +0,0 @@
1
- import _defineProperty from "@babel/runtime/helpers/defineProperty";
2
-
3
- /** @jsx jsx */
4
- import React, { Fragment, PureComponent } from 'react';
5
- import ReactDOM from 'react-dom';
6
- import { jsx, css } from '@emotion/core';
7
- import { EmojiPicker } from '@atlaskit/emoji/picker';
8
- import { Manager, Popper, Reference } from '@atlaskit/popper';
9
- import { borderRadius } from '@atlaskit/theme/constants';
10
- import { N0, N50A, N60A } from '@atlaskit/theme/colors';
11
- import { token } from '@atlaskit/tokens';
12
- import { Selector } from './Selector';
13
- import { Trigger } from './Trigger';
14
- import { UFO } from '../analytics';
15
- import { layers } from '@atlaskit/theme/constants';
16
- const pickerStyle = css({
17
- verticalAlign: 'middle',
18
- '&.miniMode': {
19
- display: 'inline-block',
20
- marginRight: '4px'
21
- }
22
- });
23
- const contentStyle = css({
24
- display: 'flex'
25
- });
26
- const popupStyle = css({
27
- background: token('elevation.surface.overlay', N0),
28
- borderRadius: `${borderRadius()}px`,
29
- boxShadow: token('elevation.shadow.overlay', `0 4px 8px -2px ${N50A}, 0 0 1px ${N60A}`),
30
- '&> div': {
31
- boxShadow: undefined
32
- }
33
- });
34
-
35
- function noop() {}
36
-
37
- export class ReactionPicker extends PureComponent {
38
- constructor(props) {
39
- super(props);
40
-
41
- _defineProperty(this, "updatePopper", noop);
42
-
43
- _defineProperty(this, "handleClickOutside", e => {
44
- const {
45
- isOpen
46
- } = this.state;
47
-
48
- if (!isOpen) {
49
- return;
50
- }
51
-
52
- const domNode = ReactDOM.findDOMNode(this);
53
-
54
- if (!domNode || e.target instanceof Node && !domNode.contains(e.target)) {
55
- if (this.props.onCancel) {
56
- this.props.onCancel();
57
- }
58
-
59
- this.close();
60
- }
61
- });
62
-
63
- _defineProperty(this, "showFullPicker", e => {
64
- e.preventDefault();
65
- const {
66
- onMore
67
- } = this.props;
68
-
69
- if (onMore) {
70
- onMore();
71
- } // Update popper position
72
-
73
-
74
- this.setState({
75
- isOpen: true,
76
- showFullPicker: true
77
- }, () => this.updatePopper());
78
- });
79
-
80
- _defineProperty(this, "onEmojiSelected", emoji => {
81
- const {
82
- onSelection
83
- } = this.props;
84
-
85
- if (!emoji.id) {
86
- return;
87
- }
88
-
89
- onSelection(emoji.id, this.state.showFullPicker ? 'emojiPicker' : 'quickSelector');
90
- this.close(emoji.id);
91
- });
92
-
93
- _defineProperty(this, "onTriggerClick", () => {
94
- // ufo start reaction experience
95
- UFO.PickerRender.start();
96
-
97
- if (this.props.onOpen) {
98
- this.props.onOpen();
99
- }
100
-
101
- this.setState({
102
- isOpen: !this.state.isOpen,
103
- showFullPicker: false
104
- }, () => {
105
- // ufo add reaction success
106
- UFO.PickerRender.success();
107
- });
108
- });
109
-
110
- _defineProperty(this, "popperModifiers", [{
111
- name: 'applyStyle',
112
- enabled: false
113
- }, {
114
- name: 'hide',
115
- enabled: false
116
- }, {
117
- name: 'offset',
118
- enabled: true,
119
- options: {
120
- offset: [0, 0]
121
- }
122
- }, {
123
- name: 'flip',
124
- enabled: true,
125
- options: {
126
- flipVariations: true,
127
- boundariesElement: 'scrollParent'
128
- }
129
- }, {
130
- name: 'preventOverflow',
131
- enabled: true
132
- }]);
133
-
134
- this.state = {
135
- isOpen: false,
136
- showFullPicker: false
137
- };
138
- }
139
-
140
- componentDidMount() {
141
- document.addEventListener('click', this.handleClickOutside);
142
- }
143
-
144
- componentWillUnmount() {
145
- document.removeEventListener('click', this.handleClickOutside);
146
- UFO.PickerRender.abort({
147
- metadata: {
148
- source: 'Reaction-Picker',
149
- reason: 'unmount'
150
- }
151
- });
152
- }
153
-
154
- close(_emojiId) {
155
- this.setState({
156
- isOpen: false,
157
- showFullPicker: false
158
- }, () => {
159
- // ufo abort reaction experience
160
- UFO.PickerRender.abort({
161
- metadata: {
162
- emojiId: _emojiId,
163
- source: 'Reaction-Picker',
164
- reason: 'close dialog'
165
- }
166
- });
167
- });
168
- }
169
-
170
- renderSelector() {
171
- const {
172
- emojiProvider,
173
- allowAllEmojis
174
- } = this.props;
175
- return jsx("div", {
176
- css: contentStyle
177
- }, jsx(Selector, {
178
- emojiProvider: emojiProvider,
179
- onSelection: this.onEmojiSelected,
180
- showMore: allowAllEmojis,
181
- onMoreClick: this.showFullPicker
182
- }));
183
- }
184
-
185
- renderEmojiPicker() {
186
- return jsx(EmojiPicker, {
187
- emojiProvider: this.props.emojiProvider,
188
- onSelection: this.onEmojiSelected
189
- });
190
- }
191
-
192
- renderContent() {
193
- return this.state.showFullPicker ? this.renderEmojiPicker() : this.renderSelector();
194
- }
195
-
196
- render() {
197
- const {
198
- isOpen
199
- } = this.state;
200
- const {
201
- miniMode,
202
- className
203
- } = this.props;
204
- return jsx("div", {
205
- className: ` ${isOpen ? 'isOpen' : ''} ${miniMode ? 'miniMode' : ''} ${className}`,
206
- css: pickerStyle
207
- }, jsx(Manager, null, jsx(Reference, null, ({
208
- ref
209
- }) => jsx(Trigger, {
210
- ref: ref,
211
- onClick: this.onTriggerClick,
212
- miniMode: miniMode,
213
- disabled: this.props.disabled
214
- })), jsx(Popper, {
215
- placement: "bottom-start",
216
- modifiers: this.popperModifiers
217
- }, ({
218
- ref,
219
- style,
220
- update
221
- }) => {
222
- this.updatePopper = update;
223
- return jsx(Fragment, null, isOpen && jsx("div", {
224
- style: {
225
- zIndex: layers.layer(),
226
- ...style
227
- },
228
- ref: ref
229
- }, jsx("div", {
230
- css: popupStyle
231
- }, this.renderContent())));
232
- })));
233
- }
234
-
235
- }
236
-
237
- _defineProperty(ReactionPicker, "defaultProps", {
238
- disabled: false
239
- });
@@ -1,66 +0,0 @@
1
- import _extends from "@babel/runtime/helpers/extends";
2
-
3
- /** @jsx jsx */
4
- import React from 'react';
5
- import { jsx, css } from '@emotion/core';
6
- import Tooltip from '@atlaskit/tooltip';
7
- import { FormattedMessage } from 'react-intl-next';
8
- import { token } from '@atlaskit/tokens';
9
- import { N90 } from '@atlaskit/theme/colors';
10
- import { messages } from './i18n';
11
- const verticalMargin = 5;
12
- const tooltipStyle = css({
13
- maxWidth: '150px',
14
- textOverflow: 'ellipsis',
15
- whiteSpace: 'nowrap',
16
- overflow: 'hidden',
17
- marginBottom: verticalMargin,
18
- ul: {
19
- listStyle: 'none',
20
- margin: 0,
21
- padding: 0,
22
- textAlign: 'left'
23
- },
24
- li: {
25
- overflow: 'hidden',
26
- textOverflow: 'ellipsis',
27
- marginTop: verticalMargin
28
- }
29
- });
30
- const emojiNameStyle = css({
31
- textTransform: 'capitalize',
32
- color: token('color.text.inverse', N90),
33
- fontWeight: 600
34
- });
35
- const footerStyle = css({
36
- color: token('color.text.inverse', N90),
37
- fontWeight: 300
38
- });
39
- const TOOLTIP_USERS_LIMIT = 5;
40
- export const ReactionTooltip = ({
41
- emojiName,
42
- children,
43
- reaction: {
44
- users
45
- }
46
- }) => {
47
- const content = !users || users.length === 0 ? null : jsx("div", {
48
- css: tooltipStyle
49
- }, jsx("ul", null, emojiName ? jsx("li", {
50
- css: emojiNameStyle
51
- }, emojiName) : null, users.slice(0, TOOLTIP_USERS_LIMIT).map((user, index) => {
52
- return jsx("li", {
53
- key: index
54
- }, user.displayName);
55
- }), users.length > TOOLTIP_USERS_LIMIT ? jsx("li", {
56
- css: footerStyle
57
- }, jsx(FormattedMessage, _extends({}, messages.otherUsers, {
58
- values: {
59
- count: users.length - TOOLTIP_USERS_LIMIT
60
- }
61
- }))) : null));
62
- return jsx(Tooltip, {
63
- content: content,
64
- position: "bottom"
65
- }, React.Children.only(children));
66
- };