@atlaskit/reactions 31.12.0 → 31.13.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.
- package/CHANGELOG.md +12 -0
- package/dist/cjs/analytics/index.js +1 -1
- package/dist/cjs/components/ReactionPickerNew.js +40 -17
- package/dist/cjs/components/ReactionSummaryView.js +36 -13
- package/dist/es2019/analytics/index.js +1 -1
- package/dist/es2019/components/ReactionPickerNew.js +29 -9
- package/dist/es2019/components/ReactionSummaryView.js +31 -11
- package/dist/esm/analytics/index.js +1 -1
- package/dist/esm/components/ReactionPickerNew.js +40 -17
- package/dist/esm/components/ReactionSummaryView.js +36 -13
- package/package.json +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,17 @@
|
|
|
1
1
|
# @atlaskit/reactions
|
|
2
2
|
|
|
3
|
+
## 31.13.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- [#156164](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/pull-requests/156164)
|
|
8
|
+
[`f0d8ffc2480b7`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/f0d8ffc2480b7) -
|
|
9
|
+
[ux] Changes the behavior for the hoverable summary button and empty reactions trigger
|
|
10
|
+
|
|
11
|
+
### Patch Changes
|
|
12
|
+
|
|
13
|
+
- Updated dependencies
|
|
14
|
+
|
|
3
15
|
## 31.12.0
|
|
4
16
|
|
|
5
17
|
### Minor Changes
|
|
@@ -11,7 +11,7 @@ var _analyticsGasTypes = require("@atlaskit/analytics-gas-types");
|
|
|
11
11
|
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
12
12
|
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
13
13
|
var packageName = "@atlaskit/reactions";
|
|
14
|
-
var packageVersion = "31.
|
|
14
|
+
var packageVersion = "31.13.0";
|
|
15
15
|
/**
|
|
16
16
|
* TODO: move to utility package?
|
|
17
17
|
* A random sampling function
|
|
@@ -106,6 +106,10 @@ var ReactionPicker = exports.ReactionPicker = /*#__PURE__*/_react.default.memo(f
|
|
|
106
106
|
_useState8 = (0, _slicedToArray2.default)(_useState7, 2),
|
|
107
107
|
isHoveringPopup = _useState8[0],
|
|
108
108
|
setIsHoveringPopup = _useState8[1];
|
|
109
|
+
var _useState9 = (0, _react.useState)(false),
|
|
110
|
+
_useState10 = (0, _slicedToArray2.default)(_useState9, 2),
|
|
111
|
+
isTriggerClicked = _useState10[0],
|
|
112
|
+
setIsTriggerClicked = _useState10[1];
|
|
109
113
|
var _useDelayedState = (0, _useDelayedState3.useDelayedState)(false, hoverableReactionPickerDelay),
|
|
110
114
|
_useDelayedState2 = (0, _slicedToArray2.default)(_useDelayedState, 2),
|
|
111
115
|
isPopupTrayOpen = _useDelayedState2[0],
|
|
@@ -146,7 +150,7 @@ var ReactionPicker = exports.ReactionPicker = /*#__PURE__*/_react.default.memo(f
|
|
|
146
150
|
}, reactionsPickerPreventOverflowOptions && {
|
|
147
151
|
options: reactionsPickerPreventOverflowOptions
|
|
148
152
|
})];
|
|
149
|
-
var
|
|
153
|
+
var _useState11 = (0, _react.useState)({
|
|
150
154
|
/**
|
|
151
155
|
* Show the full custom emoji list picker or the default list of emojis
|
|
152
156
|
*/
|
|
@@ -156,16 +160,16 @@ var ReactionPicker = exports.ReactionPicker = /*#__PURE__*/_react.default.memo(f
|
|
|
156
160
|
*/
|
|
157
161
|
popperPlacement: popperPlacement
|
|
158
162
|
}),
|
|
159
|
-
|
|
160
|
-
settings =
|
|
161
|
-
setSettings =
|
|
163
|
+
_useState12 = (0, _slicedToArray2.default)(_useState11, 2),
|
|
164
|
+
settings = _useState12[0],
|
|
165
|
+
setSettings = _useState12[1];
|
|
162
166
|
|
|
163
167
|
/**
|
|
164
168
|
* Event callback when the picker is closed
|
|
165
169
|
* @param _id Optional id if an emoji button was selected or undefineed if was clicked outside the picker
|
|
166
170
|
*/
|
|
167
171
|
var close = (0, _react.useCallback)(function (_id) {
|
|
168
|
-
setIsPopupTrayOpen(false);
|
|
172
|
+
setIsPopupTrayOpen(false, true);
|
|
169
173
|
// ufo abort reaction experience
|
|
170
174
|
_ufo.PickerRender.abort({
|
|
171
175
|
metadata: {
|
|
@@ -176,8 +180,11 @@ var ReactionPicker = exports.ReactionPicker = /*#__PURE__*/_react.default.memo(f
|
|
|
176
180
|
});
|
|
177
181
|
if (hoverableReactionPicker) {
|
|
178
182
|
setIsHoverableReactionPickerEmojiPickerOpen(false);
|
|
183
|
+
setIsTriggerClicked(false);
|
|
184
|
+
setIsHoveringTrigger(false);
|
|
185
|
+
setIsHoveringPopup(false);
|
|
179
186
|
}
|
|
180
|
-
}, [setIsPopupTrayOpen, setIsHoverableReactionPickerEmojiPickerOpen, hoverableReactionPicker]);
|
|
187
|
+
}, [setIsPopupTrayOpen, setIsHoverableReactionPickerEmojiPickerOpen, hoverableReactionPicker, setIsTriggerClicked, setIsHoveringTrigger, setIsHoveringPopup]);
|
|
181
188
|
|
|
182
189
|
/**
|
|
183
190
|
* Event handle rwhen selecting to show the custom emoji icons picker
|
|
@@ -192,6 +199,7 @@ var ReactionPicker = exports.ReactionPicker = /*#__PURE__*/_react.default.memo(f
|
|
|
192
199
|
setIsPopupTrayOpen(true);
|
|
193
200
|
if (hoverableReactionPicker) {
|
|
194
201
|
setIsHoverableReactionPickerEmojiPickerOpen(!isHoverableReactionPickerEmojiPickerOpen);
|
|
202
|
+
setIsTriggerClicked(false);
|
|
195
203
|
}
|
|
196
204
|
onShowMore();
|
|
197
205
|
}, [settings.showFullPicker, setIsPopupTrayOpen, onShowMore, popperPlacement, hoverableReactionPicker, setIsHoverableReactionPickerEmojiPickerOpen, isHoverableReactionPickerEmojiPickerOpen]);
|
|
@@ -219,15 +227,30 @@ var ReactionPicker = exports.ReactionPicker = /*#__PURE__*/_react.default.memo(f
|
|
|
219
227
|
popperPlacement: popperPlacement
|
|
220
228
|
}));
|
|
221
229
|
if (hoverableReactionPicker) {
|
|
222
|
-
|
|
223
|
-
|
|
230
|
+
if (isTriggerClicked) {
|
|
231
|
+
// if the button was previously clicked, close the popup and reset the state
|
|
232
|
+
setIsTriggerClicked(false);
|
|
233
|
+
setIsPopupTrayOpen(false, true);
|
|
234
|
+
} else {
|
|
235
|
+
if (isHoverableReactionPickerEmojiPickerOpen) {
|
|
236
|
+
// if the emoji picker is open, close the popup and reset the state
|
|
237
|
+
setIsTriggerClicked(false);
|
|
238
|
+
setIsPopupTrayOpen(false, true);
|
|
239
|
+
} else {
|
|
240
|
+
// if the button was not previously clicked, open the popup and set the state
|
|
241
|
+
setIsTriggerClicked(true);
|
|
242
|
+
setIsPopupTrayOpen(true, true);
|
|
243
|
+
}
|
|
244
|
+
}
|
|
245
|
+
// close the emoji picker
|
|
246
|
+
setIsHoverableReactionPickerEmojiPickerOpen(false);
|
|
224
247
|
} else {
|
|
225
248
|
setIsPopupTrayOpen(!isPopupTrayOpen);
|
|
226
249
|
}
|
|
227
250
|
onOpen();
|
|
228
251
|
// ufo reactions picker opened success
|
|
229
252
|
_ufo.PickerRender.success();
|
|
230
|
-
}, [hoverableReactionPicker, isPopupTrayOpen, setIsPopupTrayOpen, isHoverableReactionPickerEmojiPickerOpen, onOpen, settings, popperPlacement]);
|
|
253
|
+
}, [hoverableReactionPicker, isPopupTrayOpen, setIsPopupTrayOpen, isTriggerClicked, setIsTriggerClicked, isHoverableReactionPickerEmojiPickerOpen, onOpen, settings, popperPlacement]);
|
|
231
254
|
var handleTriggerMouseEnter = (0, _react.useCallback)(function () {
|
|
232
255
|
if (hoverableReactionPicker) {
|
|
233
256
|
setIsHoveringTrigger(true);
|
|
@@ -239,11 +262,11 @@ var ReactionPicker = exports.ReactionPicker = /*#__PURE__*/_react.default.memo(f
|
|
|
239
262
|
var handleTriggerMouseLeave = (0, _react.useCallback)(function () {
|
|
240
263
|
if (hoverableReactionPicker) {
|
|
241
264
|
setIsHoveringTrigger(false);
|
|
242
|
-
if (!isHoveringPopup && !isHoverableReactionPickerEmojiPickerOpen) {
|
|
265
|
+
if (!isHoveringPopup && !isHoverableReactionPickerEmojiPickerOpen && !isTriggerClicked) {
|
|
243
266
|
setIsPopupTrayOpen(false);
|
|
244
267
|
}
|
|
245
268
|
}
|
|
246
|
-
}, [hoverableReactionPicker, isHoveringPopup, isHoverableReactionPickerEmojiPickerOpen, setIsPopupTrayOpen]);
|
|
269
|
+
}, [hoverableReactionPicker, isHoveringPopup, isHoverableReactionPickerEmojiPickerOpen, setIsPopupTrayOpen, isTriggerClicked]);
|
|
247
270
|
var handlePopupMouseEnter = (0, _react.useCallback)(function () {
|
|
248
271
|
if (hoverableReactionPicker) {
|
|
249
272
|
setIsHoveringPopup(true);
|
|
@@ -255,11 +278,11 @@ var ReactionPicker = exports.ReactionPicker = /*#__PURE__*/_react.default.memo(f
|
|
|
255
278
|
var handlePopupMouseLeave = (0, _react.useCallback)(function () {
|
|
256
279
|
if (hoverableReactionPicker) {
|
|
257
280
|
setIsHoveringPopup(false);
|
|
258
|
-
if (!isHoveringTrigger && !isHoverableReactionPickerEmojiPickerOpen) {
|
|
281
|
+
if (!isHoveringTrigger && !isHoverableReactionPickerEmojiPickerOpen && !isTriggerClicked) {
|
|
259
282
|
setIsPopupTrayOpen(false);
|
|
260
283
|
}
|
|
261
284
|
}
|
|
262
|
-
}, [hoverableReactionPicker, isHoveringTrigger, isHoverableReactionPickerEmojiPickerOpen, setIsPopupTrayOpen]);
|
|
285
|
+
}, [hoverableReactionPicker, isHoveringTrigger, isHoverableReactionPickerEmojiPickerOpen, setIsPopupTrayOpen, isTriggerClicked]);
|
|
263
286
|
var wrapperClassName = " ".concat(isPopupTrayOpen ? 'isOpen' : '', " ").concat(miniMode ? 'miniMode' : '', " ").concat(className);
|
|
264
287
|
(0, _react.useLayoutEffect)(function () {
|
|
265
288
|
var _updatePopper$current;
|
|
@@ -343,10 +366,10 @@ var PopperWrapper = exports.PopperWrapper = function PopperWrapper(props) {
|
|
|
343
366
|
onClose = props.onClose,
|
|
344
367
|
children = props.children,
|
|
345
368
|
popperModifiers = props.popperModifiers;
|
|
346
|
-
var
|
|
347
|
-
|
|
348
|
-
popupRef =
|
|
349
|
-
setPopupRef =
|
|
369
|
+
var _useState13 = (0, _react.useState)(null),
|
|
370
|
+
_useState14 = (0, _slicedToArray2.default)(_useState13, 2),
|
|
371
|
+
popupRef = _useState14[0],
|
|
372
|
+
setPopupRef = _useState14[1];
|
|
350
373
|
var _useIntl = (0, _reactIntlNext.useIntl)(),
|
|
351
374
|
formatMessage = _useIntl.formatMessage;
|
|
352
375
|
/**
|
|
@@ -80,8 +80,12 @@ var ReactionSummaryView = exports.ReactionSummaryView = function ReactionSummary
|
|
|
80
80
|
setIsSummaryViewButtonHovered = _useState4[1];
|
|
81
81
|
var _useState5 = (0, _react.useState)(false),
|
|
82
82
|
_useState6 = (0, _slicedToArray2.default)(_useState5, 2),
|
|
83
|
-
|
|
84
|
-
|
|
83
|
+
isSummaryViewButtonClicked = _useState6[0],
|
|
84
|
+
setIsSummaryViewButtonClicked = _useState6[1];
|
|
85
|
+
var _useState7 = (0, _react.useState)(false),
|
|
86
|
+
_useState8 = (0, _slicedToArray2.default)(_useState7, 2),
|
|
87
|
+
isEmojiPickerOpen = _useState8[0],
|
|
88
|
+
setIsEmojiPickerOpen = _useState8[1];
|
|
85
89
|
|
|
86
90
|
/**
|
|
87
91
|
* Event callback when the picker is closed
|
|
@@ -111,9 +115,12 @@ var ReactionSummaryView = exports.ReactionSummaryView = function ReactionSummary
|
|
|
111
115
|
close(item.id);
|
|
112
116
|
}, [onSelection, close]);
|
|
113
117
|
var handlePopupClose = (0, _react.useCallback)(function () {
|
|
114
|
-
setSummaryPopupOpen(false);
|
|
118
|
+
setSummaryPopupOpen(false, true);
|
|
115
119
|
setIsEmojiPickerOpen(false);
|
|
116
|
-
|
|
120
|
+
setIsSummaryViewButtonClicked(false);
|
|
121
|
+
setIsSummaryViewButtonHovered(false);
|
|
122
|
+
setIsHoveringSummaryView(false);
|
|
123
|
+
}, [setSummaryPopupOpen, setIsEmojiPickerOpen, setIsSummaryViewButtonClicked, setIsSummaryViewButtonHovered, setIsHoveringSummaryView]);
|
|
117
124
|
var openEmojiPicker = (0, _react.useCallback)(function () {
|
|
118
125
|
// ufo start reactions picker open experience
|
|
119
126
|
_ufo.PickerRender.start();
|
|
@@ -125,15 +132,31 @@ var ReactionSummaryView = exports.ReactionSummaryView = function ReactionSummary
|
|
|
125
132
|
var handleEmojiPickerTriggerClick = (0, _react.useCallback)(function () {
|
|
126
133
|
openEmojiPicker();
|
|
127
134
|
setSummaryPopupOpen(false, true);
|
|
135
|
+
setIsSummaryViewButtonClicked(false);
|
|
136
|
+
setIsSummaryViewButtonHovered(false);
|
|
137
|
+
setIsHoveringSummaryView(false);
|
|
128
138
|
}, [openEmojiPicker, setSummaryPopupOpen]);
|
|
129
139
|
var handleSummaryClick = (0, _react.useCallback)(function () {
|
|
130
140
|
if (hoverableSummaryView) {
|
|
131
|
-
|
|
132
|
-
|
|
141
|
+
setIsHoveringSummaryView(false);
|
|
142
|
+
setIsSummaryViewButtonHovered(false);
|
|
143
|
+
if (isSummaryViewButtonClicked) {
|
|
144
|
+
// if the button was previously clicked, close the popup and reset the state
|
|
145
|
+
setSummaryPopupOpen(false, true);
|
|
146
|
+
setIsSummaryViewButtonClicked(false);
|
|
133
147
|
} else {
|
|
134
|
-
|
|
148
|
+
if (isEmojiPickerOpen) {
|
|
149
|
+
// if the emoji picker is open, close the popup and reset the state
|
|
150
|
+
setSummaryPopupOpen(false, true);
|
|
151
|
+
setIsSummaryViewButtonClicked(false);
|
|
152
|
+
} else {
|
|
153
|
+
// if the button was not previously clicked, open the popup and set the state
|
|
154
|
+
setSummaryPopupOpen(true, true);
|
|
155
|
+
setIsSummaryViewButtonClicked(true);
|
|
156
|
+
}
|
|
135
157
|
}
|
|
136
|
-
|
|
158
|
+
// close the emoji picker
|
|
159
|
+
setIsEmojiPickerOpen(false);
|
|
137
160
|
} else {
|
|
138
161
|
if (isSummaryPopupOpen) {
|
|
139
162
|
handlePopupClose();
|
|
@@ -141,7 +164,7 @@ var ReactionSummaryView = exports.ReactionSummaryView = function ReactionSummary
|
|
|
141
164
|
setSummaryPopupOpen(true);
|
|
142
165
|
}
|
|
143
166
|
}
|
|
144
|
-
}, [hoverableSummaryView, isEmojiPickerOpen,
|
|
167
|
+
}, [hoverableSummaryView, isEmojiPickerOpen, setSummaryPopupOpen, isSummaryPopupOpen, handlePopupClose, isSummaryViewButtonClicked, setIsSummaryViewButtonClicked]);
|
|
145
168
|
var handleButtonMouseEnter = (0, _react.useCallback)(function () {
|
|
146
169
|
setIsSummaryViewButtonHovered(true);
|
|
147
170
|
if (hoverableSummaryView && !isEmojiPickerOpen) {
|
|
@@ -150,10 +173,10 @@ var ReactionSummaryView = exports.ReactionSummaryView = function ReactionSummary
|
|
|
150
173
|
}, [hoverableSummaryView, setSummaryPopupOpen, setIsSummaryViewButtonHovered, isEmojiPickerOpen]);
|
|
151
174
|
var handleButtonMouseLeave = (0, _react.useCallback)(function () {
|
|
152
175
|
setIsSummaryViewButtonHovered(false);
|
|
153
|
-
if (hoverableSummaryView && !isHoveringSummaryView) {
|
|
176
|
+
if (hoverableSummaryView && !isHoveringSummaryView && !isSummaryViewButtonClicked) {
|
|
154
177
|
setSummaryPopupOpen(false);
|
|
155
178
|
}
|
|
156
|
-
}, [hoverableSummaryView, isHoveringSummaryView, setSummaryPopupOpen, setIsSummaryViewButtonHovered]);
|
|
179
|
+
}, [hoverableSummaryView, isHoveringSummaryView, setSummaryPopupOpen, setIsSummaryViewButtonHovered, isSummaryViewButtonClicked]);
|
|
157
180
|
var handleSummaryViewTrayMouseEnter = (0, _react.useCallback)(function () {
|
|
158
181
|
setIsHoveringSummaryView(true);
|
|
159
182
|
if (hoverableSummaryView && !isEmojiPickerOpen) {
|
|
@@ -162,10 +185,10 @@ var ReactionSummaryView = exports.ReactionSummaryView = function ReactionSummary
|
|
|
162
185
|
}, [hoverableSummaryView, setSummaryPopupOpen, setIsHoveringSummaryView, isEmojiPickerOpen]);
|
|
163
186
|
var handleSummaryViewTrayMouseLeave = (0, _react.useCallback)(function () {
|
|
164
187
|
setIsHoveringSummaryView(false);
|
|
165
|
-
if (hoverableSummaryView && !isSummaryViewButtonHovered) {
|
|
188
|
+
if (hoverableSummaryView && !isSummaryViewButtonHovered && !isSummaryViewButtonClicked) {
|
|
166
189
|
setSummaryPopupOpen(false);
|
|
167
190
|
}
|
|
168
|
-
}, [hoverableSummaryView, isSummaryViewButtonHovered, setIsHoveringSummaryView, setSummaryPopupOpen]);
|
|
191
|
+
}, [hoverableSummaryView, isSummaryViewButtonHovered, setIsHoveringSummaryView, setSummaryPopupOpen, isSummaryViewButtonClicked]);
|
|
169
192
|
return /*#__PURE__*/React.createElement(_popup.default, {
|
|
170
193
|
placement: placement,
|
|
171
194
|
content: function content() {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { createAndFireEvent } from '@atlaskit/analytics-next';
|
|
2
2
|
import { UI_EVENT_TYPE, OPERATIONAL_EVENT_TYPE } from '@atlaskit/analytics-gas-types';
|
|
3
3
|
const packageName = "@atlaskit/reactions";
|
|
4
|
-
const packageVersion = "31.
|
|
4
|
+
const packageVersion = "31.13.0";
|
|
5
5
|
/**
|
|
6
6
|
* TODO: move to utility package?
|
|
7
7
|
* A random sampling function
|
|
@@ -71,6 +71,7 @@ export const ReactionPicker = /*#__PURE__*/React.memo(props => {
|
|
|
71
71
|
const [isHoverableReactionPickerEmojiPickerOpen, setIsHoverableReactionPickerEmojiPickerOpen] = useState(false);
|
|
72
72
|
const [isHoveringTrigger, setIsHoveringTrigger] = useState(false);
|
|
73
73
|
const [isHoveringPopup, setIsHoveringPopup] = useState(false);
|
|
74
|
+
const [isTriggerClicked, setIsTriggerClicked] = useState(false);
|
|
74
75
|
const [isPopupTrayOpen, setIsPopupTrayOpen] = useDelayedState(false, hoverableReactionPickerDelay);
|
|
75
76
|
|
|
76
77
|
/**
|
|
@@ -125,7 +126,7 @@ export const ReactionPicker = /*#__PURE__*/React.memo(props => {
|
|
|
125
126
|
* @param _id Optional id if an emoji button was selected or undefineed if was clicked outside the picker
|
|
126
127
|
*/
|
|
127
128
|
const close = useCallback(_id => {
|
|
128
|
-
setIsPopupTrayOpen(false);
|
|
129
|
+
setIsPopupTrayOpen(false, true);
|
|
129
130
|
// ufo abort reaction experience
|
|
130
131
|
PickerRender.abort({
|
|
131
132
|
metadata: {
|
|
@@ -136,8 +137,11 @@ export const ReactionPicker = /*#__PURE__*/React.memo(props => {
|
|
|
136
137
|
});
|
|
137
138
|
if (hoverableReactionPicker) {
|
|
138
139
|
setIsHoverableReactionPickerEmojiPickerOpen(false);
|
|
140
|
+
setIsTriggerClicked(false);
|
|
141
|
+
setIsHoveringTrigger(false);
|
|
142
|
+
setIsHoveringPopup(false);
|
|
139
143
|
}
|
|
140
|
-
}, [setIsPopupTrayOpen, setIsHoverableReactionPickerEmojiPickerOpen, hoverableReactionPicker]);
|
|
144
|
+
}, [setIsPopupTrayOpen, setIsHoverableReactionPickerEmojiPickerOpen, hoverableReactionPicker, setIsTriggerClicked, setIsHoveringTrigger, setIsHoveringPopup]);
|
|
141
145
|
|
|
142
146
|
/**
|
|
143
147
|
* Event handle rwhen selecting to show the custom emoji icons picker
|
|
@@ -152,6 +156,7 @@ export const ReactionPicker = /*#__PURE__*/React.memo(props => {
|
|
|
152
156
|
setIsPopupTrayOpen(true);
|
|
153
157
|
if (hoverableReactionPicker) {
|
|
154
158
|
setIsHoverableReactionPickerEmojiPickerOpen(!isHoverableReactionPickerEmojiPickerOpen);
|
|
159
|
+
setIsTriggerClicked(false);
|
|
155
160
|
}
|
|
156
161
|
onShowMore();
|
|
157
162
|
}, [settings.showFullPicker, setIsPopupTrayOpen, onShowMore, popperPlacement, hoverableReactionPicker, setIsHoverableReactionPickerEmojiPickerOpen, isHoverableReactionPickerEmojiPickerOpen]);
|
|
@@ -180,15 +185,30 @@ export const ReactionPicker = /*#__PURE__*/React.memo(props => {
|
|
|
180
185
|
popperPlacement
|
|
181
186
|
});
|
|
182
187
|
if (hoverableReactionPicker) {
|
|
183
|
-
|
|
184
|
-
|
|
188
|
+
if (isTriggerClicked) {
|
|
189
|
+
// if the button was previously clicked, close the popup and reset the state
|
|
190
|
+
setIsTriggerClicked(false);
|
|
191
|
+
setIsPopupTrayOpen(false, true);
|
|
192
|
+
} else {
|
|
193
|
+
if (isHoverableReactionPickerEmojiPickerOpen) {
|
|
194
|
+
// if the emoji picker is open, close the popup and reset the state
|
|
195
|
+
setIsTriggerClicked(false);
|
|
196
|
+
setIsPopupTrayOpen(false, true);
|
|
197
|
+
} else {
|
|
198
|
+
// if the button was not previously clicked, open the popup and set the state
|
|
199
|
+
setIsTriggerClicked(true);
|
|
200
|
+
setIsPopupTrayOpen(true, true);
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
// close the emoji picker
|
|
204
|
+
setIsHoverableReactionPickerEmojiPickerOpen(false);
|
|
185
205
|
} else {
|
|
186
206
|
setIsPopupTrayOpen(!isPopupTrayOpen);
|
|
187
207
|
}
|
|
188
208
|
onOpen();
|
|
189
209
|
// ufo reactions picker opened success
|
|
190
210
|
PickerRender.success();
|
|
191
|
-
}, [hoverableReactionPicker, isPopupTrayOpen, setIsPopupTrayOpen, isHoverableReactionPickerEmojiPickerOpen, onOpen, settings, popperPlacement]);
|
|
211
|
+
}, [hoverableReactionPicker, isPopupTrayOpen, setIsPopupTrayOpen, isTriggerClicked, setIsTriggerClicked, isHoverableReactionPickerEmojiPickerOpen, onOpen, settings, popperPlacement]);
|
|
192
212
|
const handleTriggerMouseEnter = useCallback(() => {
|
|
193
213
|
if (hoverableReactionPicker) {
|
|
194
214
|
setIsHoveringTrigger(true);
|
|
@@ -200,11 +220,11 @@ export const ReactionPicker = /*#__PURE__*/React.memo(props => {
|
|
|
200
220
|
const handleTriggerMouseLeave = useCallback(() => {
|
|
201
221
|
if (hoverableReactionPicker) {
|
|
202
222
|
setIsHoveringTrigger(false);
|
|
203
|
-
if (!isHoveringPopup && !isHoverableReactionPickerEmojiPickerOpen) {
|
|
223
|
+
if (!isHoveringPopup && !isHoverableReactionPickerEmojiPickerOpen && !isTriggerClicked) {
|
|
204
224
|
setIsPopupTrayOpen(false);
|
|
205
225
|
}
|
|
206
226
|
}
|
|
207
|
-
}, [hoverableReactionPicker, isHoveringPopup, isHoverableReactionPickerEmojiPickerOpen, setIsPopupTrayOpen]);
|
|
227
|
+
}, [hoverableReactionPicker, isHoveringPopup, isHoverableReactionPickerEmojiPickerOpen, setIsPopupTrayOpen, isTriggerClicked]);
|
|
208
228
|
const handlePopupMouseEnter = useCallback(() => {
|
|
209
229
|
if (hoverableReactionPicker) {
|
|
210
230
|
setIsHoveringPopup(true);
|
|
@@ -216,11 +236,11 @@ export const ReactionPicker = /*#__PURE__*/React.memo(props => {
|
|
|
216
236
|
const handlePopupMouseLeave = useCallback(() => {
|
|
217
237
|
if (hoverableReactionPicker) {
|
|
218
238
|
setIsHoveringPopup(false);
|
|
219
|
-
if (!isHoveringTrigger && !isHoverableReactionPickerEmojiPickerOpen) {
|
|
239
|
+
if (!isHoveringTrigger && !isHoverableReactionPickerEmojiPickerOpen && !isTriggerClicked) {
|
|
220
240
|
setIsPopupTrayOpen(false);
|
|
221
241
|
}
|
|
222
242
|
}
|
|
223
|
-
}, [hoverableReactionPicker, isHoveringTrigger, isHoverableReactionPickerEmojiPickerOpen, setIsPopupTrayOpen]);
|
|
243
|
+
}, [hoverableReactionPicker, isHoveringTrigger, isHoverableReactionPickerEmojiPickerOpen, setIsPopupTrayOpen, isTriggerClicked]);
|
|
224
244
|
const wrapperClassName = ` ${isPopupTrayOpen ? 'isOpen' : ''} ${miniMode ? 'miniMode' : ''} ${className}`;
|
|
225
245
|
useLayoutEffect(() => {
|
|
226
246
|
var _updatePopper$current;
|
|
@@ -50,6 +50,7 @@ export const ReactionSummaryView = ({
|
|
|
50
50
|
const [isSummaryPopupOpen, setSummaryPopupOpen] = useDelayedState(false, hoverableSummaryViewDelay);
|
|
51
51
|
const [isHoveringSummaryView, setIsHoveringSummaryView] = useState(false);
|
|
52
52
|
const [isSummaryViewButtonHovered, setIsSummaryViewButtonHovered] = useState(false);
|
|
53
|
+
const [isSummaryViewButtonClicked, setIsSummaryViewButtonClicked] = useState(false);
|
|
53
54
|
const [isEmojiPickerOpen, setIsEmojiPickerOpen] = useState(false);
|
|
54
55
|
|
|
55
56
|
/**
|
|
@@ -80,9 +81,12 @@ export const ReactionSummaryView = ({
|
|
|
80
81
|
close(item.id);
|
|
81
82
|
}, [onSelection, close]);
|
|
82
83
|
const handlePopupClose = useCallback(() => {
|
|
83
|
-
setSummaryPopupOpen(false);
|
|
84
|
+
setSummaryPopupOpen(false, true);
|
|
84
85
|
setIsEmojiPickerOpen(false);
|
|
85
|
-
|
|
86
|
+
setIsSummaryViewButtonClicked(false);
|
|
87
|
+
setIsSummaryViewButtonHovered(false);
|
|
88
|
+
setIsHoveringSummaryView(false);
|
|
89
|
+
}, [setSummaryPopupOpen, setIsEmojiPickerOpen, setIsSummaryViewButtonClicked, setIsSummaryViewButtonHovered, setIsHoveringSummaryView]);
|
|
86
90
|
const openEmojiPicker = useCallback(() => {
|
|
87
91
|
// ufo start reactions picker open experience
|
|
88
92
|
PickerRender.start();
|
|
@@ -94,15 +98,31 @@ export const ReactionSummaryView = ({
|
|
|
94
98
|
const handleEmojiPickerTriggerClick = useCallback(() => {
|
|
95
99
|
openEmojiPicker();
|
|
96
100
|
setSummaryPopupOpen(false, true);
|
|
101
|
+
setIsSummaryViewButtonClicked(false);
|
|
102
|
+
setIsSummaryViewButtonHovered(false);
|
|
103
|
+
setIsHoveringSummaryView(false);
|
|
97
104
|
}, [openEmojiPicker, setSummaryPopupOpen]);
|
|
98
105
|
const handleSummaryClick = useCallback(() => {
|
|
99
106
|
if (hoverableSummaryView) {
|
|
100
|
-
|
|
101
|
-
|
|
107
|
+
setIsHoveringSummaryView(false);
|
|
108
|
+
setIsSummaryViewButtonHovered(false);
|
|
109
|
+
if (isSummaryViewButtonClicked) {
|
|
110
|
+
// if the button was previously clicked, close the popup and reset the state
|
|
111
|
+
setSummaryPopupOpen(false, true);
|
|
112
|
+
setIsSummaryViewButtonClicked(false);
|
|
102
113
|
} else {
|
|
103
|
-
|
|
114
|
+
if (isEmojiPickerOpen) {
|
|
115
|
+
// if the emoji picker is open, close the popup and reset the state
|
|
116
|
+
setSummaryPopupOpen(false, true);
|
|
117
|
+
setIsSummaryViewButtonClicked(false);
|
|
118
|
+
} else {
|
|
119
|
+
// if the button was not previously clicked, open the popup and set the state
|
|
120
|
+
setSummaryPopupOpen(true, true);
|
|
121
|
+
setIsSummaryViewButtonClicked(true);
|
|
122
|
+
}
|
|
104
123
|
}
|
|
105
|
-
|
|
124
|
+
// close the emoji picker
|
|
125
|
+
setIsEmojiPickerOpen(false);
|
|
106
126
|
} else {
|
|
107
127
|
if (isSummaryPopupOpen) {
|
|
108
128
|
handlePopupClose();
|
|
@@ -110,7 +130,7 @@ export const ReactionSummaryView = ({
|
|
|
110
130
|
setSummaryPopupOpen(true);
|
|
111
131
|
}
|
|
112
132
|
}
|
|
113
|
-
}, [hoverableSummaryView, isEmojiPickerOpen,
|
|
133
|
+
}, [hoverableSummaryView, isEmojiPickerOpen, setSummaryPopupOpen, isSummaryPopupOpen, handlePopupClose, isSummaryViewButtonClicked, setIsSummaryViewButtonClicked]);
|
|
114
134
|
const handleButtonMouseEnter = useCallback(() => {
|
|
115
135
|
setIsSummaryViewButtonHovered(true);
|
|
116
136
|
if (hoverableSummaryView && !isEmojiPickerOpen) {
|
|
@@ -119,10 +139,10 @@ export const ReactionSummaryView = ({
|
|
|
119
139
|
}, [hoverableSummaryView, setSummaryPopupOpen, setIsSummaryViewButtonHovered, isEmojiPickerOpen]);
|
|
120
140
|
const handleButtonMouseLeave = useCallback(() => {
|
|
121
141
|
setIsSummaryViewButtonHovered(false);
|
|
122
|
-
if (hoverableSummaryView && !isHoveringSummaryView) {
|
|
142
|
+
if (hoverableSummaryView && !isHoveringSummaryView && !isSummaryViewButtonClicked) {
|
|
123
143
|
setSummaryPopupOpen(false);
|
|
124
144
|
}
|
|
125
|
-
}, [hoverableSummaryView, isHoveringSummaryView, setSummaryPopupOpen, setIsSummaryViewButtonHovered]);
|
|
145
|
+
}, [hoverableSummaryView, isHoveringSummaryView, setSummaryPopupOpen, setIsSummaryViewButtonHovered, isSummaryViewButtonClicked]);
|
|
126
146
|
const handleSummaryViewTrayMouseEnter = useCallback(() => {
|
|
127
147
|
setIsHoveringSummaryView(true);
|
|
128
148
|
if (hoverableSummaryView && !isEmojiPickerOpen) {
|
|
@@ -131,10 +151,10 @@ export const ReactionSummaryView = ({
|
|
|
131
151
|
}, [hoverableSummaryView, setSummaryPopupOpen, setIsHoveringSummaryView, isEmojiPickerOpen]);
|
|
132
152
|
const handleSummaryViewTrayMouseLeave = useCallback(() => {
|
|
133
153
|
setIsHoveringSummaryView(false);
|
|
134
|
-
if (hoverableSummaryView && !isSummaryViewButtonHovered) {
|
|
154
|
+
if (hoverableSummaryView && !isSummaryViewButtonHovered && !isSummaryViewButtonClicked) {
|
|
135
155
|
setSummaryPopupOpen(false);
|
|
136
156
|
}
|
|
137
|
-
}, [hoverableSummaryView, isSummaryViewButtonHovered, setIsHoveringSummaryView, setSummaryPopupOpen]);
|
|
157
|
+
}, [hoverableSummaryView, isSummaryViewButtonHovered, setIsHoveringSummaryView, setSummaryPopupOpen, isSummaryViewButtonClicked]);
|
|
138
158
|
return /*#__PURE__*/React.createElement(Popup, {
|
|
139
159
|
placement: placement,
|
|
140
160
|
content: () => isEmojiPickerOpen ? /*#__PURE__*/React.createElement(EmojiPicker, {
|
|
@@ -4,7 +4,7 @@ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t =
|
|
|
4
4
|
import { createAndFireEvent } from '@atlaskit/analytics-next';
|
|
5
5
|
import { UI_EVENT_TYPE, OPERATIONAL_EVENT_TYPE } from '@atlaskit/analytics-gas-types';
|
|
6
6
|
var packageName = "@atlaskit/reactions";
|
|
7
|
-
var packageVersion = "31.
|
|
7
|
+
var packageVersion = "31.13.0";
|
|
8
8
|
/**
|
|
9
9
|
* TODO: move to utility package?
|
|
10
10
|
* A random sampling function
|
|
@@ -96,6 +96,10 @@ export var ReactionPicker = /*#__PURE__*/React.memo(function (props) {
|
|
|
96
96
|
_useState8 = _slicedToArray(_useState7, 2),
|
|
97
97
|
isHoveringPopup = _useState8[0],
|
|
98
98
|
setIsHoveringPopup = _useState8[1];
|
|
99
|
+
var _useState9 = useState(false),
|
|
100
|
+
_useState10 = _slicedToArray(_useState9, 2),
|
|
101
|
+
isTriggerClicked = _useState10[0],
|
|
102
|
+
setIsTriggerClicked = _useState10[1];
|
|
99
103
|
var _useDelayedState = useDelayedState(false, hoverableReactionPickerDelay),
|
|
100
104
|
_useDelayedState2 = _slicedToArray(_useDelayedState, 2),
|
|
101
105
|
isPopupTrayOpen = _useDelayedState2[0],
|
|
@@ -136,7 +140,7 @@ export var ReactionPicker = /*#__PURE__*/React.memo(function (props) {
|
|
|
136
140
|
}, reactionsPickerPreventOverflowOptions && {
|
|
137
141
|
options: reactionsPickerPreventOverflowOptions
|
|
138
142
|
})];
|
|
139
|
-
var
|
|
143
|
+
var _useState11 = useState({
|
|
140
144
|
/**
|
|
141
145
|
* Show the full custom emoji list picker or the default list of emojis
|
|
142
146
|
*/
|
|
@@ -146,16 +150,16 @@ export var ReactionPicker = /*#__PURE__*/React.memo(function (props) {
|
|
|
146
150
|
*/
|
|
147
151
|
popperPlacement: popperPlacement
|
|
148
152
|
}),
|
|
149
|
-
|
|
150
|
-
settings =
|
|
151
|
-
setSettings =
|
|
153
|
+
_useState12 = _slicedToArray(_useState11, 2),
|
|
154
|
+
settings = _useState12[0],
|
|
155
|
+
setSettings = _useState12[1];
|
|
152
156
|
|
|
153
157
|
/**
|
|
154
158
|
* Event callback when the picker is closed
|
|
155
159
|
* @param _id Optional id if an emoji button was selected or undefineed if was clicked outside the picker
|
|
156
160
|
*/
|
|
157
161
|
var close = useCallback(function (_id) {
|
|
158
|
-
setIsPopupTrayOpen(false);
|
|
162
|
+
setIsPopupTrayOpen(false, true);
|
|
159
163
|
// ufo abort reaction experience
|
|
160
164
|
PickerRender.abort({
|
|
161
165
|
metadata: {
|
|
@@ -166,8 +170,11 @@ export var ReactionPicker = /*#__PURE__*/React.memo(function (props) {
|
|
|
166
170
|
});
|
|
167
171
|
if (hoverableReactionPicker) {
|
|
168
172
|
setIsHoverableReactionPickerEmojiPickerOpen(false);
|
|
173
|
+
setIsTriggerClicked(false);
|
|
174
|
+
setIsHoveringTrigger(false);
|
|
175
|
+
setIsHoveringPopup(false);
|
|
169
176
|
}
|
|
170
|
-
}, [setIsPopupTrayOpen, setIsHoverableReactionPickerEmojiPickerOpen, hoverableReactionPicker]);
|
|
177
|
+
}, [setIsPopupTrayOpen, setIsHoverableReactionPickerEmojiPickerOpen, hoverableReactionPicker, setIsTriggerClicked, setIsHoveringTrigger, setIsHoveringPopup]);
|
|
171
178
|
|
|
172
179
|
/**
|
|
173
180
|
* Event handle rwhen selecting to show the custom emoji icons picker
|
|
@@ -182,6 +189,7 @@ export var ReactionPicker = /*#__PURE__*/React.memo(function (props) {
|
|
|
182
189
|
setIsPopupTrayOpen(true);
|
|
183
190
|
if (hoverableReactionPicker) {
|
|
184
191
|
setIsHoverableReactionPickerEmojiPickerOpen(!isHoverableReactionPickerEmojiPickerOpen);
|
|
192
|
+
setIsTriggerClicked(false);
|
|
185
193
|
}
|
|
186
194
|
onShowMore();
|
|
187
195
|
}, [settings.showFullPicker, setIsPopupTrayOpen, onShowMore, popperPlacement, hoverableReactionPicker, setIsHoverableReactionPickerEmojiPickerOpen, isHoverableReactionPickerEmojiPickerOpen]);
|
|
@@ -209,15 +217,30 @@ export var ReactionPicker = /*#__PURE__*/React.memo(function (props) {
|
|
|
209
217
|
popperPlacement: popperPlacement
|
|
210
218
|
}));
|
|
211
219
|
if (hoverableReactionPicker) {
|
|
212
|
-
|
|
213
|
-
|
|
220
|
+
if (isTriggerClicked) {
|
|
221
|
+
// if the button was previously clicked, close the popup and reset the state
|
|
222
|
+
setIsTriggerClicked(false);
|
|
223
|
+
setIsPopupTrayOpen(false, true);
|
|
224
|
+
} else {
|
|
225
|
+
if (isHoverableReactionPickerEmojiPickerOpen) {
|
|
226
|
+
// if the emoji picker is open, close the popup and reset the state
|
|
227
|
+
setIsTriggerClicked(false);
|
|
228
|
+
setIsPopupTrayOpen(false, true);
|
|
229
|
+
} else {
|
|
230
|
+
// if the button was not previously clicked, open the popup and set the state
|
|
231
|
+
setIsTriggerClicked(true);
|
|
232
|
+
setIsPopupTrayOpen(true, true);
|
|
233
|
+
}
|
|
234
|
+
}
|
|
235
|
+
// close the emoji picker
|
|
236
|
+
setIsHoverableReactionPickerEmojiPickerOpen(false);
|
|
214
237
|
} else {
|
|
215
238
|
setIsPopupTrayOpen(!isPopupTrayOpen);
|
|
216
239
|
}
|
|
217
240
|
onOpen();
|
|
218
241
|
// ufo reactions picker opened success
|
|
219
242
|
PickerRender.success();
|
|
220
|
-
}, [hoverableReactionPicker, isPopupTrayOpen, setIsPopupTrayOpen, isHoverableReactionPickerEmojiPickerOpen, onOpen, settings, popperPlacement]);
|
|
243
|
+
}, [hoverableReactionPicker, isPopupTrayOpen, setIsPopupTrayOpen, isTriggerClicked, setIsTriggerClicked, isHoverableReactionPickerEmojiPickerOpen, onOpen, settings, popperPlacement]);
|
|
221
244
|
var handleTriggerMouseEnter = useCallback(function () {
|
|
222
245
|
if (hoverableReactionPicker) {
|
|
223
246
|
setIsHoveringTrigger(true);
|
|
@@ -229,11 +252,11 @@ export var ReactionPicker = /*#__PURE__*/React.memo(function (props) {
|
|
|
229
252
|
var handleTriggerMouseLeave = useCallback(function () {
|
|
230
253
|
if (hoverableReactionPicker) {
|
|
231
254
|
setIsHoveringTrigger(false);
|
|
232
|
-
if (!isHoveringPopup && !isHoverableReactionPickerEmojiPickerOpen) {
|
|
255
|
+
if (!isHoveringPopup && !isHoverableReactionPickerEmojiPickerOpen && !isTriggerClicked) {
|
|
233
256
|
setIsPopupTrayOpen(false);
|
|
234
257
|
}
|
|
235
258
|
}
|
|
236
|
-
}, [hoverableReactionPicker, isHoveringPopup, isHoverableReactionPickerEmojiPickerOpen, setIsPopupTrayOpen]);
|
|
259
|
+
}, [hoverableReactionPicker, isHoveringPopup, isHoverableReactionPickerEmojiPickerOpen, setIsPopupTrayOpen, isTriggerClicked]);
|
|
237
260
|
var handlePopupMouseEnter = useCallback(function () {
|
|
238
261
|
if (hoverableReactionPicker) {
|
|
239
262
|
setIsHoveringPopup(true);
|
|
@@ -245,11 +268,11 @@ export var ReactionPicker = /*#__PURE__*/React.memo(function (props) {
|
|
|
245
268
|
var handlePopupMouseLeave = useCallback(function () {
|
|
246
269
|
if (hoverableReactionPicker) {
|
|
247
270
|
setIsHoveringPopup(false);
|
|
248
|
-
if (!isHoveringTrigger && !isHoverableReactionPickerEmojiPickerOpen) {
|
|
271
|
+
if (!isHoveringTrigger && !isHoverableReactionPickerEmojiPickerOpen && !isTriggerClicked) {
|
|
249
272
|
setIsPopupTrayOpen(false);
|
|
250
273
|
}
|
|
251
274
|
}
|
|
252
|
-
}, [hoverableReactionPicker, isHoveringTrigger, isHoverableReactionPickerEmojiPickerOpen, setIsPopupTrayOpen]);
|
|
275
|
+
}, [hoverableReactionPicker, isHoveringTrigger, isHoverableReactionPickerEmojiPickerOpen, setIsPopupTrayOpen, isTriggerClicked]);
|
|
253
276
|
var wrapperClassName = " ".concat(isPopupTrayOpen ? 'isOpen' : '', " ").concat(miniMode ? 'miniMode' : '', " ").concat(className);
|
|
254
277
|
useLayoutEffect(function () {
|
|
255
278
|
var _updatePopper$current;
|
|
@@ -333,10 +356,10 @@ export var PopperWrapper = function PopperWrapper(props) {
|
|
|
333
356
|
onClose = props.onClose,
|
|
334
357
|
children = props.children,
|
|
335
358
|
popperModifiers = props.popperModifiers;
|
|
336
|
-
var
|
|
337
|
-
|
|
338
|
-
popupRef =
|
|
339
|
-
setPopupRef =
|
|
359
|
+
var _useState13 = useState(null),
|
|
360
|
+
_useState14 = _slicedToArray(_useState13, 2),
|
|
361
|
+
popupRef = _useState14[0],
|
|
362
|
+
setPopupRef = _useState14[1];
|
|
340
363
|
var _useIntl = useIntl(),
|
|
341
364
|
formatMessage = _useIntl.formatMessage;
|
|
342
365
|
/**
|
|
@@ -70,8 +70,12 @@ export var ReactionSummaryView = function ReactionSummaryView(_ref) {
|
|
|
70
70
|
setIsSummaryViewButtonHovered = _useState4[1];
|
|
71
71
|
var _useState5 = useState(false),
|
|
72
72
|
_useState6 = _slicedToArray(_useState5, 2),
|
|
73
|
-
|
|
74
|
-
|
|
73
|
+
isSummaryViewButtonClicked = _useState6[0],
|
|
74
|
+
setIsSummaryViewButtonClicked = _useState6[1];
|
|
75
|
+
var _useState7 = useState(false),
|
|
76
|
+
_useState8 = _slicedToArray(_useState7, 2),
|
|
77
|
+
isEmojiPickerOpen = _useState8[0],
|
|
78
|
+
setIsEmojiPickerOpen = _useState8[1];
|
|
75
79
|
|
|
76
80
|
/**
|
|
77
81
|
* Event callback when the picker is closed
|
|
@@ -101,9 +105,12 @@ export var ReactionSummaryView = function ReactionSummaryView(_ref) {
|
|
|
101
105
|
close(item.id);
|
|
102
106
|
}, [onSelection, close]);
|
|
103
107
|
var handlePopupClose = useCallback(function () {
|
|
104
|
-
setSummaryPopupOpen(false);
|
|
108
|
+
setSummaryPopupOpen(false, true);
|
|
105
109
|
setIsEmojiPickerOpen(false);
|
|
106
|
-
|
|
110
|
+
setIsSummaryViewButtonClicked(false);
|
|
111
|
+
setIsSummaryViewButtonHovered(false);
|
|
112
|
+
setIsHoveringSummaryView(false);
|
|
113
|
+
}, [setSummaryPopupOpen, setIsEmojiPickerOpen, setIsSummaryViewButtonClicked, setIsSummaryViewButtonHovered, setIsHoveringSummaryView]);
|
|
107
114
|
var openEmojiPicker = useCallback(function () {
|
|
108
115
|
// ufo start reactions picker open experience
|
|
109
116
|
PickerRender.start();
|
|
@@ -115,15 +122,31 @@ export var ReactionSummaryView = function ReactionSummaryView(_ref) {
|
|
|
115
122
|
var handleEmojiPickerTriggerClick = useCallback(function () {
|
|
116
123
|
openEmojiPicker();
|
|
117
124
|
setSummaryPopupOpen(false, true);
|
|
125
|
+
setIsSummaryViewButtonClicked(false);
|
|
126
|
+
setIsSummaryViewButtonHovered(false);
|
|
127
|
+
setIsHoveringSummaryView(false);
|
|
118
128
|
}, [openEmojiPicker, setSummaryPopupOpen]);
|
|
119
129
|
var handleSummaryClick = useCallback(function () {
|
|
120
130
|
if (hoverableSummaryView) {
|
|
121
|
-
|
|
122
|
-
|
|
131
|
+
setIsHoveringSummaryView(false);
|
|
132
|
+
setIsSummaryViewButtonHovered(false);
|
|
133
|
+
if (isSummaryViewButtonClicked) {
|
|
134
|
+
// if the button was previously clicked, close the popup and reset the state
|
|
135
|
+
setSummaryPopupOpen(false, true);
|
|
136
|
+
setIsSummaryViewButtonClicked(false);
|
|
123
137
|
} else {
|
|
124
|
-
|
|
138
|
+
if (isEmojiPickerOpen) {
|
|
139
|
+
// if the emoji picker is open, close the popup and reset the state
|
|
140
|
+
setSummaryPopupOpen(false, true);
|
|
141
|
+
setIsSummaryViewButtonClicked(false);
|
|
142
|
+
} else {
|
|
143
|
+
// if the button was not previously clicked, open the popup and set the state
|
|
144
|
+
setSummaryPopupOpen(true, true);
|
|
145
|
+
setIsSummaryViewButtonClicked(true);
|
|
146
|
+
}
|
|
125
147
|
}
|
|
126
|
-
|
|
148
|
+
// close the emoji picker
|
|
149
|
+
setIsEmojiPickerOpen(false);
|
|
127
150
|
} else {
|
|
128
151
|
if (isSummaryPopupOpen) {
|
|
129
152
|
handlePopupClose();
|
|
@@ -131,7 +154,7 @@ export var ReactionSummaryView = function ReactionSummaryView(_ref) {
|
|
|
131
154
|
setSummaryPopupOpen(true);
|
|
132
155
|
}
|
|
133
156
|
}
|
|
134
|
-
}, [hoverableSummaryView, isEmojiPickerOpen,
|
|
157
|
+
}, [hoverableSummaryView, isEmojiPickerOpen, setSummaryPopupOpen, isSummaryPopupOpen, handlePopupClose, isSummaryViewButtonClicked, setIsSummaryViewButtonClicked]);
|
|
135
158
|
var handleButtonMouseEnter = useCallback(function () {
|
|
136
159
|
setIsSummaryViewButtonHovered(true);
|
|
137
160
|
if (hoverableSummaryView && !isEmojiPickerOpen) {
|
|
@@ -140,10 +163,10 @@ export var ReactionSummaryView = function ReactionSummaryView(_ref) {
|
|
|
140
163
|
}, [hoverableSummaryView, setSummaryPopupOpen, setIsSummaryViewButtonHovered, isEmojiPickerOpen]);
|
|
141
164
|
var handleButtonMouseLeave = useCallback(function () {
|
|
142
165
|
setIsSummaryViewButtonHovered(false);
|
|
143
|
-
if (hoverableSummaryView && !isHoveringSummaryView) {
|
|
166
|
+
if (hoverableSummaryView && !isHoveringSummaryView && !isSummaryViewButtonClicked) {
|
|
144
167
|
setSummaryPopupOpen(false);
|
|
145
168
|
}
|
|
146
|
-
}, [hoverableSummaryView, isHoveringSummaryView, setSummaryPopupOpen, setIsSummaryViewButtonHovered]);
|
|
169
|
+
}, [hoverableSummaryView, isHoveringSummaryView, setSummaryPopupOpen, setIsSummaryViewButtonHovered, isSummaryViewButtonClicked]);
|
|
147
170
|
var handleSummaryViewTrayMouseEnter = useCallback(function () {
|
|
148
171
|
setIsHoveringSummaryView(true);
|
|
149
172
|
if (hoverableSummaryView && !isEmojiPickerOpen) {
|
|
@@ -152,10 +175,10 @@ export var ReactionSummaryView = function ReactionSummaryView(_ref) {
|
|
|
152
175
|
}, [hoverableSummaryView, setSummaryPopupOpen, setIsHoveringSummaryView, isEmojiPickerOpen]);
|
|
153
176
|
var handleSummaryViewTrayMouseLeave = useCallback(function () {
|
|
154
177
|
setIsHoveringSummaryView(false);
|
|
155
|
-
if (hoverableSummaryView && !isSummaryViewButtonHovered) {
|
|
178
|
+
if (hoverableSummaryView && !isSummaryViewButtonHovered && !isSummaryViewButtonClicked) {
|
|
156
179
|
setSummaryPopupOpen(false);
|
|
157
180
|
}
|
|
158
|
-
}, [hoverableSummaryView, isSummaryViewButtonHovered, setIsHoveringSummaryView, setSummaryPopupOpen]);
|
|
181
|
+
}, [hoverableSummaryView, isSummaryViewButtonHovered, setIsHoveringSummaryView, setSummaryPopupOpen, isSummaryViewButtonClicked]);
|
|
159
182
|
return /*#__PURE__*/React.createElement(Popup, {
|
|
160
183
|
placement: placement,
|
|
161
184
|
content: function content() {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@atlaskit/reactions",
|
|
3
|
-
"version": "31.
|
|
3
|
+
"version": "31.13.0",
|
|
4
4
|
"description": "Reactions component",
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"registry": "https://registry.npmjs.org/"
|
|
@@ -49,7 +49,7 @@
|
|
|
49
49
|
"@atlaskit/popup": "^4.2.0",
|
|
50
50
|
"@atlaskit/portal": "^5.1.0",
|
|
51
51
|
"@atlaskit/primitives": "^14.7.0",
|
|
52
|
-
"@atlaskit/react-ufo": "^3.
|
|
52
|
+
"@atlaskit/react-ufo": "^3.12.0",
|
|
53
53
|
"@atlaskit/spinner": "^18.0.0",
|
|
54
54
|
"@atlaskit/tabs": "^18.0.0",
|
|
55
55
|
"@atlaskit/theme": "^18.0.0",
|