@atlaskit/reactions 21.8.0 → 22.0.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 (200) hide show
  1. package/CHANGELOG.md +32 -0
  2. package/dist/cjs/MockReactionsClient.js +24 -16
  3. package/dist/cjs/analytics/analytics.js +9 -1
  4. package/dist/cjs/analytics/ufo.js +24 -2
  5. package/dist/cjs/components/Counter/Counter.js +16 -20
  6. package/dist/cjs/components/Reaction/Reaction.js +52 -18
  7. package/dist/cjs/components/Reaction/styles.js +8 -1
  8. package/dist/cjs/components/ReactionDialog/ReactionView.js +121 -0
  9. package/dist/cjs/components/ReactionDialog/ReactionsDialog.js +187 -0
  10. package/dist/cjs/components/ReactionDialog/ReactionsList.js +104 -0
  11. package/dist/cjs/components/ReactionDialog/index.js +13 -0
  12. package/dist/cjs/components/ReactionDialog/styles.js +202 -0
  13. package/dist/cjs/components/ReactionPicker/ReactionPicker.js +15 -20
  14. package/dist/cjs/components/ReactionTooltip/ReactionTooltip.js +26 -12
  15. package/dist/cjs/components/ReactionTooltip/styles.js +11 -2
  16. package/dist/cjs/components/Reactions/Reactions.js +166 -21
  17. package/dist/cjs/components/Reactions/styles.js +11 -6
  18. package/dist/cjs/components/Trigger/Trigger.js +1 -2
  19. package/dist/cjs/components/index.js +9 -1
  20. package/dist/cjs/containers/ConnectedReactionPicker/ConnectedReactionPicker.js +6 -2
  21. package/dist/cjs/containers/ConnectedReactionsView/ConnectedReactionsView.js +9 -4
  22. package/dist/cjs/shared/constants.js +62 -10
  23. package/dist/cjs/shared/i18n.js +40 -0
  24. package/dist/cjs/shared/utils.js +60 -2
  25. package/dist/cjs/types/reaction.js +13 -1
  26. package/dist/cjs/version.json +1 -1
  27. package/dist/es2019/MockReactionsClient.js +22 -14
  28. package/dist/es2019/analytics/analytics.js +3 -0
  29. package/dist/es2019/analytics/ufo.js +19 -0
  30. package/dist/es2019/components/Counter/Counter.js +16 -15
  31. package/dist/es2019/components/Reaction/Reaction.js +43 -18
  32. package/dist/es2019/components/Reaction/styles.js +9 -2
  33. package/dist/es2019/components/ReactionDialog/ReactionView.js +69 -0
  34. package/dist/es2019/components/ReactionDialog/ReactionsDialog.js +145 -0
  35. package/dist/es2019/components/ReactionDialog/ReactionsList.js +69 -0
  36. package/dist/es2019/components/ReactionDialog/index.js +1 -0
  37. package/dist/es2019/components/ReactionDialog/styles.js +169 -0
  38. package/dist/es2019/components/ReactionPicker/ReactionPicker.js +12 -20
  39. package/dist/es2019/components/ReactionTooltip/ReactionTooltip.js +22 -12
  40. package/dist/es2019/components/ReactionTooltip/styles.js +9 -1
  41. package/dist/es2019/components/Reactions/Reactions.js +146 -22
  42. package/dist/es2019/components/Reactions/styles.js +9 -5
  43. package/dist/es2019/components/Trigger/Trigger.js +1 -2
  44. package/dist/es2019/components/index.js +2 -1
  45. package/dist/es2019/containers/ConnectedReactionPicker/ConnectedReactionPicker.js +8 -2
  46. package/dist/es2019/containers/ConnectedReactionsView/ConnectedReactionsView.js +5 -4
  47. package/dist/es2019/shared/constants.js +55 -6
  48. package/dist/es2019/shared/i18n.js +43 -0
  49. package/dist/es2019/shared/utils.js +51 -0
  50. package/dist/es2019/types/reaction.js +13 -1
  51. package/dist/es2019/version.json +1 -1
  52. package/dist/esm/MockReactionsClient.js +24 -13
  53. package/dist/esm/analytics/analytics.js +5 -0
  54. package/dist/esm/analytics/ufo.js +19 -0
  55. package/dist/esm/components/Counter/Counter.js +17 -17
  56. package/dist/esm/components/Reaction/Reaction.js +51 -19
  57. package/dist/esm/components/Reaction/styles.js +9 -2
  58. package/dist/esm/components/ReactionDialog/ReactionView.js +98 -0
  59. package/dist/esm/components/ReactionDialog/ReactionsDialog.js +161 -0
  60. package/dist/esm/components/ReactionDialog/ReactionsList.js +79 -0
  61. package/dist/esm/components/ReactionDialog/index.js +1 -0
  62. package/dist/esm/components/ReactionDialog/styles.js +177 -0
  63. package/dist/esm/components/ReactionPicker/ReactionPicker.js +15 -20
  64. package/dist/esm/components/ReactionTooltip/ReactionTooltip.js +26 -12
  65. package/dist/esm/components/ReactionTooltip/styles.js +9 -1
  66. package/dist/esm/components/Reactions/Reactions.js +158 -22
  67. package/dist/esm/components/Reactions/styles.js +9 -5
  68. package/dist/esm/components/Trigger/Trigger.js +1 -2
  69. package/dist/esm/components/index.js +2 -1
  70. package/dist/esm/containers/ConnectedReactionPicker/ConnectedReactionPicker.js +6 -2
  71. package/dist/esm/containers/ConnectedReactionsView/ConnectedReactionsView.js +8 -4
  72. package/dist/esm/shared/constants.js +57 -6
  73. package/dist/esm/shared/i18n.js +40 -0
  74. package/dist/esm/shared/utils.js +53 -0
  75. package/dist/esm/types/reaction.js +13 -1
  76. package/dist/esm/version.json +1 -1
  77. package/dist/types/MockReactionsClient.d.ts +7 -3
  78. package/dist/types/analytics/analytics.d.ts +10 -0
  79. package/dist/types/analytics/ufo.d.ts +18 -2
  80. package/dist/types/components/Counter/Counter.d.ts +0 -1
  81. package/dist/types/components/Reaction/Reaction.d.ts +11 -1
  82. package/dist/types/components/ReactionDialog/ReactionView.d.ts +19 -0
  83. package/dist/types/components/ReactionDialog/ReactionsDialog.d.ts +32 -0
  84. package/dist/types/components/ReactionDialog/ReactionsList.d.ts +23 -0
  85. package/dist/types/components/ReactionDialog/index.d.ts +1 -0
  86. package/dist/types/components/ReactionDialog/styles.d.ts +11 -0
  87. package/dist/types/components/ReactionPicker/ReactionPicker.d.ts +5 -0
  88. package/dist/types/components/ReactionTooltip/ReactionTooltip.d.ts +12 -0
  89. package/dist/types/components/ReactionTooltip/styles.d.ts +1 -0
  90. package/dist/types/components/Reactions/Reactions.d.ts +45 -6
  91. package/dist/types/components/Reactions/styles.d.ts +1 -0
  92. package/dist/types/components/index.d.ts +1 -0
  93. package/dist/types/containers/ConnectedReactionPicker/ConnectedReactionPicker.d.ts +0 -4
  94. package/dist/types/containers/ConnectedReactionsView/ConnectedReactionsView.d.ts +2 -11
  95. package/dist/types/index.d.ts +1 -1
  96. package/dist/types/shared/constants.d.ts +11 -5
  97. package/dist/types/shared/i18n.d.ts +40 -0
  98. package/dist/types/shared/utils.d.ts +7 -0
  99. package/dist/types/types/User.d.ts +10 -0
  100. package/dist/types/types/index.d.ts +1 -1
  101. package/dist/types/types/reaction.d.ts +15 -2
  102. package/docs/0-intro.tsx +3 -0
  103. package/docs/5-graphql-support.tsx +153 -0
  104. package/package.json +11 -18
  105. package/dist/types-ts4.0/MockReactionsClient.d.ts +0 -23
  106. package/dist/types-ts4.0/analytics/analytics.d.ts +0 -102
  107. package/dist/types-ts4.0/analytics/constants.d.ts +0 -1
  108. package/dist/types-ts4.0/analytics/index.d.ts +0 -2
  109. package/dist/types-ts4.0/analytics/ufo.d.ts +0 -40
  110. package/dist/types-ts4.0/client/ReactionServiceClient.d.ts +0 -35
  111. package/dist/types-ts4.0/client/index.d.ts +0 -1
  112. package/dist/types-ts4.0/components/Counter/Counter.d.ts +0 -45
  113. package/dist/types-ts4.0/components/Counter/index.d.ts +0 -3
  114. package/dist/types-ts4.0/components/Counter/styles.d.ts +0 -3
  115. package/dist/types-ts4.0/components/EmojiButton/EmojiButton.d.ts +0 -22
  116. package/dist/types-ts4.0/components/EmojiButton/index.d.ts +0 -2
  117. package/dist/types-ts4.0/components/EmojiButton/styles.d.ts +0 -1
  118. package/dist/types-ts4.0/components/FlashAnimation/FlashAnimation.d.ts +0 -20
  119. package/dist/types-ts4.0/components/FlashAnimation/index.d.ts +0 -2
  120. package/dist/types-ts4.0/components/FlashAnimation/styles.d.ts +0 -5
  121. package/dist/types-ts4.0/components/Reaction/Reaction.d.ts +0 -38
  122. package/dist/types-ts4.0/components/Reaction/index.d.ts +0 -2
  123. package/dist/types-ts4.0/components/Reaction/styles.d.ts +0 -10
  124. package/dist/types-ts4.0/components/ReactionPicker/ReactionPicker.d.ts +0 -50
  125. package/dist/types-ts4.0/components/ReactionPicker/index.d.ts +0 -2
  126. package/dist/types-ts4.0/components/ReactionPicker/styles.d.ts +0 -3
  127. package/dist/types-ts4.0/components/ReactionTooltip/ReactionTooltip.d.ts +0 -22
  128. package/dist/types-ts4.0/components/ReactionTooltip/index.d.ts +0 -2
  129. package/dist/types-ts4.0/components/ReactionTooltip/styles.d.ts +0 -4
  130. package/dist/types-ts4.0/components/Reactions/Reactions.d.ts +0 -57
  131. package/dist/types-ts4.0/components/Reactions/index.d.ts +0 -2
  132. package/dist/types-ts4.0/components/Reactions/styles.d.ts +0 -2
  133. package/dist/types-ts4.0/components/Selector/Selector.d.ts +0 -34
  134. package/dist/types-ts4.0/components/Selector/index.d.ts +0 -3
  135. package/dist/types-ts4.0/components/Selector/styles.d.ts +0 -12
  136. package/dist/types-ts4.0/components/ShowMore/ShowMore.d.ts +0 -35
  137. package/dist/types-ts4.0/components/ShowMore/index.d.ts +0 -2
  138. package/dist/types-ts4.0/components/ShowMore/styles.d.ts +0 -3
  139. package/dist/types-ts4.0/components/Trigger/Trigger.d.ts +0 -35
  140. package/dist/types-ts4.0/components/Trigger/index.d.ts +0 -2
  141. package/dist/types-ts4.0/components/Trigger/styles.d.ts +0 -5
  142. package/dist/types-ts4.0/components/UfoErrorBoundary/UfoErrorBoundary.d.ts +0 -16
  143. package/dist/types-ts4.0/components/UfoErrorBoundary/index.d.ts +0 -2
  144. package/dist/types-ts4.0/components/index.d.ts +0 -8
  145. package/dist/types-ts4.0/containers/ConnectedReactionPicker/ConnectedReactionPicker.d.ts +0 -27
  146. package/dist/types-ts4.0/containers/ConnectedReactionPicker/index.d.ts +0 -2
  147. package/dist/types-ts4.0/containers/ConnectedReactionsView/ConnectedReactionsView.d.ts +0 -52
  148. package/dist/types-ts4.0/containers/ConnectedReactionsView/index.d.ts +0 -2
  149. package/dist/types-ts4.0/containers/index.d.ts +0 -2
  150. package/dist/types-ts4.0/hooks/index.d.ts +0 -1
  151. package/dist/types-ts4.0/hooks/useClickAway.d.ts +0 -9
  152. package/dist/types-ts4.0/i18n/cs.d.ts +0 -13
  153. package/dist/types-ts4.0/i18n/da.d.ts +0 -13
  154. package/dist/types-ts4.0/i18n/de.d.ts +0 -13
  155. package/dist/types-ts4.0/i18n/en.d.ts +0 -7
  156. package/dist/types-ts4.0/i18n/en_GB.d.ts +0 -7
  157. package/dist/types-ts4.0/i18n/en_ZZ.d.ts +0 -13
  158. package/dist/types-ts4.0/i18n/es.d.ts +0 -13
  159. package/dist/types-ts4.0/i18n/et.d.ts +0 -12
  160. package/dist/types-ts4.0/i18n/fi.d.ts +0 -13
  161. package/dist/types-ts4.0/i18n/fr.d.ts +0 -13
  162. package/dist/types-ts4.0/i18n/hu.d.ts +0 -13
  163. package/dist/types-ts4.0/i18n/index.d.ts +0 -35
  164. package/dist/types-ts4.0/i18n/is.d.ts +0 -6
  165. package/dist/types-ts4.0/i18n/it.d.ts +0 -13
  166. package/dist/types-ts4.0/i18n/ja.d.ts +0 -13
  167. package/dist/types-ts4.0/i18n/ko.d.ts +0 -13
  168. package/dist/types-ts4.0/i18n/languages.d.ts +0 -27
  169. package/dist/types-ts4.0/i18n/nb.d.ts +0 -13
  170. package/dist/types-ts4.0/i18n/nl.d.ts +0 -13
  171. package/dist/types-ts4.0/i18n/pl.d.ts +0 -13
  172. package/dist/types-ts4.0/i18n/pt_BR.d.ts +0 -13
  173. package/dist/types-ts4.0/i18n/pt_PT.d.ts +0 -12
  174. package/dist/types-ts4.0/i18n/ro.d.ts +0 -6
  175. package/dist/types-ts4.0/i18n/ru.d.ts +0 -13
  176. package/dist/types-ts4.0/i18n/sk.d.ts +0 -12
  177. package/dist/types-ts4.0/i18n/sv.d.ts +0 -13
  178. package/dist/types-ts4.0/i18n/th.d.ts +0 -13
  179. package/dist/types-ts4.0/i18n/tr.d.ts +0 -13
  180. package/dist/types-ts4.0/i18n/uk.d.ts +0 -13
  181. package/dist/types-ts4.0/i18n/vi.d.ts +0 -13
  182. package/dist/types-ts4.0/i18n/zh.d.ts +0 -13
  183. package/dist/types-ts4.0/i18n/zh_TW.d.ts +0 -13
  184. package/dist/types-ts4.0/index.d.ts +0 -7
  185. package/dist/types-ts4.0/shared/constants.d.ts +0 -21
  186. package/dist/types-ts4.0/shared/i18n.d.ts +0 -32
  187. package/dist/types-ts4.0/shared/index.d.ts +0 -3
  188. package/dist/types-ts4.0/shared/utils.d.ts +0 -11
  189. package/dist/types-ts4.0/store/MemoryReactionsStore.d.ts +0 -94
  190. package/dist/types-ts4.0/store/ReactionConsumer.d.ts +0 -57
  191. package/dist/types-ts4.0/store/batched.d.ts +0 -2
  192. package/dist/types-ts4.0/store/index.d.ts +0 -3
  193. package/dist/types-ts4.0/store/utils.d.ts +0 -11
  194. package/dist/types-ts4.0/types/Actions.d.ts +0 -27
  195. package/dist/types-ts4.0/types/Updater.d.ts +0 -1
  196. package/dist/types-ts4.0/types/User.d.ts +0 -10
  197. package/dist/types-ts4.0/types/client.d.ts +0 -38
  198. package/dist/types-ts4.0/types/index.d.ts +0 -7
  199. package/dist/types-ts4.0/types/reaction.d.ts +0 -100
  200. package/dist/types-ts4.0/types/store.d.ts +0 -63
@@ -7,7 +7,10 @@ export declare enum ExperienceName {
7
7
  PICKER_OPENED = "reactions-picker-opened",
8
8
  REACTION_ADDED = "reaction-added",
9
9
  REACTION_REMOVED = "reaction-removed",
10
- REACTION_DETAILS_FETCHED = "reaction-details-fetched"
10
+ REACTION_DETAILS_FETCHED = "reaction-details-fetched",
11
+ REACTION_DIALOG_OPENED = "reaction-dialog-opened",
12
+ REACTION_DIALOG_CLOSED = "reaction-dialog-closed",
13
+ REACTION_DIALOG_SELECTED_REACTION_CHANGED = "reaction-dialog-selected-reaction-changed"
11
14
  }
12
15
  /**
13
16
  * UFO types of components been instrumented
@@ -15,7 +18,8 @@ export declare enum ExperienceName {
15
18
  export declare enum ComponentName {
16
19
  PICKER_RENDERED = "reactions-picker",
17
20
  REACTIONS = "reactions-list",
18
- REACTION_ITEM = "reaction-item"
21
+ REACTION_ITEM = "reaction-item",
22
+ REACTION_DIALOG = "reaction-dialog"
19
23
  }
20
24
  /**
21
25
  * Experience when the emoji picker is opened
@@ -29,6 +33,18 @@ export declare const ReactionsRendered: ConcurrentExperience;
29
33
  * Experience when a reaction emoji gets added
30
34
  */
31
35
  export declare const ReactionsAdd: ConcurrentExperience;
36
+ /**
37
+ * Expeirence when a reaction dialog is opened
38
+ */
39
+ export declare const ReactionDialogOpened: UFOExperience;
40
+ /**
41
+ * Experience when a reaction dialog is closed
42
+ */
43
+ export declare const ReactionDialogClosed: UFOExperience;
44
+ /**
45
+ * Experience when a reaction changed/fetched from inside the modal dialog
46
+ */
47
+ export declare const ReactionDialogSelectedReactionChanged: UFOExperience;
32
48
  /**
33
49
  * Experience when a reaction details gets fetched
34
50
  */
@@ -38,7 +38,6 @@ export interface CounterProps {
38
38
  */
39
39
  animationDuration?: number;
40
40
  }
41
- export declare const getLabel: (value: number, overLimitLabel?: string | undefined, limit?: number | undefined) => string;
42
41
  /**
43
42
  * Display reaction count next to the emoji button
44
43
  */
@@ -2,11 +2,13 @@
2
2
  import React from 'react';
3
3
  import { EmojiProvider } from '@atlaskit/emoji';
4
4
  import { ReactionSummary, ReactionClick, ReactionMouseEnter } from '../../types';
5
+ import { ReactionTooltipProps } from '../ReactionTooltip';
6
+ import { ReactionFocused } from '../../types/reaction';
5
7
  /**
6
8
  * Test id for Reaction item wrapper div
7
9
  */
8
10
  export declare const RENDER_REACTION_TESTID = "render_reaction_wrapper";
9
- export interface ReactionProps {
11
+ export interface ReactionProps extends Pick<ReactionTooltipProps, 'allowUserDialog'> {
10
12
  /**
11
13
  * Data for the reaction
12
14
  */
@@ -27,10 +29,18 @@ export interface ReactionProps {
27
29
  * Optional event when the mouse cursor hovers over the reaction
28
30
  */
29
31
  onMouseEnter?: ReactionMouseEnter;
32
+ /**
33
+ * Optional event when focused the reaction
34
+ */
35
+ onFocused?: ReactionFocused;
30
36
  /**
31
37
  * Show custom animation or render as standard without animation (defaults to false)
32
38
  */
33
39
  flash?: boolean;
40
+ /**
41
+ * Optional function when the user wants to see more users in a modal
42
+ */
43
+ handleUserListClick?: (emojiId: string) => void;
34
44
  }
35
45
  /**
36
46
  * Render an emoji reaction button
@@ -0,0 +1,19 @@
1
+ /** @jsx jsx */
2
+ import { FC } from 'react';
3
+ import { EmojiProvider } from '@atlaskit/emoji/resource';
4
+ import { ReactionSummary } from '../../types';
5
+ export interface ReactionViewProps {
6
+ /**
7
+ * Selected reaction to get user data from
8
+ */
9
+ reaction: ReactionSummary;
10
+ /**
11
+ * Current emoji selected in the reactions dialog
12
+ */
13
+ selectedEmojiId: string;
14
+ /**
15
+ * Provider for loading emojis
16
+ */
17
+ emojiProvider: Promise<EmojiProvider>;
18
+ }
19
+ export declare const ReactionView: FC<ReactionViewProps>;
@@ -0,0 +1,32 @@
1
+ /** @jsx jsx */
2
+ import { FC } from 'react';
3
+ import { EmojiProvider } from '@atlaskit/emoji/resource';
4
+ import { OnCloseHandler } from '@atlaskit/modal-dialog';
5
+ import { onDialogSelectReactionChange, ReactionSummary } from '../../types';
6
+ /**
7
+ * Test id for the Reactions modal dialog
8
+ */
9
+ export declare const RENDER_MODAL_TESTID = "render-reactions-modal";
10
+ export interface ReactionsDialogProps {
11
+ /**
12
+ * List of reactions to render (defaults to empty list)
13
+ */
14
+ reactions: ReactionSummary[];
15
+ /**
16
+ * Optional handler when the dialog closes
17
+ */
18
+ handleCloseReactionsDialog: OnCloseHandler;
19
+ /**
20
+ * Provider for loading emojis
21
+ */
22
+ emojiProvider: Promise<EmojiProvider>;
23
+ /**
24
+ * Current emoji selected to show the reactions dialog
25
+ */
26
+ selectedEmojiId: string;
27
+ /**
28
+ * Optional callback function called when user selects a reaction in reactions dialog
29
+ */
30
+ handleSelectReaction?: onDialogSelectReactionChange;
31
+ }
32
+ export declare const ReactionsDialog: FC<ReactionsDialogProps>;
@@ -0,0 +1,23 @@
1
+ /** @jsx jsx */
2
+ import { FC } from 'react';
3
+ import { EmojiProvider } from '@atlaskit/emoji/resource';
4
+ import { onDialogSelectReactionChange, ReactionSummary } from '../../types';
5
+ export interface ReactionsListProps {
6
+ /**
7
+ * Sorted list of reactions to render in list
8
+ */
9
+ reactions: ReactionSummary[];
10
+ /**
11
+ * Current emoji selected in the reactions dialog
12
+ */
13
+ initialEmojiId: string;
14
+ /**
15
+ * Provider for loading emojis
16
+ */
17
+ emojiProvider: Promise<EmojiProvider>;
18
+ /**
19
+ * Function to handle clicking on an emoji from the list
20
+ */
21
+ onReactionChanged: onDialogSelectReactionChange;
22
+ }
23
+ export declare const ReactionsList: FC<ReactionsListProps>;
@@ -0,0 +1 @@
1
+ export { ReactionsDialog } from './ReactionsDialog';
@@ -0,0 +1,11 @@
1
+ import { ThemeIds } from '@atlaskit/tokens';
2
+ export declare const containerStyle: (reactionsBorderWidth: number) => import("@emotion/react").SerializedStyles;
3
+ export declare const titleStyle: import("@emotion/react").SerializedStyles;
4
+ export declare const counterStyle: (isSelected: boolean) => import("@emotion/react").SerializedStyles;
5
+ export declare const customTabWrapper: (isSelected: boolean, selectedEmojiId: string, theme: ThemeIds | null) => import("@emotion/react").SerializedStyles;
6
+ export declare const navigationContainerStyle: import("@emotion/react").SerializedStyles;
7
+ export declare const reactionViewStyle: import("@emotion/react").SerializedStyles;
8
+ export declare const userListStyle: import("@emotion/react").SerializedStyles;
9
+ export declare const userStyle: import("@emotion/react").SerializedStyles;
10
+ export declare const customTabListStyles: import("@emotion/react").SerializedStyles;
11
+ export declare const centerSpinner: import("@emotion/react").SerializedStyles;
@@ -1,5 +1,6 @@
1
1
  /** @jsx jsx */
2
2
  import React from 'react';
3
+ import { PickerSize } from '@atlaskit/emoji/types';
3
4
  import { EmojiProvider } from '@atlaskit/emoji/resource';
4
5
  import { SelectorProps } from '../Selector';
5
6
  import { TriggerProps } from '../Trigger';
@@ -43,6 +44,10 @@ export interface ReactionPickerProps extends Pick<SelectorProps, 'pickerQuickRea
43
44
  * Optional event handler when the custom emoji picker icon is selected
44
45
  */
45
46
  onShowMore?: () => void;
47
+ /**
48
+ * Optional emoji picker size to control the size of emoji picker
49
+ */
50
+ emojiPickerSize?: PickerSize;
46
51
  }
47
52
  /**
48
53
  * Picker component for adding reactions
@@ -18,5 +18,17 @@ export interface ReactionTooltipProps {
18
18
  * Optional Max users to show in the displayed tooltip (defaults to 5)
19
19
  */
20
20
  maxReactions?: number;
21
+ /**
22
+ * Optional function when the user wants to see more users in a modal
23
+ */
24
+ handleUserListClick?: (emojiId: string) => void;
25
+ /**
26
+ * Optional flag to show reactions dialog (defaults to false)
27
+ */
28
+ allowUserDialog?: boolean;
29
+ /**
30
+ * Optional flag for enabling tooltip (defaults to true)
31
+ */
32
+ isEnabled?: boolean;
21
33
  }
22
34
  export declare const ReactionTooltip: React.FC<ReactionTooltipProps>;
@@ -2,3 +2,4 @@ export declare const verticalMargin = 5;
2
2
  export declare const tooltipStyle: import("@emotion/react").SerializedStyles;
3
3
  export declare const emojiNameStyle: import("@emotion/react").SerializedStyles;
4
4
  export declare const footerStyle: import("@emotion/react").SerializedStyles;
5
+ export declare const underlineStyle: import("@emotion/react").SerializedStyles;
@@ -1,14 +1,37 @@
1
1
  /** @jsx jsx */
2
2
  import React from 'react';
3
3
  import { jsx } from '@emotion/react';
4
- import { ReactionStatus, ReactionClick, ReactionSummary, QuickReactionEmojiSummary } from '../../types';
4
+ import { OnCloseHandler } from '@atlaskit/modal-dialog';
5
+ import { onDialogSelectReactionChange, ReactionStatus, ReactionClick, ReactionSummary, QuickReactionEmojiSummary } from '../../types';
6
+ import { ReactionProps } from '../Reaction';
5
7
  import { ReactionPickerProps } from '../ReactionPicker';
6
8
  import { SelectorProps } from '../Selector';
9
+ /**
10
+ * Set of all available UFO experiences relating to reactions dialog
11
+ */
12
+ export declare const ufoExperiences: {
13
+ /**
14
+ * Expeirence when a reaction dialog is opened
15
+ */
16
+ openDialog: import("@atlaskit/ufo").UFOExperience;
17
+ /**
18
+ * Experience when a reaction dialog is closed
19
+ */
20
+ closeDialog: import("@atlaskit/ufo").UFOExperience;
21
+ /**
22
+ * Experience when a reaction changed/fetched from inside the modal dialog
23
+ */
24
+ selectedReactionChangeInsideDialog: import("@atlaskit/ufo").UFOExperience;
25
+ };
7
26
  /**
8
27
  * Test id for wrapper Reactions div
9
28
  */
10
29
  export declare const RENDER_REACTIONS_TESTID = "render-reactions";
11
- export interface ReactionsProps extends Pick<ReactionPickerProps, 'allowAllEmojis' | 'emojiProvider'>, Pick<SelectorProps, 'pickerQuickReactionEmojiIds'> {
30
+ /**
31
+ * Test id for the view all reacted user to trigger the dialog
32
+ */
33
+ export declare const RENDER_VIEWALL_REACTED_USERS_DIALOG = "viewall-reacted-users-dialog";
34
+ export interface ReactionsProps extends Pick<ReactionPickerProps, 'allowAllEmojis' | 'emojiProvider' | 'emojiPickerSize'>, Pick<SelectorProps, 'pickerQuickReactionEmojiIds'>, Pick<ReactionProps, 'allowUserDialog'> {
12
35
  /**
13
36
  * event handler to fetching the reactions
14
37
  */
@@ -22,7 +45,7 @@ export interface ReactionsProps extends Pick<ReactionPickerProps, 'allowAllEmoji
22
45
  */
23
46
  reactions?: ReactionSummary[];
24
47
  /**
25
- * Condition for the reaction list status while been fetched
48
+ * Condition for the reaction list status while being fetched
26
49
  */
27
50
  status: ReactionStatus;
28
51
  /**
@@ -34,8 +57,12 @@ export interface ReactionsProps extends Pick<ReactionPickerProps, 'allowAllEmoji
34
57
  */
35
58
  flash?: Record<string, boolean>;
36
59
  /**
37
- * Optional event when the mouse cursor hovers over the reaction
38
- * @param emojiId hovered reaction emoji id
60
+ * Optional event to get reaction details for an emoji
61
+ * @param emojiId current reaction emoji id
62
+ */
63
+ getReactionDetails?: (emojiId: string) => void;
64
+ /**
65
+ * @deprecated use getReactionDetails instead
39
66
  */
40
67
  onReactionHover?: (emojiId: string) => void;
41
68
  /**
@@ -43,9 +70,21 @@ export interface ReactionsProps extends Pick<ReactionPickerProps, 'allowAllEmoji
43
70
  */
44
71
  errorMessage?: string;
45
72
  /**
46
- * quickReactionEmojis are emojis that will be shown in the the primary view even if the reaction count is zero
73
+ * quickReactionEmojiIds are emojis that will be shown in the the primary view even if the reaction count is zero
47
74
  */
48
75
  quickReactionEmojis?: QuickReactionEmojiSummary;
76
+ /**
77
+ * Optional callback function called when opening reactions dialog
78
+ */
79
+ onDialogOpenCallback?: (emojiId: string, source?: string) => void;
80
+ /**
81
+ * Optional callback function called when closing reactions dialog
82
+ */
83
+ onDialogCloseCallback?: OnCloseHandler;
84
+ /**
85
+ * Optional callback function called when selecting a reaction in reactions dialog
86
+ */
87
+ onDialogSelectReactionCallback?: onDialogSelectReactionChange;
49
88
  }
50
89
  /**
51
90
  * Get content of the tooltip
@@ -1,2 +1,3 @@
1
1
  export declare const reactionStyle: import("@emotion/react").SerializedStyles;
2
+ export declare const seeWhoReacted: import("@emotion/react").SerializedStyles;
2
3
  export declare const wrapperStyle: import("@emotion/react").SerializedStyles;
@@ -6,3 +6,4 @@ export { Reactions } from './Reactions';
6
6
  export type { ReactionsProps } from './Reactions';
7
7
  export { UfoErrorBoundary } from './UfoErrorBoundary';
8
8
  export type { UfoErrorBoundaryProps } from './UfoErrorBoundary';
9
+ export { ReactionsDialog } from './ReactionDialog/ReactionsDialog';
@@ -2,10 +2,6 @@ import React from 'react';
2
2
  import { ReactionPickerProps } from '../../components';
3
3
  import { StorePropInput } from '../../types';
4
4
  export interface ConnectedReactionPickerProps extends Omit<ReactionPickerProps, 'onSelection'> {
5
- /**
6
- * Optional Show the "more emoji" selector icon for choosing emoji beyond the default list of emojis (defaults to false)
7
- */
8
- allowAllEmojis?: boolean;
9
5
  /**
10
6
  * Wrapper id for reactions list
11
7
  */
@@ -1,16 +1,7 @@
1
1
  import React from 'react';
2
- import { EmojiProvider } from '@atlaskit/emoji/resource';
3
2
  import { ReactionsProps, ReactionPickerProps } from '../../components';
4
3
  import { ReactionStatus, Actions, State, StorePropInput } from '../../types';
5
- export interface ConnectedReactionsViewProps extends Pick<ReactionsProps, 'quickReactionEmojis'>, Pick<ReactionPickerProps, 'pickerQuickReactionEmojiIds'> {
6
- /**
7
- * Provider for loading emojis
8
- */
9
- emojiProvider: Promise<EmojiProvider>;
10
- /**
11
- * Optional Show the "more emoji" selector icon for choosing emoji beyond the default list of emojis (defaults to false)
12
- */
13
- allowAllEmojis?: boolean;
4
+ export interface ConnectedReactionsViewProps extends Pick<ReactionsProps, 'quickReactionEmojis' | 'onDialogOpenCallback' | 'onDialogCloseCallback' | 'onDialogSelectReactionCallback' | 'allowUserDialog' | 'allowAllEmojis' | 'emojiProvider' | 'emojiPickerSize'>, Pick<ReactionPickerProps, 'pickerQuickReactionEmojiIds'> {
14
5
  /**
15
6
  * Wrapper id for reactions list
16
7
  */
@@ -46,7 +37,7 @@ export declare const mapStateToPropsHelper: (containerAri: string, ari: string,
46
37
  export declare const mapDispatchToPropsHelper: (actions: Actions, containerAri: string, ari: string) => {
47
38
  loadReaction: () => void;
48
39
  onReactionClick: (emojiId: string) => void;
49
- onReactionHover: (emojiId: string) => void;
40
+ getReactionDetails: (emojiId: string) => void;
50
41
  onSelection: (emojiId: string) => void;
51
42
  };
52
43
  export declare const ConnectedReactionsView: React.FC<ConnectedReactionsViewProps>;
@@ -1,6 +1,6 @@
1
1
  export { UFO } from './analytics';
2
2
  export { ReactionServiceClient } from './client';
3
- export type { Client as ReactionClient, Request as ReactionRequest, Store as ReactionsStore, StorePropInput, State, } from './types';
3
+ export type { Client as ReactionClient, Request as ReactionRequest, Store as ReactionsStore, StorePropInput, State, onDialogSelectReactionChange, } from './types';
4
4
  export { constants } from './shared';
5
5
  export { Reaction, ReactionPicker, Reactions } from './components';
6
6
  export { ConnectedReactionPicker, ConnectedReactionsView } from './containers';
@@ -4,18 +4,24 @@ import { EmojiId } from '@atlaskit/emoji/types';
4
4
  */
5
5
  export declare const DefaultReactions: EmojiId[];
6
6
  /**
7
- * Default label to show for the overLimitLabel prop
7
+ * Extended list of reactions used only for examples
8
8
  */
9
- export declare const DEFAULT_OVER_THE_LIMIT_REACTION_LABEL = "1k+";
9
+ export declare const ExtendedReactions: EmojiId[];
10
10
  /**
11
- * Default maximum value to use when the emoji received higher than top limit reactions
11
+ * ES6 Map object from default emoji reactions (with key => shortName, value => entire emoji item)
12
12
  */
13
- export declare const DEFAULT_REACTION_TOP_LIMIT = 1000;
13
+ export declare const DefaultReactionsByShortName: Map<string, EmojiId>;
14
14
  /**
15
15
  * ES6 Map object from default emoji reactions (with key => shortName, value => entire emoji item)
16
+ * Only for use in extended reaction examples
16
17
  */
17
- export declare const DefaultReactionsByShortName: Map<string, EmojiId>;
18
+ export declare const ExtendedReactionsByShortName: Map<string, EmojiId>;
18
19
  /**
19
20
  * Maximum number of users to show in the tooltip for an emoji reaction
20
21
  */
21
22
  export declare const TOOLTIP_USERS_LIMIT = 5;
23
+ /**
24
+ * Maximum number of reactions that will fit in the horizontal scroll of
25
+ * reactions dialog
26
+ */
27
+ export declare const NUMBER_OF_REACTIONS_TO_DISPLAY = 9;
@@ -14,6 +14,11 @@ export declare const messages: {
14
14
  defaultMessage: string;
15
15
  description: string;
16
16
  };
17
+ moreInfo: {
18
+ id: string;
19
+ defaultMessage: string;
20
+ description: string;
21
+ };
17
22
  reactWithEmoji: {
18
23
  id: string;
19
24
  defaultMessage: string;
@@ -29,4 +34,39 @@ export declare const messages: {
29
34
  defaultMessage: string;
30
35
  description: string;
31
36
  };
37
+ closeReactionsDialog: {
38
+ id: string;
39
+ defaultMessage: string;
40
+ description: string;
41
+ };
42
+ reactionsCount: {
43
+ id: string;
44
+ defaultMessage: string;
45
+ description: string;
46
+ };
47
+ leftNavigateLabel: {
48
+ id: string;
49
+ defaultMessage: string;
50
+ description: string;
51
+ };
52
+ rightNavigateLabel: {
53
+ id: string;
54
+ defaultMessage: string;
55
+ description: string;
56
+ };
57
+ emojiName: {
58
+ id: string;
59
+ defaultMessage: string;
60
+ description: string;
61
+ };
62
+ seeWhoReacted: {
63
+ id: string;
64
+ defaultMessage: string;
65
+ description: string;
66
+ };
67
+ seeWhoReactedTooltip: {
68
+ id: string;
69
+ defaultMessage: string;
70
+ description: string;
71
+ };
32
72
  };
@@ -9,3 +9,10 @@ export declare const isLeftClick: (event: React.MouseEvent<HTMLElement>) => bool
9
9
  * @param item selected emoji item
10
10
  */
11
11
  export declare const isDefaultReaction: (item: EmojiId) => boolean;
12
+ export declare const formatStringWithDecimal: (value: string, decimalPlaces: number) => string;
13
+ /**
14
+ * Truncates numbers >= 1000 to shorthand representations with a maximum of one decimal point.
15
+ * If the first decimal number is a zero then it's also truncated.
16
+ * (Ex: 9085 will return 9K, 787555 will return 787.5M)
17
+ */
18
+ export declare const formatLargeNumber: (value: number) => string;
@@ -7,4 +7,14 @@ export interface User {
7
7
  * name of user clicked on the reaction
8
8
  */
9
9
  displayName: string;
10
+ /**
11
+ * optional path to a user profile picture
12
+ */
13
+ profilePicture?: ProfilePicture;
10
14
  }
15
+ /**
16
+ * Type defining the path to a user profile picture
17
+ */
18
+ export declare type ProfilePicture = {
19
+ path: string;
20
+ };
@@ -1,6 +1,6 @@
1
1
  export type { ReactionAction, Actions } from './Actions';
2
2
  export { ReactionStatus } from './reaction';
3
- export type { ReactionSource, ReactionsError, ReactionsLoading, ReactionsReadyState, ReactionsState, ReactionSummary, QuickReactionEmojiSummary, ReactionsNotLoaded, Reactions, ReactionClick, ReactionMouseEnter, } from './reaction';
3
+ export type { ReactionSource, ReactionsError, ReactionsLoading, ReactionsReadyState, ReactionsState, ReactionSummary, QuickReactionEmojiSummary, ReactionsNotLoaded, Reactions, ReactionClick, ReactionMouseEnter, onDialogSelectReactionChange, } from './reaction';
4
4
  export type { Client, Request } from './client';
5
5
  export type { Updater } from './Updater';
6
6
  export type { User } from './User';
@@ -1,9 +1,16 @@
1
1
  /// <reference types="react" />
2
+ import { UIAnalyticsEvent } from '@atlaskit/analytics-next';
2
3
  import { User } from './User';
3
4
  /**
4
5
  * Collection of reactions as object (key is unique id from containerAri and ari combined)
5
6
  */
6
7
  export declare type Reactions = Record<string, ReactionSummary[]>;
8
+ /**
9
+ * Event handler when reactions dialog selected emoji is clicked
10
+ * @param emojiId selected emoji
11
+ * @param analyticsEvent Optional analytics event emitted from @atlaskit/tabs component
12
+ */
13
+ export declare type onDialogSelectReactionChange = (emojiId: string, analyticsEvent: UIAnalyticsEvent) => void;
7
14
  /**
8
15
  * MetaData for Reaction object
9
16
  */
@@ -62,10 +69,16 @@ export interface QuickReactionEmojiSummary {
62
69
  export declare type ReactionClick = (id: string, event: React.MouseEvent<HTMLButtonElement>) => void;
63
70
  /**
64
71
  * Event handler for when the user hovers with the mouse on the reaction
65
- * @param reaction reaction object
72
+ * @param emojiId id of emoji
73
+ * @param event (Optional) custom DOM event handler callback
74
+ */
75
+ export declare type ReactionMouseEnter = (emojiId: string, event?: React.MouseEvent<any>) => void;
76
+ /**
77
+ * Event handler for when the user focused on the reaction
78
+ * @param emojiId id of emoji
66
79
  * @param event (Optional) custom DOM event handler callback
67
80
  */
68
- export declare type ReactionMouseEnter = (reaction: ReactionSummary, event?: React.MouseEvent<any>) => void;
81
+ export declare type ReactionFocused = (emojiId: string, event?: React.FocusEvent<any>) => void;
69
82
  /**
70
83
  * Condition of the reaction when gets loaded from the store
71
84
  */
package/docs/0-intro.tsx CHANGED
@@ -25,6 +25,9 @@ export default md`
25
25
  1. [ReactionServiceClient](/packages/elements/reactions/docs/reaction-service-client)
26
26
  1. [EmojiResource](https://atlaskit.atlassian.com/packages/elements/emoji/docs/resourced-emoji)
27
27
 
28
+ The guide to supporting GraphQL can be found here:
29
+ * [Graphql Support](/packages/elements/reactions/docs/graphql-support)
30
+
28
31
  ## Usage
29
32
 
30
33
  For each of these components, first import the following in your React app as follows: