@atlaskit/emoji 70.11.0 → 70.11.2
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 +15 -0
- package/afm-cc/tsconfig.json +3 -0
- package/afm-products/tsconfig.json +3 -0
- package/dist/cjs/components/common/EmojiUploadPicker.js +19 -0
- package/dist/cjs/components/i18n.js +15 -0
- package/dist/cjs/components/picker/EmojiPickerComponent.compiled.css +3 -0
- package/dist/cjs/components/picker/EmojiPickerComponent.js +20 -6
- package/dist/cjs/components/picker/EmojiPickerList.js +31 -10
- package/dist/cjs/components/picker/EmojiPickerNoResults.compiled.css +12 -0
- package/dist/cjs/components/picker/EmojiPickerNoResults.js +50 -0
- package/dist/cjs/components/picker/EmojiPickerSizes.js +2 -0
- package/dist/cjs/components/picker/EmojiPickerVirtualItems.js +15 -1
- package/dist/cjs/util/analytics/analytics.js +1 -1
- package/dist/es2019/components/common/EmojiUploadPicker.js +17 -0
- package/dist/es2019/components/i18n.js +15 -0
- package/dist/es2019/components/picker/EmojiPickerComponent.compiled.css +3 -0
- package/dist/es2019/components/picker/EmojiPickerComponent.js +20 -6
- package/dist/es2019/components/picker/EmojiPickerList.js +33 -11
- package/dist/es2019/components/picker/EmojiPickerNoResults.compiled.css +12 -0
- package/dist/es2019/components/picker/EmojiPickerNoResults.js +40 -0
- package/dist/es2019/components/picker/EmojiPickerSizes.js +2 -0
- package/dist/es2019/components/picker/EmojiPickerVirtualItems.js +7 -0
- package/dist/es2019/util/analytics/analytics.js +1 -1
- package/dist/esm/components/common/EmojiUploadPicker.js +19 -0
- package/dist/esm/components/i18n.js +15 -0
- package/dist/esm/components/picker/EmojiPickerComponent.compiled.css +3 -0
- package/dist/esm/components/picker/EmojiPickerComponent.js +20 -6
- package/dist/esm/components/picker/EmojiPickerList.js +32 -11
- package/dist/esm/components/picker/EmojiPickerNoResults.compiled.css +12 -0
- package/dist/esm/components/picker/EmojiPickerNoResults.js +41 -0
- package/dist/esm/components/picker/EmojiPickerSizes.js +2 -0
- package/dist/esm/components/picker/EmojiPickerVirtualItems.js +14 -0
- package/dist/esm/util/analytics/analytics.js +1 -1
- package/dist/types/components/i18n.d.ts +15 -0
- package/dist/types/components/picker/EmojiPickerNoResults.d.ts +7 -0
- package/dist/types/components/picker/EmojiPickerSizes.d.ts +1 -0
- package/dist/types/components/picker/EmojiPickerVirtualItems.d.ts +6 -1
- package/dist/types-ts4.5/components/i18n.d.ts +15 -0
- package/dist/types-ts4.5/components/picker/EmojiPickerNoResults.d.ts +7 -0
- package/dist/types-ts4.5/components/picker/EmojiPickerSizes.d.ts +1 -0
- package/dist/types-ts4.5/components/picker/EmojiPickerVirtualItems.d.ts +6 -1
- package/package.json +4 -3
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,20 @@
|
|
|
1
1
|
# @atlaskit/emoji
|
|
2
2
|
|
|
3
|
+
## 70.11.2
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- [`73c9a0824c93e`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/73c9a0824c93e) -
|
|
8
|
+
Add a new empty state for no results in emoji picker
|
|
9
|
+
|
|
10
|
+
## 70.11.1
|
|
11
|
+
|
|
12
|
+
### Patch Changes
|
|
13
|
+
|
|
14
|
+
- [`f9457ee7bd8fc`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/f9457ee7bd8fc) -
|
|
15
|
+
Add file type validation to emoji picker.
|
|
16
|
+
- Updated dependencies
|
|
17
|
+
|
|
3
18
|
## 70.11.0
|
|
4
19
|
|
|
5
20
|
### Minor Changes
|
package/afm-cc/tsconfig.json
CHANGED
|
@@ -43,6 +43,8 @@ var uploadChooseFileEmojiName = null;
|
|
|
43
43
|
var uploadChooseFileMessage = null;
|
|
44
44
|
var uploadChooseFileRow = null;
|
|
45
45
|
var uploadChooseFileRowNew = null;
|
|
46
|
+
var supportedEmojiUploadMimeTypes = new Set(['image/png', 'image/jpeg', 'image/gif']);
|
|
47
|
+
var supportedEmojiUploadExtensions = ['.png', '.jpg', '.jpeg', '.gif'];
|
|
46
48
|
var uploadEmojiNameInputTestId = exports.uploadEmojiNameInputTestId = 'upload-emoji-name-input';
|
|
47
49
|
var uploadEmojiComponentTestId = exports.uploadEmojiComponentTestId = 'upload-emoji-component';
|
|
48
50
|
var cancelEmojiUploadPickerTestId = exports.cancelEmojiUploadPickerTestId = 'cancel-emoji-upload-picker';
|
|
@@ -59,6 +61,18 @@ var toEmojiName = function toEmojiName(uploadName) {
|
|
|
59
61
|
var name = uploadName.split('_').join(' ');
|
|
60
62
|
return "".concat(name.substr(0, 1).toLocaleUpperCase()).concat(name.substr(1));
|
|
61
63
|
};
|
|
64
|
+
var isSupportedEmojiUploadFileType = function isSupportedEmojiUploadFileType(file) {
|
|
65
|
+
if (!(0, _platformFeatureFlags.fg)('platform_emoji_picker_refresh')) {
|
|
66
|
+
return true;
|
|
67
|
+
}
|
|
68
|
+
if (supportedEmojiUploadMimeTypes.has(file.type)) {
|
|
69
|
+
return true;
|
|
70
|
+
}
|
|
71
|
+
var lowerCaseFileName = file.name.toLowerCase();
|
|
72
|
+
return supportedEmojiUploadExtensions.some(function (extension) {
|
|
73
|
+
return lowerCaseFileName.endsWith(extension);
|
|
74
|
+
});
|
|
75
|
+
};
|
|
62
76
|
var ChooseEmojiFile = /*#__PURE__*/(0, _react.memo)(function (props) {
|
|
63
77
|
var _props$name = props.name,
|
|
64
78
|
name = _props$name === void 0 ? '' : _props$name,
|
|
@@ -342,6 +356,11 @@ var EmojiUploadPicker = function EmojiUploadPicker(props) {
|
|
|
342
356
|
if (files.length) {
|
|
343
357
|
var reader = new FileReader();
|
|
344
358
|
var file = files[0];
|
|
359
|
+
if (!isSupportedEmojiUploadFileType(file)) {
|
|
360
|
+
setChooseEmojiErrorMessage( /*#__PURE__*/React.createElement(_reactIntl.FormattedMessage, _i18n.messages.emojiUnsupportedFileType));
|
|
361
|
+
cancelChooseFile();
|
|
362
|
+
return;
|
|
363
|
+
}
|
|
345
364
|
if (ImageUtil.hasFileExceededSize(file)) {
|
|
346
365
|
setChooseEmojiErrorMessage( /*#__PURE__*/React.createElement(_reactIntl.FormattedMessage, _i18n.messages.emojiImageTooBig));
|
|
347
366
|
cancelChooseFile();
|
|
@@ -221,11 +221,26 @@ var messages = exports.messages = (0, _reactIntl.defineMessages)({
|
|
|
221
221
|
defaultMessage: 'Selected image is more than 1 MB',
|
|
222
222
|
description: 'Error message for image too big, beyond the size limit'
|
|
223
223
|
},
|
|
224
|
+
emojiUnsupportedFileType: {
|
|
225
|
+
id: 'fabric.emoji.error.unsupported.file.type',
|
|
226
|
+
defaultMessage: "This file type isn't supported. Select a PNG, JPEG, or GIF to create your emoji.",
|
|
227
|
+
description: 'Error message shown when the selected emoji upload file type is not supported'
|
|
228
|
+
},
|
|
224
229
|
emojiDuplicateName: {
|
|
225
230
|
id: 'fabric.emoji.error.duplicate.name',
|
|
226
231
|
defaultMessage: 'An emoji with this name exists already',
|
|
227
232
|
description: 'Error message shown when the user tries to upload an emoji with a name that already exists in the custom emoji set'
|
|
228
233
|
},
|
|
234
|
+
emojiPickerNoResults: {
|
|
235
|
+
id: 'fabric.emoji.picker.no.results',
|
|
236
|
+
defaultMessage: 'No results',
|
|
237
|
+
description: 'Heading shown in the emoji picker when a search query returns no matching emojis.'
|
|
238
|
+
},
|
|
239
|
+
emojiPickerAddCustomEmoji: {
|
|
240
|
+
id: 'fabric.emoji.picker.add.custom.emoji',
|
|
241
|
+
defaultMessage: 'Add custom emoji',
|
|
242
|
+
description: 'Label for the button shown in the emoji picker no-results screen that opens the custom emoji upload panel.'
|
|
243
|
+
},
|
|
229
244
|
emojiPickerTitle: {
|
|
230
245
|
id: 'fabric.emoji.picker',
|
|
231
246
|
defaultMessage: 'Emoji picker',
|
|
@@ -21,13 +21,16 @@
|
|
|
21
21
|
._1xi2idpf{right:0}
|
|
22
22
|
._2lx21bp4{flex-direction:column}
|
|
23
23
|
._4t3i1784{height:470px}
|
|
24
|
+
._4t3i19lm{height:514px}
|
|
24
25
|
._4t3i1ckg{height:455px}
|
|
25
26
|
._4t3i1dsu{height:419px}
|
|
27
|
+
._4t3i1j8x{height:354px}
|
|
26
28
|
._4t3i1sa4{height:390px}
|
|
27
29
|
._4t3i2300{height:429px}
|
|
28
30
|
._4t3i50k7{height:499px}
|
|
29
31
|
._4t3iaq3k{height:295px}
|
|
30
32
|
._4t3ibqjm{height:310px}
|
|
33
|
+
._4t3iihnn{height:434px}
|
|
31
34
|
._4t3iixjv{height:375px}
|
|
32
35
|
._4t3iqbeb{height:339px}
|
|
33
36
|
._4t3iuxo9{height:var(--_19dn98e)}
|
|
@@ -76,6 +76,12 @@ var withoutPreviewHeight = {
|
|
|
76
76
|
medium: "_4t3iixjv _1tke5x59",
|
|
77
77
|
large: "_4t3i1ckg _1tke1pna"
|
|
78
78
|
};
|
|
79
|
+
var emojiPickerHeightNoResults = 354;
|
|
80
|
+
var withNoResultsRefreshHeight = {
|
|
81
|
+
small: "_4t3i1j8x _1tkegx0z",
|
|
82
|
+
medium: "_4t3iihnn _1tke5x59",
|
|
83
|
+
large: "_4t3i19lm _1tke1pna"
|
|
84
|
+
};
|
|
79
85
|
var FREQUENTLY_USED_MAX = 16;
|
|
80
86
|
var EmojiPickerComponent = function EmojiPickerComponent(_ref) {
|
|
81
87
|
var onSelection = _ref.onSelection,
|
|
@@ -150,6 +156,7 @@ var EmojiPickerComponent = function EmojiPickerComponent(_ref) {
|
|
|
150
156
|
}, []);
|
|
151
157
|
var openTime = (0, _react.useRef)(0);
|
|
152
158
|
var isMounting = (0, _react.useRef)(true);
|
|
159
|
+
var lastNonSearchCategory = (0, _react.useRef)(activeCategory);
|
|
153
160
|
var previousEmojiProvider = (0, _react.useRef)(emojiProvider);
|
|
154
161
|
var isProgrammaticScroll = (0, _react.useRef)(false);
|
|
155
162
|
var pickerRef = (0, _react.useRef)(null);
|
|
@@ -191,8 +198,11 @@ var EmojiPickerComponent = function EmojiPickerComponent(_ref) {
|
|
|
191
198
|
}
|
|
192
199
|
if (activeCategory !== category) {
|
|
193
200
|
setActiveCategory(category);
|
|
201
|
+
if (!query && (0, _platformFeatureFlags.fg)('platform_emoji_picker_refresh')) {
|
|
202
|
+
lastNonSearchCategory.current = category;
|
|
203
|
+
}
|
|
194
204
|
}
|
|
195
|
-
}, [activeCategory, uploading, emojiToDelete]);
|
|
205
|
+
}, [activeCategory, uploading, emojiToDelete, query]);
|
|
196
206
|
var calculateElapsedTime = function calculateElapsedTime() {
|
|
197
207
|
return Date.now() - openTime.current;
|
|
198
208
|
};
|
|
@@ -409,6 +419,10 @@ var EmojiPickerComponent = function EmojiPickerComponent(_ref) {
|
|
|
409
419
|
source: _types.SearchSourceTypes.PICKER
|
|
410
420
|
};
|
|
411
421
|
if (searchQuery !== query) {
|
|
422
|
+
// Capture the active category before entering search so we can keep it highlighted
|
|
423
|
+
if (!query && searchQuery && (0, _platformFeatureFlags.fg)('platform_emoji_picker_refresh')) {
|
|
424
|
+
lastNonSearchCategory.current = activeCategory;
|
|
425
|
+
}
|
|
412
426
|
setQuery(searchQuery);
|
|
413
427
|
}
|
|
414
428
|
updateEmojis(searchQuery, options);
|
|
@@ -416,7 +430,7 @@ var EmojiPickerComponent = function EmojiPickerComponent(_ref) {
|
|
|
416
430
|
// scroll to top when search, which is search results section
|
|
417
431
|
scrollToTopOfList();
|
|
418
432
|
}
|
|
419
|
-
}, [query, filteredEmojis, selectedTone, updateEmojis, scrollToTopOfList]);
|
|
433
|
+
}, [activeCategory, query, filteredEmojis, selectedTone, updateEmojis, scrollToTopOfList]);
|
|
420
434
|
|
|
421
435
|
// When the upload screen is open, intercept any file drag at the window level so it
|
|
422
436
|
// cannot reach underlying page drop handlers (e.g. the Confluence editor).
|
|
@@ -637,7 +651,7 @@ var EmojiPickerComponent = function EmojiPickerComponent(_ref) {
|
|
|
637
651
|
role: "dialog",
|
|
638
652
|
"aria-label": formatMessage(_i18n.messages.emojiPickerTitle),
|
|
639
653
|
"aria-modal": true,
|
|
640
|
-
className: (0, _runtime.ax)([(0, _platformFeatureFlags.fg)('platform_emoji_picker_refresh') ? "_19itahnd _2rko1mok _1e0c1txw _2lx21bp4 _1bah1yb4 _bfhk1bhr _16qs130s _4t3iuxo9 _1bsb10mj _1ul910mj _c71l1y6z _kqswh2mm" : "_19itahnd _2rkofajl _1e0c1txw _2lx21bp4 _1bah1yb4 _bfhk1bhr _16qs130s _4t3iuxo9 _1bsb10mj _1ul910mj _c71l1y6z _kqswh2mm", !!emojiToDelete && (0, _platformFeatureFlags.fg)('platform_emoji_picker_refresh') ? withDeleteRefreshHeight[size] : uploading && (0, _platformFeatureFlags.fg)('platform_emoji_picker_refresh') ? withUploadRefreshHeight[size] : showPreview ? withPreviewHeight[size] : withoutPreviewHeight[size]]),
|
|
654
|
+
className: (0, _runtime.ax)([(0, _platformFeatureFlags.fg)('platform_emoji_picker_refresh') ? "_19itahnd _2rko1mok _1e0c1txw _2lx21bp4 _1bah1yb4 _bfhk1bhr _16qs130s _4t3iuxo9 _1bsb10mj _1ul910mj _c71l1y6z _kqswh2mm" : "_19itahnd _2rkofajl _1e0c1txw _2lx21bp4 _1bah1yb4 _bfhk1bhr _16qs130s _4t3iuxo9 _1bsb10mj _1ul910mj _c71l1y6z _kqswh2mm", !!emojiToDelete && (0, _platformFeatureFlags.fg)('platform_emoji_picker_refresh') ? withDeleteRefreshHeight[size] : uploading && (0, _platformFeatureFlags.fg)('platform_emoji_picker_refresh') ? withUploadRefreshHeight[size] : query && filteredEmojis.length === 0 && (0, _platformFeatureFlags.fg)('platform_emoji_picker_refresh') ? withNoResultsRefreshHeight[size] : showPreview ? withPreviewHeight[size] : withoutPreviewHeight[size]]),
|
|
641
655
|
style: {
|
|
642
656
|
"--_19dn98e": (0, _runtime.ix)("".concat(emojiPickerHeight, "px")),
|
|
643
657
|
"--_gsvyy7": (0, _runtime.ix)("".concat(emojiPickerWidth, "px"))
|
|
@@ -682,7 +696,7 @@ var EmojiPickerComponent = function EmojiPickerComponent(_ref) {
|
|
|
682
696
|
onOpenUpload: onOpenUpload,
|
|
683
697
|
size: size,
|
|
684
698
|
activeCategoryId: activeCategory
|
|
685
|
-
}), showPreview && !(emojiToDelete && (0, _platformFeatureFlags.fg)('platform_emoji_picker_refresh')) && /*#__PURE__*/React.createElement(_EmojiPickerFooter.default, {
|
|
699
|
+
}), showPreview && !(emojiToDelete && (0, _platformFeatureFlags.fg)('platform_emoji_picker_refresh')) && !(query && filteredEmojis.length === 0 && (0, _platformFeatureFlags.fg)('platform_emoji_picker_refresh')) && /*#__PURE__*/React.createElement(_EmojiPickerFooter.default, {
|
|
686
700
|
selectedEmoji: selectedEmoji,
|
|
687
701
|
uploadEnabled: isUploadSupported && !uploading,
|
|
688
702
|
onOpenUpload: onOpenUpload
|
|
@@ -697,7 +711,7 @@ var EmojiPickerComponent = function EmojiPickerComponent(_ref) {
|
|
|
697
711
|
onKeyPress: suppressKeyPress,
|
|
698
712
|
onKeyUp: suppressKeyPress,
|
|
699
713
|
onKeyDown: suppressKeyPress,
|
|
700
|
-
className: (0, _runtime.ax)([(0, _platformFeatureFlags.fg)('platform_emoji_picker_refresh') ? "_19itahnd _2rko1mok _1e0c1txw _2lx21bp4 _1bah1yb4 _bfhk1bhr _16qs130s _4t3iuxo9 _1bsb10mj _1ul910mj _c71l1y6z _kqswh2mm" : "_19itahnd _2rkofajl _1e0c1txw _2lx21bp4 _1bah1yb4 _bfhk1bhr _16qs130s _4t3iuxo9 _1bsb10mj _1ul910mj _c71l1y6z _kqswh2mm", !!emojiToDelete && (0, _platformFeatureFlags.fg)('platform_emoji_picker_refresh') ? withDeleteRefreshHeight[size] : uploading && (0, _platformFeatureFlags.fg)('platform_emoji_picker_refresh') ? withUploadRefreshHeight[size] : showPreview ? withPreviewHeight[size] : withoutPreviewHeight[size]]),
|
|
714
|
+
className: (0, _runtime.ax)([(0, _platformFeatureFlags.fg)('platform_emoji_picker_refresh') ? "_19itahnd _2rko1mok _1e0c1txw _2lx21bp4 _1bah1yb4 _bfhk1bhr _16qs130s _4t3iuxo9 _1bsb10mj _1ul910mj _c71l1y6z _kqswh2mm" : "_19itahnd _2rkofajl _1e0c1txw _2lx21bp4 _1bah1yb4 _bfhk1bhr _16qs130s _4t3iuxo9 _1bsb10mj _1ul910mj _c71l1y6z _kqswh2mm", !!emojiToDelete && (0, _platformFeatureFlags.fg)('platform_emoji_picker_refresh') ? withDeleteRefreshHeight[size] : uploading && (0, _platformFeatureFlags.fg)('platform_emoji_picker_refresh') ? withUploadRefreshHeight[size] : query && filteredEmojis.length === 0 && (0, _platformFeatureFlags.fg)('platform_emoji_picker_refresh') ? withNoResultsRefreshHeight[size] : showPreview ? withPreviewHeight[size] : withoutPreviewHeight[size]]),
|
|
701
715
|
style: {
|
|
702
716
|
"--_19dn98e": (0, _runtime.ix)("".concat(emojiPickerHeight, "px")),
|
|
703
717
|
"--_gsvyy7": (0, _runtime.ix)("".concat(emojiPickerWidth, "px"))
|
|
@@ -736,7 +750,7 @@ var EmojiPickerComponent = function EmojiPickerComponent(_ref) {
|
|
|
736
750
|
onOpenUpload: onOpenUpload,
|
|
737
751
|
size: size,
|
|
738
752
|
activeCategoryId: activeCategory
|
|
739
|
-
}), showPreview && !(emojiToDelete && (0, _platformFeatureFlags.fg)('platform_emoji_picker_refresh')) && /*#__PURE__*/React.createElement(_EmojiPickerFooter.default, {
|
|
753
|
+
}), showPreview && !(emojiToDelete && (0, _platformFeatureFlags.fg)('platform_emoji_picker_refresh')) && !(query && filteredEmojis.length === 0 && (0, _platformFeatureFlags.fg)('platform_emoji_picker_refresh')) && /*#__PURE__*/React.createElement(_EmojiPickerFooter.default, {
|
|
740
754
|
selectedEmoji: selectedEmoji,
|
|
741
755
|
uploadEnabled: isUploadSupported && !uploading,
|
|
742
756
|
onOpenUpload: onOpenUpload
|
|
@@ -8,6 +8,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
8
8
|
exports.RENDER_EMOJI_PICKER_LIST_TESTID = exports.EmojiPickerVirtualListInternal = void 0;
|
|
9
9
|
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
|
10
10
|
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
11
|
+
var _reactIntl = require("react-intl");
|
|
11
12
|
var _react = _interopRequireWildcard(require("react"));
|
|
12
13
|
var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
|
|
13
14
|
var _constants = require("../../util/constants");
|
|
@@ -20,6 +21,7 @@ var _utils = require("./utils");
|
|
|
20
21
|
var _VirtualList = require("./VirtualList");
|
|
21
22
|
var _EmojiPickerListContext = require("../../context/EmojiPickerListContext");
|
|
22
23
|
var _EmojiPickerTabPanel = _interopRequireDefault(require("./EmojiPickerTabPanel"));
|
|
24
|
+
var _i18n = require("../i18n");
|
|
23
25
|
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
|
|
24
26
|
/**
|
|
25
27
|
* Test id for wrapper Emoji Picker List div
|
|
@@ -68,6 +70,8 @@ var EmojiPickerVirtualListInternal = exports.EmojiPickerVirtualListInternal = /*
|
|
|
68
70
|
onFileChooserClicked = props.onFileChooserClicked,
|
|
69
71
|
onOpenUpload = props.onOpenUpload,
|
|
70
72
|
activeCategoryId = props.activeCategoryId;
|
|
73
|
+
var _useIntl = (0, _reactIntl.useIntl)(),
|
|
74
|
+
formatMessage = _useIntl.formatMessage;
|
|
71
75
|
var listRef = (0, _react.useRef)(null);
|
|
72
76
|
var _useState = (0, _react.useState)([]),
|
|
73
77
|
_useState2 = (0, _slicedToArray2.default)(_useState, 2),
|
|
@@ -185,14 +189,27 @@ var EmojiPickerVirtualListInternal = exports.EmojiPickerVirtualListInternal = /*
|
|
|
185
189
|
items.push(new _EmojiPickerVirtualItems.LoadingItem());
|
|
186
190
|
} else {
|
|
187
191
|
if (query) {
|
|
188
|
-
var search = _categories.CategoryDescriptionMap.SEARCH;
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
192
|
+
var search = (0, _platformFeatureFlags.fg)('platform_emoji_picker_refresh') ? _categories.CategoryDescriptionMapNew.SEARCH : _categories.CategoryDescriptionMap.SEARCH;
|
|
193
|
+
if (emojis.length === 0 && (0, _platformFeatureFlags.fg)('platform_emoji_picker_refresh')) {
|
|
194
|
+
// Show a "No results" category heading, then a no-results illustration below it
|
|
195
|
+
items.push(new _EmojiPickerVirtualItems.CategoryHeadingItem({
|
|
196
|
+
id: _constants.searchCategory,
|
|
197
|
+
title: formatMessage(_i18n.messages.emojiPickerNoResults),
|
|
198
|
+
className: categoryClassname
|
|
199
|
+
}));
|
|
200
|
+
items.push(new _EmojiPickerVirtualItems.NoResultsItem({
|
|
201
|
+
onOpenUpload: onOpenUpload,
|
|
202
|
+
uploadEnabled: uploadEnabled
|
|
203
|
+
}));
|
|
204
|
+
} else {
|
|
205
|
+
// Only a single "result" category
|
|
206
|
+
items = [].concat((0, _toConsumableArray2.default)(items), (0, _toConsumableArray2.default)(buildVirtualItemFromGroup({
|
|
207
|
+
category: _constants.searchCategory,
|
|
208
|
+
title: search.name,
|
|
209
|
+
emojis: emojis,
|
|
210
|
+
order: search.order
|
|
211
|
+
})));
|
|
212
|
+
}
|
|
196
213
|
} else {
|
|
197
214
|
// Group by category
|
|
198
215
|
|
|
@@ -217,7 +234,7 @@ var EmojiPickerVirtualListInternal = exports.EmojiPickerVirtualListInternal = /*
|
|
|
217
234
|
}
|
|
218
235
|
}
|
|
219
236
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
220
|
-
}, [allEmojiGroups, loading, query, emojis]);
|
|
237
|
+
}, [allEmojiGroups, loading, query, emojis, onOpenUpload, uploadEnabled, formatMessage]);
|
|
221
238
|
var findCategoryToActivate = function findCategoryToActivate(row) {
|
|
222
239
|
var category = null;
|
|
223
240
|
if (row instanceof _EmojiPickerVirtualItems.CategoryHeadingItem) {
|
|
@@ -327,8 +344,12 @@ var EmojiPickerVirtualListInternal = exports.EmojiPickerVirtualListInternal = /*
|
|
|
327
344
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
328
345
|
}, [virtualItems, categoriesChanged]);
|
|
329
346
|
var virtualListHeight = (0, _react.useMemo)(function () {
|
|
347
|
+
if (query && emojis.length === 0 && (0, _platformFeatureFlags.fg)('platform_emoji_picker_refresh')) {
|
|
348
|
+
// No-results state: expand the list height to fit heading + illustration without scrolling
|
|
349
|
+
return _EmojiPickerSizes.sizes.categoryHeadingHeight + _EmojiPickerSizes.sizes.noResultsHeight + (0, _utils.emojiPickerHeightOffset)(size);
|
|
350
|
+
}
|
|
330
351
|
return (0, _platformFeatureFlags.fg)('platform_emoji_picker_refresh') ? _EmojiPickerSizes.sizes.listHeightNew + (0, _utils.emojiPickerHeightOffset)(size) : _EmojiPickerSizes.sizes.listHeight + (0, _utils.emojiPickerHeightOffset)(size);
|
|
331
|
-
}, [size]);
|
|
352
|
+
}, [size, query, emojis.length]);
|
|
332
353
|
return /*#__PURE__*/_react.default.createElement(_EmojiPickerTabPanel.default, {
|
|
333
354
|
showSearchResults: !!query
|
|
334
355
|
}, /*#__PURE__*/_react.default.createElement(_EmojiActions.default, {
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
|
|
2
|
+
._zulppxbi{gap:var(--ds-space-200,1pc)}._19bvpxbi{padding-left:var(--ds-space-200,1pc)}
|
|
3
|
+
._1bah1h6o{justify-content:center}
|
|
4
|
+
._1bsb1osq{width:100%}
|
|
5
|
+
._1e0c1txw{display:flex}
|
|
6
|
+
._2lx21bp4{flex-direction:column}
|
|
7
|
+
._4cvr1h6o{align-items:center}
|
|
8
|
+
._ca0q1ejb{padding-top:var(--ds-space-300,24px)}
|
|
9
|
+
._n3td1ejb{padding-bottom:var(--ds-space-300,24px)}
|
|
10
|
+
._u5f3pxbi{padding-right:var(--ds-space-200,1pc)}
|
|
11
|
+
._vchhusvi{box-sizing:border-box}
|
|
12
|
+
._y3gn1h6o{text-align:center}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
/* EmojiPickerNoResults.tsx generated by @compiled/babel-plugin v0.39.1 */
|
|
2
|
+
"use strict";
|
|
3
|
+
|
|
4
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
5
|
+
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
6
|
+
Object.defineProperty(exports, "__esModule", {
|
|
7
|
+
value: true
|
|
8
|
+
});
|
|
9
|
+
exports.default = exports.RENDER_EMOJI_PICKER_NO_RESULTS_TESTID = void 0;
|
|
10
|
+
require("./EmojiPickerNoResults.compiled.css");
|
|
11
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
12
|
+
var React = _react;
|
|
13
|
+
var _runtime = require("@compiled/react/runtime");
|
|
14
|
+
var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
|
|
15
|
+
var _reactIntl = require("react-intl");
|
|
16
|
+
var _standardButton = _interopRequireDefault(require("@atlaskit/button/standard-button"));
|
|
17
|
+
var _image = _interopRequireDefault(require("@atlaskit/image"));
|
|
18
|
+
var _i18n = require("../i18n");
|
|
19
|
+
var _dark = _interopRequireDefault(require("./assets/spot/search-no-result/dark.svg"));
|
|
20
|
+
var _light = _interopRequireDefault(require("./assets/spot/search-no-result/light.svg"));
|
|
21
|
+
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
|
|
22
|
+
var noResultsContainer = null;
|
|
23
|
+
var RENDER_EMOJI_PICKER_NO_RESULTS_TESTID = exports.RENDER_EMOJI_PICKER_NO_RESULTS_TESTID = 'render-emoji-picker-no-results';
|
|
24
|
+
var EmojiPickerNoResults = function EmojiPickerNoResults(_ref) {
|
|
25
|
+
var onOpenUpload = _ref.onOpenUpload,
|
|
26
|
+
uploadEnabled = _ref.uploadEnabled;
|
|
27
|
+
var handleOpenUpload = (0, _react.useCallback)(function (event) {
|
|
28
|
+
if ((0, _platformFeatureFlags.fg)('platform_emoji_keep_picker_open_on_upload')) {
|
|
29
|
+
event.preventDefault();
|
|
30
|
+
event.stopPropagation();
|
|
31
|
+
}
|
|
32
|
+
onOpenUpload();
|
|
33
|
+
}, [onOpenUpload]);
|
|
34
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
35
|
+
"data-testid": RENDER_EMOJI_PICKER_NO_RESULTS_TESTID,
|
|
36
|
+
className: (0, _runtime.ax)(["_zulppxbi _1e0c1txw _2lx21bp4 _4cvr1h6o _1bah1h6o _ca0q1ejb _u5f3pxbi _n3td1ejb _19bvpxbi _y3gn1h6o _1bsb1osq _vchhusvi"])
|
|
37
|
+
}, /*#__PURE__*/React.createElement(_image.default, {
|
|
38
|
+
src: _light.default,
|
|
39
|
+
srcDark: _dark.default,
|
|
40
|
+
alt: "",
|
|
41
|
+
width: 200
|
|
42
|
+
}), uploadEnabled && /*#__PURE__*/React.createElement(_reactIntl.FormattedMessage, _i18n.messages.emojiPickerAddCustomEmoji, function (label) {
|
|
43
|
+
return /*#__PURE__*/React.createElement(_standardButton.default, {
|
|
44
|
+
onClick: handleOpenUpload,
|
|
45
|
+
appearance: "default",
|
|
46
|
+
tabIndex: 0
|
|
47
|
+
}, label);
|
|
48
|
+
}));
|
|
49
|
+
};
|
|
50
|
+
var _default = exports.default = EmojiPickerNoResults;
|
|
@@ -19,6 +19,8 @@ var sizes = exports.sizes = {
|
|
|
19
19
|
// 32px height
|
|
20
20
|
loadingRowHeight: 150,
|
|
21
21
|
// Fills remaining space without scrolling when loading.
|
|
22
|
+
noResultsHeight: 300,
|
|
23
|
+
// illustration (200px) + button + padding + gap
|
|
22
24
|
uploadActionHeight: 40,
|
|
23
25
|
// 40px height
|
|
24
26
|
emojiPerRow: 8
|
|
@@ -6,7 +6,7 @@ var _typeof = require("@babel/runtime/helpers/typeof");
|
|
|
6
6
|
Object.defineProperty(exports, "__esModule", {
|
|
7
7
|
value: true
|
|
8
8
|
});
|
|
9
|
-
exports.virtualItemRenderer = exports.LoadingItem = exports.EmojisRowItem = exports.CategoryHeadingItem = exports.AbstractItem = void 0;
|
|
9
|
+
exports.virtualItemRenderer = exports.NoResultsItem = exports.LoadingItem = exports.EmojisRowItem = exports.CategoryHeadingItem = exports.AbstractItem = void 0;
|
|
10
10
|
require("./EmojiPickerVirtualItems.compiled.css");
|
|
11
11
|
var React = _interopRequireWildcard(require("react"));
|
|
12
12
|
var _runtime = require("@compiled/react/runtime");
|
|
@@ -20,6 +20,7 @@ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/cl
|
|
|
20
20
|
var _spinner = _interopRequireDefault(require("@atlaskit/spinner"));
|
|
21
21
|
var _EmojiPickerCategoryHeading = _interopRequireDefault(require("./EmojiPickerCategoryHeading"));
|
|
22
22
|
var _EmojiPickerEmojiRow = _interopRequireDefault(require("./EmojiPickerEmojiRow"));
|
|
23
|
+
var _EmojiPickerNoResults = _interopRequireDefault(require("./EmojiPickerNoResults"));
|
|
23
24
|
var _EmojiPickerSizes = require("./EmojiPickerSizes");
|
|
24
25
|
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
|
|
25
26
|
function _callSuper(t, o, e) { return o = (0, _getPrototypeOf2.default)(o), (0, _possibleConstructorReturn2.default)(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], (0, _getPrototypeOf2.default)(t).constructor) : o.apply(t, e)); }
|
|
@@ -75,6 +76,19 @@ var CategoryHeadingItem = exports.CategoryHeadingItem = /*#__PURE__*/function (_
|
|
|
75
76
|
(0, _inherits2.default)(CategoryHeadingItem, _AbstractItem3);
|
|
76
77
|
return (0, _createClass2.default)(CategoryHeadingItem);
|
|
77
78
|
}(AbstractItem);
|
|
79
|
+
var NoResultsItem = exports.NoResultsItem = /*#__PURE__*/function (_AbstractItem4) {
|
|
80
|
+
function NoResultsItem(props) {
|
|
81
|
+
var _this4;
|
|
82
|
+
(0, _classCallCheck2.default)(this, NoResultsItem);
|
|
83
|
+
_this4 = _callSuper(this, NoResultsItem, [props, _EmojiPickerSizes.sizes.noResultsHeight]);
|
|
84
|
+
(0, _defineProperty2.default)(_this4, "renderItem", function () {
|
|
85
|
+
return /*#__PURE__*/React.createElement(_EmojiPickerNoResults.default, _this4.props);
|
|
86
|
+
});
|
|
87
|
+
return _this4;
|
|
88
|
+
}
|
|
89
|
+
(0, _inherits2.default)(NoResultsItem, _AbstractItem4);
|
|
90
|
+
return (0, _createClass2.default)(NoResultsItem);
|
|
91
|
+
}(AbstractItem);
|
|
78
92
|
var virtualItemRenderer = exports.virtualItemRenderer = function virtualItemRenderer(rows, context) {
|
|
79
93
|
var index = context.index,
|
|
80
94
|
key = context.key;
|
|
@@ -20,7 +20,7 @@ var createEvent = function createEvent(eventType, action, actionSubject, actionS
|
|
|
20
20
|
actionSubjectId: actionSubjectId,
|
|
21
21
|
attributes: _objectSpread({
|
|
22
22
|
packageName: "@atlaskit/emoji",
|
|
23
|
-
packageVersion: "70.
|
|
23
|
+
packageVersion: "70.11.1"
|
|
24
24
|
}, attributes)
|
|
25
25
|
};
|
|
26
26
|
};
|
|
@@ -32,6 +32,8 @@ const uploadChooseFileEmojiName = null;
|
|
|
32
32
|
const uploadChooseFileMessage = null;
|
|
33
33
|
const uploadChooseFileRow = null;
|
|
34
34
|
const uploadChooseFileRowNew = null;
|
|
35
|
+
const supportedEmojiUploadMimeTypes = new Set(['image/png', 'image/jpeg', 'image/gif']);
|
|
36
|
+
const supportedEmojiUploadExtensions = ['.png', '.jpg', '.jpeg', '.gif'];
|
|
35
37
|
export const uploadEmojiNameInputTestId = 'upload-emoji-name-input';
|
|
36
38
|
export const uploadEmojiComponentTestId = 'upload-emoji-component';
|
|
37
39
|
export const cancelEmojiUploadPickerTestId = 'cancel-emoji-upload-picker';
|
|
@@ -48,6 +50,16 @@ const toEmojiName = uploadName => {
|
|
|
48
50
|
const name = uploadName.split('_').join(' ');
|
|
49
51
|
return `${name.substr(0, 1).toLocaleUpperCase()}${name.substr(1)}`;
|
|
50
52
|
};
|
|
53
|
+
const isSupportedEmojiUploadFileType = file => {
|
|
54
|
+
if (!fg('platform_emoji_picker_refresh')) {
|
|
55
|
+
return true;
|
|
56
|
+
}
|
|
57
|
+
if (supportedEmojiUploadMimeTypes.has(file.type)) {
|
|
58
|
+
return true;
|
|
59
|
+
}
|
|
60
|
+
const lowerCaseFileName = file.name.toLowerCase();
|
|
61
|
+
return supportedEmojiUploadExtensions.some(extension => lowerCaseFileName.endsWith(extension));
|
|
62
|
+
};
|
|
51
63
|
const ChooseEmojiFile = /*#__PURE__*/memo(props => {
|
|
52
64
|
const {
|
|
53
65
|
name = '',
|
|
@@ -297,6 +309,11 @@ const EmojiUploadPicker = props => {
|
|
|
297
309
|
if (files.length) {
|
|
298
310
|
const reader = new FileReader();
|
|
299
311
|
const file = files[0];
|
|
312
|
+
if (!isSupportedEmojiUploadFileType(file)) {
|
|
313
|
+
setChooseEmojiErrorMessage( /*#__PURE__*/React.createElement(FormattedMessage, messages.emojiUnsupportedFileType));
|
|
314
|
+
cancelChooseFile();
|
|
315
|
+
return;
|
|
316
|
+
}
|
|
300
317
|
if (ImageUtil.hasFileExceededSize(file)) {
|
|
301
318
|
setChooseEmojiErrorMessage( /*#__PURE__*/React.createElement(FormattedMessage, messages.emojiImageTooBig));
|
|
302
319
|
cancelChooseFile();
|
|
@@ -215,11 +215,26 @@ export const messages = defineMessages({
|
|
|
215
215
|
defaultMessage: 'Selected image is more than 1 MB',
|
|
216
216
|
description: 'Error message for image too big, beyond the size limit'
|
|
217
217
|
},
|
|
218
|
+
emojiUnsupportedFileType: {
|
|
219
|
+
id: 'fabric.emoji.error.unsupported.file.type',
|
|
220
|
+
defaultMessage: "This file type isn't supported. Select a PNG, JPEG, or GIF to create your emoji.",
|
|
221
|
+
description: 'Error message shown when the selected emoji upload file type is not supported'
|
|
222
|
+
},
|
|
218
223
|
emojiDuplicateName: {
|
|
219
224
|
id: 'fabric.emoji.error.duplicate.name',
|
|
220
225
|
defaultMessage: 'An emoji with this name exists already',
|
|
221
226
|
description: 'Error message shown when the user tries to upload an emoji with a name that already exists in the custom emoji set'
|
|
222
227
|
},
|
|
228
|
+
emojiPickerNoResults: {
|
|
229
|
+
id: 'fabric.emoji.picker.no.results',
|
|
230
|
+
defaultMessage: 'No results',
|
|
231
|
+
description: 'Heading shown in the emoji picker when a search query returns no matching emojis.'
|
|
232
|
+
},
|
|
233
|
+
emojiPickerAddCustomEmoji: {
|
|
234
|
+
id: 'fabric.emoji.picker.add.custom.emoji',
|
|
235
|
+
defaultMessage: 'Add custom emoji',
|
|
236
|
+
description: 'Label for the button shown in the emoji picker no-results screen that opens the custom emoji upload panel.'
|
|
237
|
+
},
|
|
223
238
|
emojiPickerTitle: {
|
|
224
239
|
id: 'fabric.emoji.picker',
|
|
225
240
|
defaultMessage: 'Emoji picker',
|
|
@@ -21,13 +21,16 @@
|
|
|
21
21
|
._1xi2idpf{right:0}
|
|
22
22
|
._2lx21bp4{flex-direction:column}
|
|
23
23
|
._4t3i1784{height:470px}
|
|
24
|
+
._4t3i19lm{height:514px}
|
|
24
25
|
._4t3i1ckg{height:455px}
|
|
25
26
|
._4t3i1dsu{height:419px}
|
|
27
|
+
._4t3i1j8x{height:354px}
|
|
26
28
|
._4t3i1sa4{height:390px}
|
|
27
29
|
._4t3i2300{height:429px}
|
|
28
30
|
._4t3i50k7{height:499px}
|
|
29
31
|
._4t3iaq3k{height:295px}
|
|
30
32
|
._4t3ibqjm{height:310px}
|
|
33
|
+
._4t3iihnn{height:434px}
|
|
31
34
|
._4t3iixjv{height:375px}
|
|
32
35
|
._4t3iqbeb{height:339px}
|
|
33
36
|
._4t3ivixp{height:349px}
|
|
@@ -60,6 +60,12 @@ const withoutPreviewHeight = {
|
|
|
60
60
|
medium: "_4t3iixjv _1tke5x59",
|
|
61
61
|
large: "_4t3i1ckg _1tke1pna"
|
|
62
62
|
};
|
|
63
|
+
const emojiPickerHeightNoResults = 354;
|
|
64
|
+
const withNoResultsRefreshHeight = {
|
|
65
|
+
small: "_4t3i1j8x _1tkegx0z",
|
|
66
|
+
medium: "_4t3iihnn _1tke5x59",
|
|
67
|
+
large: "_4t3i19lm _1tke1pna"
|
|
68
|
+
};
|
|
63
69
|
const FREQUENTLY_USED_MAX = 16;
|
|
64
70
|
const EmojiPickerComponent = ({
|
|
65
71
|
onSelection,
|
|
@@ -92,6 +98,7 @@ const EmojiPickerComponent = ({
|
|
|
92
98
|
const emojiPickerList = useMemo(() => /*#__PURE__*/createRef(), []);
|
|
93
99
|
const openTime = useRef(0);
|
|
94
100
|
const isMounting = useRef(true);
|
|
101
|
+
const lastNonSearchCategory = useRef(activeCategory);
|
|
95
102
|
const previousEmojiProvider = useRef(emojiProvider);
|
|
96
103
|
const isProgrammaticScroll = useRef(false);
|
|
97
104
|
const pickerRef = useRef(null);
|
|
@@ -133,8 +140,11 @@ const EmojiPickerComponent = ({
|
|
|
133
140
|
}
|
|
134
141
|
if (activeCategory !== category) {
|
|
135
142
|
setActiveCategory(category);
|
|
143
|
+
if (!query && fg('platform_emoji_picker_refresh')) {
|
|
144
|
+
lastNonSearchCategory.current = category;
|
|
145
|
+
}
|
|
136
146
|
}
|
|
137
|
-
}, [activeCategory, uploading, emojiToDelete]);
|
|
147
|
+
}, [activeCategory, uploading, emojiToDelete, query]);
|
|
138
148
|
const calculateElapsedTime = () => {
|
|
139
149
|
return Date.now() - openTime.current;
|
|
140
150
|
};
|
|
@@ -347,6 +357,10 @@ const EmojiPickerComponent = ({
|
|
|
347
357
|
source: SearchSourceTypes.PICKER
|
|
348
358
|
};
|
|
349
359
|
if (searchQuery !== query) {
|
|
360
|
+
// Capture the active category before entering search so we can keep it highlighted
|
|
361
|
+
if (!query && searchQuery && fg('platform_emoji_picker_refresh')) {
|
|
362
|
+
lastNonSearchCategory.current = activeCategory;
|
|
363
|
+
}
|
|
350
364
|
setQuery(searchQuery);
|
|
351
365
|
}
|
|
352
366
|
updateEmojis(searchQuery, options);
|
|
@@ -354,7 +368,7 @@ const EmojiPickerComponent = ({
|
|
|
354
368
|
// scroll to top when search, which is search results section
|
|
355
369
|
scrollToTopOfList();
|
|
356
370
|
}
|
|
357
|
-
}, [query, filteredEmojis, selectedTone, updateEmojis, scrollToTopOfList]);
|
|
371
|
+
}, [activeCategory, query, filteredEmojis, selectedTone, updateEmojis, scrollToTopOfList]);
|
|
358
372
|
|
|
359
373
|
// When the upload screen is open, intercept any file drag at the window level so it
|
|
360
374
|
// cannot reach underlying page drop handlers (e.g. the Confluence editor).
|
|
@@ -547,7 +561,7 @@ const EmojiPickerComponent = ({
|
|
|
547
561
|
role: "dialog",
|
|
548
562
|
"aria-label": formatMessage(messages.emojiPickerTitle),
|
|
549
563
|
"aria-modal": true,
|
|
550
|
-
className: ax([fg('platform_emoji_picker_refresh') ? "_19itahnd _2rko1mok _1e0c1txw _2lx21bp4 _1bah1yb4 _bfhk1bhr _16qs130s _4t3iaq3k _1bsb1edt _1ul91edt _c71l1y6z _kqswh2mm" : "_19itahnd _2rkofajl _1e0c1txw _2lx21bp4 _1bah1yb4 _bfhk1bhr _16qs130s _4t3iaq3k _1bsb1edt _1ul91edt _c71l1y6z _kqswh2mm", !!emojiToDelete && fg('platform_emoji_picker_refresh') ? withDeleteRefreshHeight[size] : uploading && fg('platform_emoji_picker_refresh') ? withUploadRefreshHeight[size] : showPreview ? withPreviewHeight[size] : withoutPreviewHeight[size]])
|
|
564
|
+
className: ax([fg('platform_emoji_picker_refresh') ? "_19itahnd _2rko1mok _1e0c1txw _2lx21bp4 _1bah1yb4 _bfhk1bhr _16qs130s _4t3iaq3k _1bsb1edt _1ul91edt _c71l1y6z _kqswh2mm" : "_19itahnd _2rkofajl _1e0c1txw _2lx21bp4 _1bah1yb4 _bfhk1bhr _16qs130s _4t3iaq3k _1bsb1edt _1ul91edt _c71l1y6z _kqswh2mm", !!emojiToDelete && fg('platform_emoji_picker_refresh') ? withDeleteRefreshHeight[size] : uploading && fg('platform_emoji_picker_refresh') ? withUploadRefreshHeight[size] : query && filteredEmojis.length === 0 && fg('platform_emoji_picker_refresh') ? withNoResultsRefreshHeight[size] : showPreview ? withPreviewHeight[size] : withoutPreviewHeight[size]])
|
|
551
565
|
}, /*#__PURE__*/React.createElement("div", {
|
|
552
566
|
role: "presentation",
|
|
553
567
|
onKeyPress: suppressKeyPress,
|
|
@@ -588,7 +602,7 @@ const EmojiPickerComponent = ({
|
|
|
588
602
|
onOpenUpload: onOpenUpload,
|
|
589
603
|
size: size,
|
|
590
604
|
activeCategoryId: activeCategory
|
|
591
|
-
}), showPreview && !(emojiToDelete && fg('platform_emoji_picker_refresh')) && /*#__PURE__*/React.createElement(EmojiPickerFooter, {
|
|
605
|
+
}), showPreview && !(emojiToDelete && fg('platform_emoji_picker_refresh')) && !(query && filteredEmojis.length === 0 && fg('platform_emoji_picker_refresh')) && /*#__PURE__*/React.createElement(EmojiPickerFooter, {
|
|
592
606
|
selectedEmoji: selectedEmoji,
|
|
593
607
|
uploadEnabled: isUploadSupported && !uploading,
|
|
594
608
|
onOpenUpload: onOpenUpload
|
|
@@ -603,7 +617,7 @@ const EmojiPickerComponent = ({
|
|
|
603
617
|
onKeyPress: suppressKeyPress,
|
|
604
618
|
onKeyUp: suppressKeyPress,
|
|
605
619
|
onKeyDown: suppressKeyPress,
|
|
606
|
-
className: ax([fg('platform_emoji_picker_refresh') ? "_19itahnd _2rko1mok _1e0c1txw _2lx21bp4 _1bah1yb4 _bfhk1bhr _16qs130s _4t3iaq3k _1bsb1edt _1ul91edt _c71l1y6z _kqswh2mm" : "_19itahnd _2rkofajl _1e0c1txw _2lx21bp4 _1bah1yb4 _bfhk1bhr _16qs130s _4t3iaq3k _1bsb1edt _1ul91edt _c71l1y6z _kqswh2mm", !!emojiToDelete && fg('platform_emoji_picker_refresh') ? withDeleteRefreshHeight[size] : uploading && fg('platform_emoji_picker_refresh') ? withUploadRefreshHeight[size] : showPreview ? withPreviewHeight[size] : withoutPreviewHeight[size]])
|
|
620
|
+
className: ax([fg('platform_emoji_picker_refresh') ? "_19itahnd _2rko1mok _1e0c1txw _2lx21bp4 _1bah1yb4 _bfhk1bhr _16qs130s _4t3iaq3k _1bsb1edt _1ul91edt _c71l1y6z _kqswh2mm" : "_19itahnd _2rkofajl _1e0c1txw _2lx21bp4 _1bah1yb4 _bfhk1bhr _16qs130s _4t3iaq3k _1bsb1edt _1ul91edt _c71l1y6z _kqswh2mm", !!emojiToDelete && fg('platform_emoji_picker_refresh') ? withDeleteRefreshHeight[size] : uploading && fg('platform_emoji_picker_refresh') ? withUploadRefreshHeight[size] : query && filteredEmojis.length === 0 && fg('platform_emoji_picker_refresh') ? withNoResultsRefreshHeight[size] : showPreview ? withPreviewHeight[size] : withoutPreviewHeight[size]])
|
|
607
621
|
}, /*#__PURE__*/React.createElement(CategorySelector, {
|
|
608
622
|
activeCategoryId: (uploading || emojiToDelete) && fg('platform_emoji_picker_refresh') ? null : activeCategory,
|
|
609
623
|
dynamicCategories: dynamicCategories,
|
|
@@ -638,7 +652,7 @@ const EmojiPickerComponent = ({
|
|
|
638
652
|
onOpenUpload: onOpenUpload,
|
|
639
653
|
size: size,
|
|
640
654
|
activeCategoryId: activeCategory
|
|
641
|
-
}), showPreview && !(emojiToDelete && fg('platform_emoji_picker_refresh')) && /*#__PURE__*/React.createElement(EmojiPickerFooter, {
|
|
655
|
+
}), showPreview && !(emojiToDelete && fg('platform_emoji_picker_refresh')) && !(query && filteredEmojis.length === 0 && fg('platform_emoji_picker_refresh')) && /*#__PURE__*/React.createElement(EmojiPickerFooter, {
|
|
642
656
|
selectedEmoji: selectedEmoji,
|
|
643
657
|
uploadEnabled: isUploadSupported && !uploading,
|
|
644
658
|
onOpenUpload: onOpenUpload
|