@atlaskit/reactions 33.7.1 → 33.8.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.
@@ -1,4 +1,5 @@
1
1
  /* Reactions.tsx generated by @compiled/babel-plugin v0.38.1 */
2
+ import _extends from "@babel/runtime/helpers/extends";
2
3
  import "./Reactions.compiled.css";
3
4
  import { ax, ix } from "@compiled/react/runtime";
4
5
  import React, { useCallback, useEffect, useMemo, useRef, useState } from 'react';
@@ -6,6 +7,7 @@ import { FormattedMessage } from 'react-intl-next';
6
7
  import { useAnalyticsEvents } from '@atlaskit/analytics-next';
7
8
  import { ModalTransition } from '@atlaskit/modal-dialog';
8
9
  import UFOSegment from '@atlaskit/react-ufo/segment';
10
+ import { fg } from '@atlaskit/platform-feature-flags';
9
11
  import { createAndFireSafe, createPickerButtonClickedEvent, createPickerCancelledEvent, createPickerMoreClickedEvent, createReactionsRenderedEvent, createReactionSelectionEvent, isSampled } from '../analytics';
10
12
  import { SAMPLING_RATE_REACTIONS_RENDERED_EXP } from '../shared/constants';
11
13
  import { messages } from '../shared/i18n';
@@ -18,6 +20,8 @@ import { ReactionSummaryView } from './ReactionSummaryView';
18
20
  const wrapperStyle = null;
19
21
  const noFlexWrapStyles = null;
20
22
  const noContainerPositionStyles = null;
23
+ const listWrapperStyle = null;
24
+ const listItemStyle = null;
21
25
  const reactionPickerStyle = null;
22
26
 
23
27
  /**
@@ -64,7 +68,34 @@ export function getTooltip(status, errorMessage, tooltipContent) {
64
68
  return !!tooltipContent ? tooltipContent : /*#__PURE__*/React.createElement(FormattedMessage, messages.addReaction);
65
69
  }
66
70
  }
71
+ const ReactionsWrapper = ({
72
+ children,
73
+ noWrap,
74
+ noRelativeContainer,
75
+ isListItem = false,
76
+ reactionsLength = 0,
77
+ isShowingDefaultReactions = false
78
+ }) => {
79
+ if (isListItem && fg('jfp_a11y_team_comment_actions_semantic')) {
80
+ // with no reactions picker render children inside listitem container
81
+ if (reactionsLength === 0 && !isShowingDefaultReactions) {
82
+ return /*#__PURE__*/React.createElement("li", {
83
+ "data-testid": RENDER_REACTIONS_TESTID,
84
+ className: ax(["_1e0c1txw _1n261g80 _kqswh2mm _4cvr1h6o _19pkr5cr _13vtidpf", "_19bvze3t _19pk1wng", noWrap && "_1n261q9c", noRelativeContainer && "_kqswpfqs"])
85
+ }, children);
86
+ }
67
87
 
88
+ // with reactions or default reactions present, reactions & picker rendered as listitem inside un-ordered list
89
+ return /*#__PURE__*/React.createElement("ul", {
90
+ "data-testid": RENDER_REACTIONS_TESTID,
91
+ className: ax(["_1e0c1txw _1n261g80 _kqswh2mm _4cvr1h6o _19pkr5cr _13vtidpf", "_19bvze3t _19pk1wng", noWrap && "_1n261q9c", noRelativeContainer && "_kqswpfqs"])
92
+ }, children);
93
+ }
94
+ return /*#__PURE__*/React.createElement("div", {
95
+ "data-testid": RENDER_REACTIONS_TESTID,
96
+ className: ax(["_1e0c1txw _1n261g80 _kqswh2mm _4cvr1h6o _19pkr5cr _13vtidpf", noWrap && "_1n261q9c", noRelativeContainer && "_kqswpfqs"])
97
+ }, children);
98
+ };
68
99
  /**
69
100
  * Renders list of reactions
70
101
  */
@@ -277,11 +308,70 @@ export const Reactions = /*#__PURE__*/React.memo(({
277
308
  }
278
309
  });
279
310
  };
311
+ const renderReactionPicker = () => {
312
+ if (isListItem && memorizedReactions.length > 0 && fg('jfp_a11y_team_comment_actions_semantic')) {
313
+ // render the reaction picker inside li when reactions are present
314
+ return /*#__PURE__*/React.createElement("li", {
315
+ className: ax(["_qtt8glyw _19pkze3t"])
316
+ }, /*#__PURE__*/React.createElement(ReactionPicker, {
317
+ emojiProvider: emojiProvider,
318
+ allowAllEmojis: allowAllEmojis,
319
+ pickerQuickReactionEmojiIds: pickerQuickReactionEmojiIds,
320
+ disabled: status !== ReactionStatus.ready,
321
+ onSelection: handleOnSelection,
322
+ onOpen: handlePickerOpen,
323
+ onCancel: handleOnCancel,
324
+ onShowMore: handleOnMore,
325
+ tooltipContent: hoverableSummaryView ? null : getTooltip(status, errorMessage, reactionPickerTriggerTooltipContent),
326
+ emojiPickerSize: emojiPickerSize,
327
+ miniMode: miniMode,
328
+ showOpaqueBackground: showOpaqueBackground,
329
+ showAddReactionText: showAddReactionText,
330
+ subtleReactionsSummaryAndPicker: subtleReactionsSummaryAndPicker,
331
+ reactionPickerTriggerIcon: reactionPickerTriggerIcon,
332
+ reactionPickerTriggerText: reactionPickerTriggerText,
333
+ hoverableReactionPicker: hoverableSummaryView,
334
+ hoverableReactionPickerDelay: hoverableSummaryView ? 300 : 0,
335
+ reactionPickerPlacement: reactionPickerPlacement,
336
+ reactionPickerPopperZIndex: reactionPickerPopperZIndex,
337
+ className: ax(["_1e0c1o8l _19pk1b66"])
338
+ }));
339
+ }
340
+ return /*#__PURE__*/React.createElement(ReactionPicker, {
341
+ emojiProvider: emojiProvider,
342
+ allowAllEmojis: allowAllEmojis,
343
+ pickerQuickReactionEmojiIds: pickerQuickReactionEmojiIds,
344
+ disabled: status !== ReactionStatus.ready,
345
+ onSelection: handleOnSelection,
346
+ onOpen: handlePickerOpen,
347
+ onCancel: handleOnCancel,
348
+ onShowMore: handleOnMore,
349
+ tooltipContent: hoverableSummaryView ? null : getTooltip(status, errorMessage, reactionPickerTriggerTooltipContent),
350
+ emojiPickerSize: emojiPickerSize,
351
+ miniMode: miniMode,
352
+ showOpaqueBackground: showOpaqueBackground,
353
+ showAddReactionText: showAddReactionText,
354
+ subtleReactionsSummaryAndPicker: subtleReactionsSummaryAndPicker,
355
+ reactionPickerTriggerIcon: reactionPickerTriggerIcon,
356
+ reactionPickerTriggerText: reactionPickerTriggerText,
357
+ isListItem: isListItem,
358
+ hoverableReactionPicker: hoverableSummaryView,
359
+ hoverableReactionPickerDelay: hoverableSummaryView ? 300 : 0,
360
+ reactionPickerPlacement: reactionPickerPlacement,
361
+ reactionPickerPopperZIndex: reactionPickerPopperZIndex,
362
+ className: ax(["_1e0c1o8l _19pk1b66"])
363
+ });
364
+ };
280
365
  return /*#__PURE__*/React.createElement(UFOSegment, {
281
366
  name: "reactions"
282
- }, /*#__PURE__*/React.createElement("div", {
283
- "data-testid": RENDER_REACTIONS_TESTID,
284
- className: ax(["_1e0c1txw _1n261g80 _kqswh2mm _4cvr1h6o _19pkr5cr _13vtidpf", noWrap && "_1n261q9c", noRelativeContainer && "_kqswpfqs"])
367
+ }, /*#__PURE__*/React.createElement(ReactionsWrapper, {
368
+ noRelativeContainer: noRelativeContainer,
369
+ isListItem: isListItem,
370
+ reactionsLength: memorizedReactions.length,
371
+ noWrap: noWrap,
372
+ isShowingDefaultReactions:
373
+ // Conditon to determine whether showing the default reacitons
374
+ !(reactions.length === 0 && hideDefaultReactions || reactions.length > 0 || !quickReactionEmojis)
285
375
  }, !onlyRenderPicker && (shouldShowSummaryView ? /*#__PURE__*/React.createElement("div", {
286
376
  "data-testid": RENDER_REACTIONS_SUMMARY_TESTID
287
377
  }, /*#__PURE__*/React.createElement(ReactionSummaryView, {
@@ -313,7 +403,7 @@ export const Reactions = /*#__PURE__*/React.memo(({
313
403
  summaryGetOptimisticImageURL: summaryGetOptimisticImageURL,
314
404
  summaryButtonIconAfter: summaryButtonIconAfter,
315
405
  summaryViewParticleEffectEmojiId: renderParticleEffectOnSummaryView ? summaryViewParticleEffectEmojiId : null
316
- })) : memorizedReactions.map(reaction => /*#__PURE__*/React.createElement(Reaction, {
406
+ })) : memorizedReactions.map(reaction => /*#__PURE__*/React.createElement(Reaction, _extends({
317
407
  key: reaction.emojiId,
318
408
  reaction: reaction,
319
409
  emojiProvider: emojiProvider,
@@ -327,30 +417,9 @@ export const Reactions = /*#__PURE__*/React.memo(({
327
417
  handleOpenReactionsDialog: handleOpenReactionsDialog,
328
418
  isViewOnly: isViewOnly,
329
419
  showSubtleStyle: showSubtleDefaultReactions && reactions.length === 0
330
- }))), isViewOnly || !onlyRenderPicker && shouldShowSummaryView && allowSelectFromSummaryView ? null : /*#__PURE__*/React.createElement(ReactionPicker, {
331
- emojiProvider: emojiProvider,
332
- allowAllEmojis: allowAllEmojis,
333
- pickerQuickReactionEmojiIds: pickerQuickReactionEmojiIds,
334
- disabled: status !== ReactionStatus.ready,
335
- onSelection: handleOnSelection,
336
- onOpen: handlePickerOpen,
337
- onCancel: handleOnCancel,
338
- onShowMore: handleOnMore,
339
- tooltipContent: hoverableSummaryView ? null : getTooltip(status, errorMessage, reactionPickerTriggerTooltipContent),
340
- emojiPickerSize: emojiPickerSize,
341
- miniMode: miniMode,
342
- showOpaqueBackground: showOpaqueBackground,
343
- showAddReactionText: showAddReactionText,
344
- subtleReactionsSummaryAndPicker: subtleReactionsSummaryAndPicker,
345
- reactionPickerTriggerIcon: reactionPickerTriggerIcon,
346
- reactionPickerTriggerText: reactionPickerTriggerText,
347
- isListItem: isListItem,
348
- hoverableReactionPicker: hoverableSummaryView,
349
- hoverableReactionPickerDelay: hoverableSummaryView ? 300 : 0,
350
- reactionPickerPlacement: reactionPickerPlacement,
351
- reactionPickerPopperZIndex: reactionPickerPopperZIndex,
352
- className: ax(["_1e0c1o8l _19pk1b66"])
353
- }), /*#__PURE__*/React.createElement(ModalTransition, null, !!selectedEmojiId && /*#__PURE__*/React.createElement(UFOSegment, {
420
+ }, fg('jfp_a11y_team_comment_actions_semantic') && {
421
+ isListItem: isListItem
422
+ })))), isViewOnly || !onlyRenderPicker && shouldShowSummaryView && allowSelectFromSummaryView ? null : renderReactionPicker(), /*#__PURE__*/React.createElement(ModalTransition, null, !!selectedEmojiId && /*#__PURE__*/React.createElement(UFOSegment, {
354
423
  name: "reactions-dialog"
355
424
  }, /*#__PURE__*/React.createElement(ReactionsDialog, {
356
425
  selectedEmojiId: selectedEmojiId,
@@ -99,7 +99,7 @@ export const Trigger = /*#__PURE__*/React.forwardRef((props, ref) => {
99
99
  testId: RENDER_TOOLTIP_TRIGGER_TESTID,
100
100
  content: tooltipContent,
101
101
  canAppear: () => !showAddReactionText
102
- }, isListItem ? /*#__PURE__*/React.createElement("li", {
102
+ }, isListItem && !fg('jfp_a11y_team_comment_actions_semantic') ? /*#__PURE__*/React.createElement("li", {
103
103
  "data-testid": RENDER_LIST_ITEM_WRAPPER_TESTID,
104
104
  className: ax(["_qtt8glyw"])
105
105
  }, renderPressableButton()) : renderPressableButton()));
@@ -2,7 +2,6 @@
2
2
  ._19bvu2gc{padding-left:var(--ds-space-100,8px)}
3
3
  ._8hrz1nam{transform-origin:center center 0}
4
4
  ._ca0q1b66{padding-top:var(--ds-space-050,4px)}
5
- ._kqswh2mm{position:relative}
6
5
  ._n3td1b66{padding-bottom:var(--ds-space-050,4px)}
7
6
  ._u5f31b66{padding-right:var(--ds-space-050,4px)}
8
7
  ._u5f3v77o{padding-right:var(--ds-space-025,2px)}
@@ -18,9 +18,11 @@ import { isLeftClick } from '../shared/utils';
18
18
  import { RESOURCED_EMOJI_COMPACT_HEIGHT } from '../shared/constants';
19
19
  import { ReactionButton } from './ReactionButton';
20
20
  import { StaticReaction } from './StaticReaction';
21
+ import { fg } from '@atlaskit/platform-feature-flags';
21
22
  import { Box, Inline } from '@atlaskit/primitives/compiled';
22
23
  var styles = {
23
- container: "_kqswh2mm"
24
+ container: "_kqswh2mm",
25
+ listContainer: "_qtt8glyw _kqswh2mm _19pkze3t"
24
26
  };
25
27
  var emojiStyle = null;
26
28
  var emojiNoReactionStyle = null;
@@ -50,7 +52,9 @@ export var Reaction = function Reaction(_ref) {
50
52
  handleOpenReactionsDialog = _ref.handleOpenReactionsDialog,
51
53
  _ref$isViewOnly = _ref.isViewOnly,
52
54
  isViewOnly = _ref$isViewOnly === void 0 ? false : _ref$isViewOnly,
53
- showSubtleStyle = _ref.showSubtleStyle;
55
+ showSubtleStyle = _ref.showSubtleStyle,
56
+ _ref$isListItem = _ref.isListItem,
57
+ isListItem = _ref$isListItem === void 0 ? false : _ref$isListItem;
54
58
  var intl = useIntl();
55
59
  var hoverStart = useRef();
56
60
  var focusStart = useRef();
@@ -145,7 +149,10 @@ export var Reaction = function Reaction(_ref) {
145
149
  count: reaction.count
146
150
  });
147
151
  }
148
- return /*#__PURE__*/React.createElement(Box, {
152
+ return /*#__PURE__*/React.createElement(Box, isListItem && fg('jfp_a11y_team_comment_actions_semantic') ? {
153
+ as: 'li',
154
+ xcss: styles.listContainer
155
+ } : {
149
156
  xcss: styles.container
150
157
  }, showParticleEffect && /*#__PURE__*/React.createElement(ReactionParticleEffect, {
151
158
  emojiId: emojiId,
@@ -1,4 +1,5 @@
1
1
  /* ReactionPicker.tsx generated by @compiled/babel-plugin v0.38.1 */
2
+ import _extends from "@babel/runtime/helpers/extends";
2
3
  import _defineProperty from "@babel/runtime/helpers/defineProperty";
3
4
  import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
4
5
  import "./ReactionPicker.compiled.css";
@@ -288,7 +289,7 @@ export var ReactionPicker = /*#__PURE__*/React.memo(function (props) {
288
289
  React.createElement(Box, {
289
290
  onMouseEnter: handleTriggerMouseEnter,
290
291
  onMouseLeave: handleTriggerMouseLeave
291
- }, /*#__PURE__*/React.createElement(Trigger, {
292
+ }, /*#__PURE__*/React.createElement(Trigger, _extends({
292
293
  ariaAttributes: {
293
294
  'aria-expanded': isPopupTrayOpen,
294
295
  'aria-controls': PICKER_CONTROL_ID
@@ -312,9 +313,10 @@ export var ReactionPicker = /*#__PURE__*/React.memo(function (props) {
312
313
  showAddReactionText: showAddReactionText,
313
314
  subtleReactionsSummaryAndPicker: subtleReactionsSummaryAndPicker,
314
315
  reactionPickerTriggerIcon: reactionPickerTriggerIcon,
315
- reactionPickerTriggerText: reactionPickerTriggerText,
316
+ reactionPickerTriggerText: reactionPickerTriggerText
317
+ }, !fg('jfp_a11y_team_comment_actions_semantic') && {
316
318
  isListItem: isListItem
317
- }))
319
+ })))
318
320
  );
319
321
  }), isPopupTrayOpen && /*#__PURE__*/React.createElement(Portal, {
320
322
  zIndex: fg('platform_reactions_custom_popper_zindex') ? reactionPickerPopperZIndex || layers.flag() : layers.flag()
@@ -1,6 +1,10 @@
1
- ._13vtidpf >:first-of-type>:first-of-type{margin-left:0}
1
+
2
+ ._qtt8glyw{list-style:none}._13vtidpf >:first-of-type>:first-of-type{margin-left:0}
3
+ ._19bvze3t{padding-left:var(--ds-space-0,0)}
2
4
  ._19pk1b66{margin-top:var(--ds-space-050,4px)}
5
+ ._19pk1wng{margin-top:var(--ds-space-negative-050,-4px)!important}
3
6
  ._19pkr5cr{margin-top:var(--ds-space-negative-050,-4px)}
7
+ ._19pkze3t{margin-top:var(--ds-space-0,0)}
4
8
  ._1e0c1o8l{display:inline-block}
5
9
  ._1e0c1txw{display:flex}
6
10
  ._1n261g80{flex-wrap:wrap}
@@ -1,4 +1,5 @@
1
1
  /* Reactions.tsx generated by @compiled/babel-plugin v0.38.1 */
2
+ import _extends from "@babel/runtime/helpers/extends";
2
3
  import _toConsumableArray from "@babel/runtime/helpers/toConsumableArray";
3
4
  import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
4
5
  import "./Reactions.compiled.css";
@@ -8,6 +9,7 @@ import { FormattedMessage } from 'react-intl-next';
8
9
  import { useAnalyticsEvents } from '@atlaskit/analytics-next';
9
10
  import { ModalTransition } from '@atlaskit/modal-dialog';
10
11
  import UFOSegment from '@atlaskit/react-ufo/segment';
12
+ import { fg } from '@atlaskit/platform-feature-flags';
11
13
  import { createAndFireSafe, createPickerButtonClickedEvent, createPickerCancelledEvent, createPickerMoreClickedEvent, createReactionsRenderedEvent, createReactionSelectionEvent, isSampled } from '../analytics';
12
14
  import { SAMPLING_RATE_REACTIONS_RENDERED_EXP } from '../shared/constants';
13
15
  import { messages } from '../shared/i18n';
@@ -20,6 +22,8 @@ import { ReactionSummaryView } from './ReactionSummaryView';
20
22
  var wrapperStyle = null;
21
23
  var noFlexWrapStyles = null;
22
24
  var noContainerPositionStyles = null;
25
+ var listWrapperStyle = null;
26
+ var listItemStyle = null;
23
27
  var reactionPickerStyle = null;
24
28
 
25
29
  /**
@@ -66,81 +70,110 @@ export function getTooltip(status, errorMessage, tooltipContent) {
66
70
  return !!tooltipContent ? tooltipContent : /*#__PURE__*/React.createElement(FormattedMessage, messages.addReaction);
67
71
  }
68
72
  }
73
+ var ReactionsWrapper = function ReactionsWrapper(_ref) {
74
+ var children = _ref.children,
75
+ noWrap = _ref.noWrap,
76
+ noRelativeContainer = _ref.noRelativeContainer,
77
+ _ref$isListItem = _ref.isListItem,
78
+ isListItem = _ref$isListItem === void 0 ? false : _ref$isListItem,
79
+ _ref$reactionsLength = _ref.reactionsLength,
80
+ reactionsLength = _ref$reactionsLength === void 0 ? 0 : _ref$reactionsLength,
81
+ _ref$isShowingDefault = _ref.isShowingDefaultReactions,
82
+ isShowingDefaultReactions = _ref$isShowingDefault === void 0 ? false : _ref$isShowingDefault;
83
+ if (isListItem && fg('jfp_a11y_team_comment_actions_semantic')) {
84
+ // with no reactions picker render children inside listitem container
85
+ if (reactionsLength === 0 && !isShowingDefaultReactions) {
86
+ return /*#__PURE__*/React.createElement("li", {
87
+ "data-testid": RENDER_REACTIONS_TESTID,
88
+ className: ax(["_1e0c1txw _1n261g80 _kqswh2mm _4cvr1h6o _19pkr5cr _13vtidpf", "_19bvze3t _19pk1wng", noWrap && "_1n261q9c", noRelativeContainer && "_kqswpfqs"])
89
+ }, children);
90
+ }
69
91
 
92
+ // with reactions or default reactions present, reactions & picker rendered as listitem inside un-ordered list
93
+ return /*#__PURE__*/React.createElement("ul", {
94
+ "data-testid": RENDER_REACTIONS_TESTID,
95
+ className: ax(["_1e0c1txw _1n261g80 _kqswh2mm _4cvr1h6o _19pkr5cr _13vtidpf", "_19bvze3t _19pk1wng", noWrap && "_1n261q9c", noRelativeContainer && "_kqswpfqs"])
96
+ }, children);
97
+ }
98
+ return /*#__PURE__*/React.createElement("div", {
99
+ "data-testid": RENDER_REACTIONS_TESTID,
100
+ className: ax(["_1e0c1txw _1n261g80 _kqswh2mm _4cvr1h6o _19pkr5cr _13vtidpf", noWrap && "_1n261q9c", noRelativeContainer && "_kqswpfqs"])
101
+ }, children);
102
+ };
70
103
  /**
71
104
  * Renders list of reactions
72
105
  */
73
- export var Reactions = /*#__PURE__*/React.memo(function (_ref) {
74
- var _ref$flash = _ref.flash,
75
- flash = _ref$flash === void 0 ? {} : _ref$flash,
76
- _ref$particleEffectBy = _ref.particleEffectByEmoji,
77
- particleEffectByEmoji = _ref$particleEffectBy === void 0 ? {} : _ref$particleEffectBy,
78
- status = _ref.status,
79
- errorMessage = _ref.errorMessage,
80
- loadReaction = _ref.loadReaction,
81
- quickReactionEmojis = _ref.quickReactionEmojis,
82
- pickerQuickReactionEmojiIds = _ref.pickerQuickReactionEmojiIds,
83
- _ref$getReactionDetai = _ref.getReactionDetails,
84
- getReactionDetails = _ref$getReactionDetai === void 0 ? function () {} : _ref$getReactionDetai,
85
- onSelection = _ref.onSelection,
86
- _ref$reactions = _ref.reactions,
87
- reactions = _ref$reactions === void 0 ? [] : _ref$reactions,
88
- emojiProvider = _ref.emojiProvider,
89
- allowAllEmojis = _ref.allowAllEmojis,
90
- onReactionClick = _ref.onReactionClick,
91
- allowUserDialog = _ref.allowUserDialog,
92
- _ref$onDialogOpenCall = _ref.onDialogOpenCallback,
93
- onDialogOpenCallback = _ref$onDialogOpenCall === void 0 ? function () {} : _ref$onDialogOpenCall,
94
- _ref$onDialogCloseCal = _ref.onDialogCloseCallback,
95
- onDialogCloseCallback = _ref$onDialogCloseCal === void 0 ? function () {} : _ref$onDialogCloseCal,
96
- _ref$onDialogSelectRe = _ref.onDialogSelectReactionCallback,
97
- onDialogSelectReactionCallback = _ref$onDialogSelectRe === void 0 ? function () {} : _ref$onDialogSelectRe,
98
- _ref$onDialogPageChan = _ref.onDialogPageChangeCallback,
99
- onDialogPageChangeCallback = _ref$onDialogPageChan === void 0 ? function () {} : _ref$onDialogPageChan,
100
- _ref$emojiPickerSize = _ref.emojiPickerSize,
101
- emojiPickerSize = _ref$emojiPickerSize === void 0 ? 'medium' : _ref$emojiPickerSize,
102
- _ref$miniMode = _ref.miniMode,
103
- miniMode = _ref$miniMode === void 0 ? false : _ref$miniMode,
104
- _ref$summaryViewEnabl = _ref.summaryViewEnabled,
105
- summaryViewEnabled = _ref$summaryViewEnabl === void 0 ? false : _ref$summaryViewEnabl,
106
- _ref$summaryViewThres = _ref.summaryViewThreshold,
107
- summaryViewThreshold = _ref$summaryViewThres === void 0 ? 3 : _ref$summaryViewThres,
108
- summaryViewPlacement = _ref.summaryViewPlacement,
109
- _ref$showOpaqueBackgr = _ref.showOpaqueBackground,
110
- showOpaqueBackground = _ref$showOpaqueBackgr === void 0 ? false : _ref$showOpaqueBackgr,
111
- _ref$subtleReactionsS = _ref.subtleReactionsSummaryAndPicker,
112
- subtleReactionsSummaryAndPicker = _ref$subtleReactionsS === void 0 ? false : _ref$subtleReactionsS,
113
- _ref$showAddReactionT = _ref.showAddReactionText,
114
- showAddReactionText = _ref$showAddReactionT === void 0 ? false : _ref$showAddReactionT,
115
- _ref$hideDefaultReact = _ref.hideDefaultReactions,
116
- hideDefaultReactions = _ref$hideDefaultReact === void 0 ? false : _ref$hideDefaultReact,
117
- ProfileCardWrapper = _ref.ProfileCardWrapper,
118
- _ref$onlyRenderPicker = _ref.onlyRenderPicker,
119
- onlyRenderPicker = _ref$onlyRenderPicker === void 0 ? false : _ref$onlyRenderPicker,
120
- _ref$isViewOnly = _ref.isViewOnly,
121
- isViewOnly = _ref$isViewOnly === void 0 ? false : _ref$isViewOnly,
122
- _ref$noWrap = _ref.noWrap,
123
- noWrap = _ref$noWrap === void 0 ? false : _ref$noWrap,
124
- _ref$noRelativeContai = _ref.noRelativeContainer,
125
- noRelativeContainer = _ref$noRelativeContai === void 0 ? false : _ref$noRelativeContai,
126
- showSubtleDefaultReactions = _ref.showSubtleDefaultReactions,
127
- reactionPickerTriggerTooltipContent = _ref.reactionPickerTriggerTooltipContent,
128
- reactionPickerTriggerIcon = _ref.reactionPickerTriggerIcon,
129
- _ref$allowSelectFromS = _ref.allowSelectFromSummaryView,
130
- allowSelectFromSummaryView = _ref$allowSelectFromS === void 0 ? false : _ref$allowSelectFromS,
131
- _ref$useButtonAlignme = _ref.useButtonAlignmentStyling,
132
- useButtonAlignmentStyling = _ref$useButtonAlignme === void 0 ? false : _ref$useButtonAlignme,
133
- reactionPickerTriggerText = _ref.reactionPickerTriggerText,
134
- _ref$hoverableSummary = _ref.hoverableSummaryView,
135
- hoverableSummaryView = _ref$hoverableSummary === void 0 ? false : _ref$hoverableSummary,
136
- _ref$isListItem = _ref.isListItem,
137
- isListItem = _ref$isListItem === void 0 ? false : _ref$isListItem,
138
- summaryGetOptimisticImageURL = _ref.summaryGetOptimisticImageURL,
139
- reactionPickerPlacement = _ref.reactionPickerPlacement,
140
- summaryButtonIconAfter = _ref.summaryButtonIconAfter,
141
- _ref$renderParticleEf = _ref.renderParticleEffectOnSummaryView,
142
- renderParticleEffectOnSummaryView = _ref$renderParticleEf === void 0 ? false : _ref$renderParticleEf,
143
- reactionPickerPopperZIndex = _ref.reactionPickerPopperZIndex;
106
+ export var Reactions = /*#__PURE__*/React.memo(function (_ref2) {
107
+ var _ref2$flash = _ref2.flash,
108
+ flash = _ref2$flash === void 0 ? {} : _ref2$flash,
109
+ _ref2$particleEffectB = _ref2.particleEffectByEmoji,
110
+ particleEffectByEmoji = _ref2$particleEffectB === void 0 ? {} : _ref2$particleEffectB,
111
+ status = _ref2.status,
112
+ errorMessage = _ref2.errorMessage,
113
+ loadReaction = _ref2.loadReaction,
114
+ quickReactionEmojis = _ref2.quickReactionEmojis,
115
+ pickerQuickReactionEmojiIds = _ref2.pickerQuickReactionEmojiIds,
116
+ _ref2$getReactionDeta = _ref2.getReactionDetails,
117
+ getReactionDetails = _ref2$getReactionDeta === void 0 ? function () {} : _ref2$getReactionDeta,
118
+ onSelection = _ref2.onSelection,
119
+ _ref2$reactions = _ref2.reactions,
120
+ reactions = _ref2$reactions === void 0 ? [] : _ref2$reactions,
121
+ emojiProvider = _ref2.emojiProvider,
122
+ allowAllEmojis = _ref2.allowAllEmojis,
123
+ onReactionClick = _ref2.onReactionClick,
124
+ allowUserDialog = _ref2.allowUserDialog,
125
+ _ref2$onDialogOpenCal = _ref2.onDialogOpenCallback,
126
+ onDialogOpenCallback = _ref2$onDialogOpenCal === void 0 ? function () {} : _ref2$onDialogOpenCal,
127
+ _ref2$onDialogCloseCa = _ref2.onDialogCloseCallback,
128
+ onDialogCloseCallback = _ref2$onDialogCloseCa === void 0 ? function () {} : _ref2$onDialogCloseCa,
129
+ _ref2$onDialogSelectR = _ref2.onDialogSelectReactionCallback,
130
+ onDialogSelectReactionCallback = _ref2$onDialogSelectR === void 0 ? function () {} : _ref2$onDialogSelectR,
131
+ _ref2$onDialogPageCha = _ref2.onDialogPageChangeCallback,
132
+ onDialogPageChangeCallback = _ref2$onDialogPageCha === void 0 ? function () {} : _ref2$onDialogPageCha,
133
+ _ref2$emojiPickerSize = _ref2.emojiPickerSize,
134
+ emojiPickerSize = _ref2$emojiPickerSize === void 0 ? 'medium' : _ref2$emojiPickerSize,
135
+ _ref2$miniMode = _ref2.miniMode,
136
+ miniMode = _ref2$miniMode === void 0 ? false : _ref2$miniMode,
137
+ _ref2$summaryViewEnab = _ref2.summaryViewEnabled,
138
+ summaryViewEnabled = _ref2$summaryViewEnab === void 0 ? false : _ref2$summaryViewEnab,
139
+ _ref2$summaryViewThre = _ref2.summaryViewThreshold,
140
+ summaryViewThreshold = _ref2$summaryViewThre === void 0 ? 3 : _ref2$summaryViewThre,
141
+ summaryViewPlacement = _ref2.summaryViewPlacement,
142
+ _ref2$showOpaqueBackg = _ref2.showOpaqueBackground,
143
+ showOpaqueBackground = _ref2$showOpaqueBackg === void 0 ? false : _ref2$showOpaqueBackg,
144
+ _ref2$subtleReactions = _ref2.subtleReactionsSummaryAndPicker,
145
+ subtleReactionsSummaryAndPicker = _ref2$subtleReactions === void 0 ? false : _ref2$subtleReactions,
146
+ _ref2$showAddReaction = _ref2.showAddReactionText,
147
+ showAddReactionText = _ref2$showAddReaction === void 0 ? false : _ref2$showAddReaction,
148
+ _ref2$hideDefaultReac = _ref2.hideDefaultReactions,
149
+ hideDefaultReactions = _ref2$hideDefaultReac === void 0 ? false : _ref2$hideDefaultReac,
150
+ ProfileCardWrapper = _ref2.ProfileCardWrapper,
151
+ _ref2$onlyRenderPicke = _ref2.onlyRenderPicker,
152
+ onlyRenderPicker = _ref2$onlyRenderPicke === void 0 ? false : _ref2$onlyRenderPicke,
153
+ _ref2$isViewOnly = _ref2.isViewOnly,
154
+ isViewOnly = _ref2$isViewOnly === void 0 ? false : _ref2$isViewOnly,
155
+ _ref2$noWrap = _ref2.noWrap,
156
+ noWrap = _ref2$noWrap === void 0 ? false : _ref2$noWrap,
157
+ _ref2$noRelativeConta = _ref2.noRelativeContainer,
158
+ noRelativeContainer = _ref2$noRelativeConta === void 0 ? false : _ref2$noRelativeConta,
159
+ showSubtleDefaultReactions = _ref2.showSubtleDefaultReactions,
160
+ reactionPickerTriggerTooltipContent = _ref2.reactionPickerTriggerTooltipContent,
161
+ reactionPickerTriggerIcon = _ref2.reactionPickerTriggerIcon,
162
+ _ref2$allowSelectFrom = _ref2.allowSelectFromSummaryView,
163
+ allowSelectFromSummaryView = _ref2$allowSelectFrom === void 0 ? false : _ref2$allowSelectFrom,
164
+ _ref2$useButtonAlignm = _ref2.useButtonAlignmentStyling,
165
+ useButtonAlignmentStyling = _ref2$useButtonAlignm === void 0 ? false : _ref2$useButtonAlignm,
166
+ reactionPickerTriggerText = _ref2.reactionPickerTriggerText,
167
+ _ref2$hoverableSummar = _ref2.hoverableSummaryView,
168
+ hoverableSummaryView = _ref2$hoverableSummar === void 0 ? false : _ref2$hoverableSummar,
169
+ _ref2$isListItem = _ref2.isListItem,
170
+ isListItem = _ref2$isListItem === void 0 ? false : _ref2$isListItem,
171
+ summaryGetOptimisticImageURL = _ref2.summaryGetOptimisticImageURL,
172
+ reactionPickerPlacement = _ref2.reactionPickerPlacement,
173
+ summaryButtonIconAfter = _ref2.summaryButtonIconAfter,
174
+ _ref2$renderParticleE = _ref2.renderParticleEffectOnSummaryView,
175
+ renderParticleEffectOnSummaryView = _ref2$renderParticleE === void 0 ? false : _ref2$renderParticleE,
176
+ reactionPickerPopperZIndex = _ref2.reactionPickerPopperZIndex;
144
177
  var _useState = useState(''),
145
178
  _useState2 = _slicedToArray(_useState, 2),
146
179
  selectedEmojiId = _useState2[0],
@@ -300,11 +333,11 @@ export var Reactions = /*#__PURE__*/React.memo(function (_ref) {
300
333
  * @param emojiId initial emoji id to load dialog with
301
334
  */
302
335
  var _handleOpenReactionsDialog = function handleOpenReactionsDialog() {
303
- var _ref2 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
304
- _ref2$emojiId = _ref2.emojiId,
305
- emojiId = _ref2$emojiId === void 0 ? sortedReactions[0].emojiId : _ref2$emojiId,
306
- _ref2$source = _ref2.source,
307
- source = _ref2$source === void 0 ? 'endOfPageReactions' : _ref2$source;
336
+ var _ref3 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
337
+ _ref3$emojiId = _ref3.emojiId,
338
+ emojiId = _ref3$emojiId === void 0 ? sortedReactions[0].emojiId : _ref3$emojiId,
339
+ _ref3$source = _ref3.source,
340
+ source = _ref3$source === void 0 ? 'endOfPageReactions' : _ref3$source;
308
341
  // ufo start opening reaction dialog
309
342
  ufoExperiences.openDialog.start();
310
343
  getReactionDetails(emojiId);
@@ -320,11 +353,70 @@ export var Reactions = /*#__PURE__*/React.memo(function (_ref) {
320
353
  }
321
354
  });
322
355
  };
356
+ var renderReactionPicker = function renderReactionPicker() {
357
+ if (isListItem && memorizedReactions.length > 0 && fg('jfp_a11y_team_comment_actions_semantic')) {
358
+ // render the reaction picker inside li when reactions are present
359
+ return /*#__PURE__*/React.createElement("li", {
360
+ className: ax(["_qtt8glyw _19pkze3t"])
361
+ }, /*#__PURE__*/React.createElement(ReactionPicker, {
362
+ emojiProvider: emojiProvider,
363
+ allowAllEmojis: allowAllEmojis,
364
+ pickerQuickReactionEmojiIds: pickerQuickReactionEmojiIds,
365
+ disabled: status !== ReactionStatus.ready,
366
+ onSelection: handleOnSelection,
367
+ onOpen: handlePickerOpen,
368
+ onCancel: handleOnCancel,
369
+ onShowMore: handleOnMore,
370
+ tooltipContent: hoverableSummaryView ? null : getTooltip(status, errorMessage, reactionPickerTriggerTooltipContent),
371
+ emojiPickerSize: emojiPickerSize,
372
+ miniMode: miniMode,
373
+ showOpaqueBackground: showOpaqueBackground,
374
+ showAddReactionText: showAddReactionText,
375
+ subtleReactionsSummaryAndPicker: subtleReactionsSummaryAndPicker,
376
+ reactionPickerTriggerIcon: reactionPickerTriggerIcon,
377
+ reactionPickerTriggerText: reactionPickerTriggerText,
378
+ hoverableReactionPicker: hoverableSummaryView,
379
+ hoverableReactionPickerDelay: hoverableSummaryView ? 300 : 0,
380
+ reactionPickerPlacement: reactionPickerPlacement,
381
+ reactionPickerPopperZIndex: reactionPickerPopperZIndex,
382
+ className: ax(["_1e0c1o8l _19pk1b66"])
383
+ }));
384
+ }
385
+ return /*#__PURE__*/React.createElement(ReactionPicker, {
386
+ emojiProvider: emojiProvider,
387
+ allowAllEmojis: allowAllEmojis,
388
+ pickerQuickReactionEmojiIds: pickerQuickReactionEmojiIds,
389
+ disabled: status !== ReactionStatus.ready,
390
+ onSelection: handleOnSelection,
391
+ onOpen: handlePickerOpen,
392
+ onCancel: handleOnCancel,
393
+ onShowMore: handleOnMore,
394
+ tooltipContent: hoverableSummaryView ? null : getTooltip(status, errorMessage, reactionPickerTriggerTooltipContent),
395
+ emojiPickerSize: emojiPickerSize,
396
+ miniMode: miniMode,
397
+ showOpaqueBackground: showOpaqueBackground,
398
+ showAddReactionText: showAddReactionText,
399
+ subtleReactionsSummaryAndPicker: subtleReactionsSummaryAndPicker,
400
+ reactionPickerTriggerIcon: reactionPickerTriggerIcon,
401
+ reactionPickerTriggerText: reactionPickerTriggerText,
402
+ isListItem: isListItem,
403
+ hoverableReactionPicker: hoverableSummaryView,
404
+ hoverableReactionPickerDelay: hoverableSummaryView ? 300 : 0,
405
+ reactionPickerPlacement: reactionPickerPlacement,
406
+ reactionPickerPopperZIndex: reactionPickerPopperZIndex,
407
+ className: ax(["_1e0c1o8l _19pk1b66"])
408
+ });
409
+ };
323
410
  return /*#__PURE__*/React.createElement(UFOSegment, {
324
411
  name: "reactions"
325
- }, /*#__PURE__*/React.createElement("div", {
326
- "data-testid": RENDER_REACTIONS_TESTID,
327
- className: ax(["_1e0c1txw _1n261g80 _kqswh2mm _4cvr1h6o _19pkr5cr _13vtidpf", noWrap && "_1n261q9c", noRelativeContainer && "_kqswpfqs"])
412
+ }, /*#__PURE__*/React.createElement(ReactionsWrapper, {
413
+ noRelativeContainer: noRelativeContainer,
414
+ isListItem: isListItem,
415
+ reactionsLength: memorizedReactions.length,
416
+ noWrap: noWrap,
417
+ isShowingDefaultReactions:
418
+ // Conditon to determine whether showing the default reacitons
419
+ !(reactions.length === 0 && hideDefaultReactions || reactions.length > 0 || !quickReactionEmojis)
328
420
  }, !onlyRenderPicker && (shouldShowSummaryView ? /*#__PURE__*/React.createElement("div", {
329
421
  "data-testid": RENDER_REACTIONS_SUMMARY_TESTID
330
422
  }, /*#__PURE__*/React.createElement(ReactionSummaryView, {
@@ -359,7 +451,7 @@ export var Reactions = /*#__PURE__*/React.memo(function (_ref) {
359
451
  summaryButtonIconAfter: summaryButtonIconAfter,
360
452
  summaryViewParticleEffectEmojiId: renderParticleEffectOnSummaryView ? summaryViewParticleEffectEmojiId : null
361
453
  })) : memorizedReactions.map(function (reaction) {
362
- return /*#__PURE__*/React.createElement(Reaction, {
454
+ return /*#__PURE__*/React.createElement(Reaction, _extends({
363
455
  key: reaction.emojiId,
364
456
  reaction: reaction,
365
457
  emojiProvider: emojiProvider,
@@ -373,31 +465,10 @@ export var Reactions = /*#__PURE__*/React.memo(function (_ref) {
373
465
  handleOpenReactionsDialog: _handleOpenReactionsDialog,
374
466
  isViewOnly: isViewOnly,
375
467
  showSubtleStyle: showSubtleDefaultReactions && reactions.length === 0
376
- });
377
- })), isViewOnly || !onlyRenderPicker && shouldShowSummaryView && allowSelectFromSummaryView ? null : /*#__PURE__*/React.createElement(ReactionPicker, {
378
- emojiProvider: emojiProvider,
379
- allowAllEmojis: allowAllEmojis,
380
- pickerQuickReactionEmojiIds: pickerQuickReactionEmojiIds,
381
- disabled: status !== ReactionStatus.ready,
382
- onSelection: handleOnSelection,
383
- onOpen: handlePickerOpen,
384
- onCancel: handleOnCancel,
385
- onShowMore: handleOnMore,
386
- tooltipContent: hoverableSummaryView ? null : getTooltip(status, errorMessage, reactionPickerTriggerTooltipContent),
387
- emojiPickerSize: emojiPickerSize,
388
- miniMode: miniMode,
389
- showOpaqueBackground: showOpaqueBackground,
390
- showAddReactionText: showAddReactionText,
391
- subtleReactionsSummaryAndPicker: subtleReactionsSummaryAndPicker,
392
- reactionPickerTriggerIcon: reactionPickerTriggerIcon,
393
- reactionPickerTriggerText: reactionPickerTriggerText,
394
- isListItem: isListItem,
395
- hoverableReactionPicker: hoverableSummaryView,
396
- hoverableReactionPickerDelay: hoverableSummaryView ? 300 : 0,
397
- reactionPickerPlacement: reactionPickerPlacement,
398
- reactionPickerPopperZIndex: reactionPickerPopperZIndex,
399
- className: ax(["_1e0c1o8l _19pk1b66"])
400
- }), /*#__PURE__*/React.createElement(ModalTransition, null, !!selectedEmojiId && /*#__PURE__*/React.createElement(UFOSegment, {
468
+ }, fg('jfp_a11y_team_comment_actions_semantic') && {
469
+ isListItem: isListItem
470
+ }));
471
+ })), isViewOnly || !onlyRenderPicker && shouldShowSummaryView && allowSelectFromSummaryView ? null : renderReactionPicker(), /*#__PURE__*/React.createElement(ModalTransition, null, !!selectedEmojiId && /*#__PURE__*/React.createElement(UFOSegment, {
401
472
  name: "reactions-dialog"
402
473
  }, /*#__PURE__*/React.createElement(ReactionsDialog, {
403
474
  selectedEmojiId: selectedEmojiId,
@@ -109,7 +109,7 @@ export var Trigger = /*#__PURE__*/React.forwardRef(function (props, ref) {
109
109
  canAppear: function canAppear() {
110
110
  return !showAddReactionText;
111
111
  }
112
- }, isListItem ? /*#__PURE__*/React.createElement("li", {
112
+ }, isListItem && !fg('jfp_a11y_team_comment_actions_semantic') ? /*#__PURE__*/React.createElement("li", {
113
113
  "data-testid": RENDER_LIST_ITEM_WRAPPER_TESTID,
114
114
  className: ax(["_qtt8glyw"])
115
115
  }, renderPressableButton()) : renderPressableButton()));
@@ -23,6 +23,10 @@ export interface ReactionProps {
23
23
  * Optional function when the user wants to open the Reactions Dialog
24
24
  */
25
25
  handleOpenReactionsDialog?: (options?: OpenReactionsDialogOptions) => void;
26
+ /**
27
+ * Optional prop to say if the reaction component is in a list
28
+ */
29
+ isListItem?: boolean;
26
30
  /**
27
31
  * Optional prop for controlling if the reactions component is view only, disabling adding reactions
28
32
  */
@@ -59,4 +63,4 @@ export interface ReactionProps {
59
63
  /**
60
64
  * Render an emoji reaction button
61
65
  */
62
- export declare const Reaction: ({ emojiProvider, onClick, reaction, onMouseEnter, onFocused, flash, showParticleEffect, showOpaqueBackground, allowUserDialog, handleOpenReactionsDialog, isViewOnly, showSubtleStyle, }: ReactionProps) => JSX.Element;
66
+ export declare const Reaction: ({ emojiProvider, onClick, reaction, onMouseEnter, onFocused, flash, showParticleEffect, showOpaqueBackground, allowUserDialog, handleOpenReactionsDialog, isViewOnly, showSubtleStyle, isListItem, }: ReactionProps) => JSX.Element;