@atlaskit/emoji 67.0.7 → 67.2.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 +37 -0
- package/dist/cjs/api/EmojiResource.js +41 -25
- package/dist/cjs/api/media/TokenManager.js +4 -4
- package/dist/cjs/components/common/CachingEmoji.js +14 -6
- package/dist/cjs/components/common/Emoji.js +48 -12
- package/dist/cjs/components/common/EmojiActions.js +62 -26
- package/dist/cjs/components/common/EmojiErrorMessage.js +12 -7
- package/dist/cjs/components/common/EmojiPlaceholder.js +1 -0
- package/dist/cjs/components/common/{EmojiButton.js → EmojiRadioButton.js} +28 -19
- package/dist/cjs/components/common/EmojiUploadPicker.js +80 -37
- package/dist/cjs/components/common/EmojiUploadPreview.js +11 -2
- package/dist/cjs/components/common/FileChooser.js +2 -2
- package/dist/cjs/components/common/ResourcedEmojiComponent.js +4 -0
- package/dist/cjs/components/common/RetryableButton.js +7 -3
- package/dist/cjs/components/common/TonePreviewButton.js +44 -0
- package/dist/cjs/components/common/ToneSelector.js +53 -25
- package/dist/cjs/components/common/styles.js +45 -16
- package/dist/cjs/components/i18n.js +44 -4
- package/dist/cjs/components/picker/CategorySelector.js +112 -90
- package/dist/cjs/components/picker/CategoryTracker.js +0 -28
- package/dist/cjs/components/picker/EmojiPickerCategoryHeading.js +2 -1
- package/dist/cjs/components/picker/EmojiPickerComponent.js +33 -44
- package/dist/cjs/components/picker/EmojiPickerEmojiRow.js +32 -4
- package/dist/cjs/components/picker/EmojiPickerList.js +154 -88
- package/dist/cjs/components/picker/EmojiPickerListSearch.js +66 -117
- package/dist/cjs/components/picker/EmojiPickerVirtualItems.js +5 -2
- package/dist/cjs/components/picker/VirtualList.js +273 -171
- package/dist/cjs/components/picker/styles.js +43 -51
- package/dist/cjs/components/typeahead/EmojiTypeAheadComponent.js +0 -10
- package/dist/cjs/context/EmojiPickerListContext.js +33 -0
- package/dist/cjs/hooks/useEmojiPickerListContext.js +12 -0
- package/dist/cjs/hooks/useIsMounted.js +17 -0
- package/dist/cjs/i18n/cs.js +35 -34
- package/dist/cjs/i18n/da.js +35 -34
- package/dist/cjs/i18n/de.js +35 -34
- package/dist/cjs/i18n/en.js +35 -34
- package/dist/cjs/i18n/en_GB.js +35 -34
- package/dist/cjs/i18n/es.js +35 -34
- package/dist/cjs/i18n/fi.js +35 -34
- package/dist/cjs/i18n/fr.js +35 -34
- package/dist/cjs/i18n/hu.js +35 -34
- package/dist/cjs/i18n/it.js +35 -34
- package/dist/cjs/i18n/ja.js +35 -34
- package/dist/cjs/i18n/ko.js +35 -34
- package/dist/cjs/i18n/nb.js +35 -34
- package/dist/cjs/i18n/nl.js +35 -34
- package/dist/cjs/i18n/pl.js +35 -34
- package/dist/cjs/i18n/pt_BR.js +35 -34
- package/dist/cjs/i18n/ru.js +35 -34
- package/dist/cjs/i18n/sv.js +35 -34
- package/dist/cjs/i18n/th.js +35 -34
- package/dist/cjs/i18n/tr.js +35 -34
- package/dist/cjs/i18n/uk.js +35 -34
- package/dist/cjs/i18n/vi.js +35 -34
- package/dist/cjs/i18n/zh.js +35 -34
- package/dist/cjs/i18n/zh_TW.js +35 -34
- package/dist/cjs/types.js +7 -1
- package/dist/cjs/util/constants.js +43 -2
- package/dist/cjs/util/shared-styles.js +3 -4
- package/dist/cjs/version.json +1 -1
- package/dist/es2019/api/EmojiResource.js +42 -26
- package/dist/es2019/api/media/TokenManager.js +4 -4
- package/dist/es2019/components/common/CachingEmoji.js +10 -3
- package/dist/es2019/components/common/Emoji.js +44 -11
- package/dist/es2019/components/common/EmojiActions.js +55 -24
- package/dist/es2019/components/common/EmojiErrorMessage.js +7 -3
- package/dist/es2019/components/common/EmojiPlaceholder.js +1 -0
- package/dist/es2019/components/common/EmojiRadioButton.js +54 -0
- package/dist/es2019/components/common/EmojiUploadPicker.js +75 -36
- package/dist/es2019/components/common/EmojiUploadPreview.js +11 -2
- package/dist/es2019/components/common/FileChooser.js +1 -1
- package/dist/es2019/components/common/ResourcedEmojiComponent.js +4 -0
- package/dist/es2019/components/common/RetryableButton.js +7 -3
- package/dist/es2019/components/common/TonePreviewButton.js +34 -0
- package/dist/es2019/components/common/ToneSelector.js +55 -21
- package/dist/es2019/components/common/styles.js +41 -10
- package/dist/es2019/components/i18n.js +44 -4
- package/dist/es2019/components/picker/CategorySelector.js +114 -89
- package/dist/es2019/components/picker/CategoryTracker.js +0 -24
- package/dist/es2019/components/picker/EmojiPickerCategoryHeading.js +2 -2
- package/dist/es2019/components/picker/EmojiPickerComponent.js +36 -46
- package/dist/es2019/components/picker/EmojiPickerEmojiRow.js +51 -21
- package/dist/es2019/components/picker/EmojiPickerList.js +113 -55
- package/dist/es2019/components/picker/EmojiPickerListSearch.js +61 -98
- package/dist/es2019/components/picker/EmojiPickerVirtualItems.js +4 -1
- package/dist/es2019/components/picker/VirtualList.js +247 -108
- package/dist/es2019/components/picker/styles.js +20 -28
- package/dist/es2019/components/typeahead/EmojiTypeAheadComponent.js +0 -10
- package/dist/es2019/context/EmojiPickerListContext.js +17 -0
- package/dist/es2019/hooks/useEmojiPickerListContext.js +3 -0
- package/dist/es2019/hooks/useIsMounted.js +11 -0
- package/dist/es2019/i18n/cs.js +35 -34
- package/dist/es2019/i18n/da.js +35 -34
- package/dist/es2019/i18n/de.js +35 -34
- package/dist/es2019/i18n/en.js +35 -34
- package/dist/es2019/i18n/en_GB.js +35 -34
- package/dist/es2019/i18n/es.js +35 -34
- package/dist/es2019/i18n/fi.js +35 -34
- package/dist/es2019/i18n/fr.js +35 -34
- package/dist/es2019/i18n/hu.js +35 -34
- package/dist/es2019/i18n/it.js +35 -34
- package/dist/es2019/i18n/ja.js +35 -34
- package/dist/es2019/i18n/ko.js +35 -34
- package/dist/es2019/i18n/nb.js +35 -34
- package/dist/es2019/i18n/nl.js +35 -34
- package/dist/es2019/i18n/pl.js +35 -34
- package/dist/es2019/i18n/pt_BR.js +35 -34
- package/dist/es2019/i18n/ru.js +35 -34
- package/dist/es2019/i18n/sv.js +35 -34
- package/dist/es2019/i18n/th.js +35 -34
- package/dist/es2019/i18n/tr.js +35 -34
- package/dist/es2019/i18n/uk.js +35 -34
- package/dist/es2019/i18n/vi.js +35 -34
- package/dist/es2019/i18n/zh.js +35 -34
- package/dist/es2019/i18n/zh_TW.js +35 -34
- package/dist/es2019/types.js +5 -0
- package/dist/es2019/util/constants.js +32 -0
- package/dist/es2019/util/shared-styles.js +1 -2
- package/dist/es2019/version.json +1 -1
- package/dist/esm/api/EmojiResource.js +42 -26
- package/dist/esm/api/media/TokenManager.js +4 -4
- package/dist/esm/components/common/CachingEmoji.js +14 -6
- package/dist/esm/components/common/Emoji.js +48 -12
- package/dist/esm/components/common/EmojiActions.js +62 -26
- package/dist/esm/components/common/EmojiErrorMessage.js +7 -3
- package/dist/esm/components/common/EmojiPlaceholder.js +1 -0
- package/dist/esm/components/common/EmojiRadioButton.js +52 -0
- package/dist/esm/components/common/EmojiUploadPicker.js +77 -36
- package/dist/esm/components/common/EmojiUploadPreview.js +11 -2
- package/dist/esm/components/common/FileChooser.js +1 -1
- package/dist/esm/components/common/ResourcedEmojiComponent.js +4 -0
- package/dist/esm/components/common/RetryableButton.js +7 -3
- package/dist/esm/components/common/TonePreviewButton.js +33 -0
- package/dist/esm/components/common/ToneSelector.js +49 -18
- package/dist/esm/components/common/styles.js +40 -12
- package/dist/esm/components/i18n.js +44 -4
- package/dist/esm/components/picker/CategorySelector.js +114 -95
- package/dist/esm/components/picker/CategoryTracker.js +0 -28
- package/dist/esm/components/picker/EmojiPickerCategoryHeading.js +2 -2
- package/dist/esm/components/picker/EmojiPickerComponent.js +35 -46
- package/dist/esm/components/picker/EmojiPickerEmojiRow.js +32 -4
- package/dist/esm/components/picker/EmojiPickerList.js +156 -86
- package/dist/esm/components/picker/EmojiPickerListSearch.js +64 -117
- package/dist/esm/components/picker/EmojiPickerVirtualItems.js +5 -2
- package/dist/esm/components/picker/VirtualList.js +274 -172
- package/dist/esm/components/picker/styles.js +37 -45
- package/dist/esm/components/typeahead/EmojiTypeAheadComponent.js +0 -10
- package/dist/esm/context/EmojiPickerListContext.js +21 -0
- package/dist/esm/hooks/useEmojiPickerListContext.js +5 -0
- package/dist/esm/hooks/useIsMounted.js +11 -0
- package/dist/esm/i18n/cs.js +35 -34
- package/dist/esm/i18n/da.js +35 -34
- package/dist/esm/i18n/de.js +35 -34
- package/dist/esm/i18n/en.js +35 -34
- package/dist/esm/i18n/en_GB.js +35 -34
- package/dist/esm/i18n/es.js +35 -34
- package/dist/esm/i18n/fi.js +35 -34
- package/dist/esm/i18n/fr.js +35 -34
- package/dist/esm/i18n/hu.js +35 -34
- package/dist/esm/i18n/it.js +35 -34
- package/dist/esm/i18n/ja.js +35 -34
- package/dist/esm/i18n/ko.js +35 -34
- package/dist/esm/i18n/nb.js +35 -34
- package/dist/esm/i18n/nl.js +35 -34
- package/dist/esm/i18n/pl.js +35 -34
- package/dist/esm/i18n/pt_BR.js +35 -34
- package/dist/esm/i18n/ru.js +35 -34
- package/dist/esm/i18n/sv.js +35 -34
- package/dist/esm/i18n/th.js +35 -34
- package/dist/esm/i18n/tr.js +35 -34
- package/dist/esm/i18n/uk.js +35 -34
- package/dist/esm/i18n/vi.js +35 -34
- package/dist/esm/i18n/zh.js +35 -34
- package/dist/esm/i18n/zh_TW.js +35 -34
- package/dist/esm/types.js +5 -0
- package/dist/esm/util/constants.js +32 -0
- package/dist/esm/util/shared-styles.js +1 -2
- package/dist/esm/version.json +1 -1
- package/dist/types/api/EmojiResource.d.ts +2 -0
- package/dist/types/components/common/Emoji.d.ts +7 -1
- package/dist/types/components/common/EmojiActions.d.ts +4 -3
- package/dist/types/components/common/{EmojiButton.d.ts → EmojiRadioButton.d.ts} +3 -4
- package/dist/types/components/common/EmojiUploadPicker.d.ts +6 -4
- package/dist/types/components/common/RetryableButton.d.ts +1 -0
- package/dist/types/components/common/TonePreviewButton.d.ts +14 -0
- package/dist/types/components/common/ToneSelector.d.ts +8 -5
- package/dist/types/components/common/internal-types.d.ts +9 -0
- package/dist/types/components/common/styles.d.ts +2 -1
- package/dist/types/components/i18n.d.ts +40 -0
- package/dist/types/components/picker/CategorySelector.d.ts +3 -10
- package/dist/types/components/picker/CategoryTracker.d.ts +0 -2
- package/dist/types/components/picker/EmojiPickerCategoryHeading.d.ts +2 -1
- package/dist/types/components/picker/EmojiPickerEmojiRow.d.ts +5 -0
- package/dist/types/components/picker/EmojiPickerList.d.ts +14 -7
- package/dist/types/components/picker/EmojiPickerListSearch.d.ts +4 -8
- package/dist/types/components/picker/EmojiPickerVirtualItems.d.ts +1 -1
- package/dist/types/components/picker/VirtualList.d.ts +7 -24
- package/dist/types/components/picker/styles.d.ts +1 -1
- package/dist/types/context/EmojiPickerListContext.d.ts +10 -0
- package/dist/types/hooks/useEmojiPickerListContext.d.ts +1 -0
- package/dist/types/hooks/useIsMounted.d.ts +1 -0
- package/dist/types/i18n/cs.d.ts +34 -34
- package/dist/types/i18n/da.d.ts +34 -34
- package/dist/types/i18n/de.d.ts +34 -34
- package/dist/types/i18n/en.d.ts +34 -34
- package/dist/types/i18n/en_GB.d.ts +34 -34
- package/dist/types/i18n/es.d.ts +34 -34
- package/dist/types/i18n/fi.d.ts +34 -34
- package/dist/types/i18n/fr.d.ts +34 -34
- package/dist/types/i18n/hu.d.ts +34 -34
- package/dist/types/i18n/it.d.ts +34 -34
- package/dist/types/i18n/ja.d.ts +34 -34
- package/dist/types/i18n/ko.d.ts +34 -34
- package/dist/types/i18n/nb.d.ts +34 -34
- package/dist/types/i18n/nl.d.ts +34 -34
- package/dist/types/i18n/pl.d.ts +34 -34
- package/dist/types/i18n/pt_BR.d.ts +34 -34
- package/dist/types/i18n/ru.d.ts +34 -34
- package/dist/types/i18n/sv.d.ts +34 -34
- package/dist/types/i18n/th.d.ts +34 -34
- package/dist/types/i18n/tr.d.ts +34 -34
- package/dist/types/i18n/uk.d.ts +34 -34
- package/dist/types/i18n/vi.d.ts +34 -34
- package/dist/types/i18n/zh.d.ts +34 -34
- package/dist/types/i18n/zh_TW.d.ts +34 -34
- package/dist/types/types.d.ts +5 -0
- package/dist/types/util/constants.d.ts +28 -0
- package/dist/types/util/shared-styles.d.ts +1 -1
- package/dist/types/util/type-helpers.d.ts +1 -1
- package/package.json +12 -8
- package/report.api.md +62 -1
- package/README.md +0 -3
- package/dist/cjs/components/hooks.js +0 -14
- package/dist/es2019/components/common/EmojiButton.js +0 -49
- package/dist/es2019/components/hooks.js +0 -8
- package/dist/esm/components/common/EmojiButton.js +0 -43
- package/dist/esm/components/hooks.js +0 -8
- package/dist/types/components/hooks.d.ts +0 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,42 @@
|
|
|
1
1
|
# @atlaskit/emoji
|
|
2
2
|
|
|
3
|
+
## 67.2.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- [`2b2aa109521`](https://bitbucket.org/atlassian/atlassian-frontend/commits/2b2aa109521) - [ux] improve keyboard navigation in emoji picker list, improve category highlight logic in emoji picker
|
|
8
|
+
- [`7e3c38a86ef`](https://bitbucket.org/atlassian/atlassian-frontend/commits/7e3c38a86ef) - [ux] [COLLAB-2264] add arrow keys support for navigating categories selctor in emoji picker, used tabs structure for emoji picker with category selctor for better accessibility, added more aria-labels for category selector and picker list panel for accessibility, highlight first category in emoji picker at start
|
|
9
|
+
|
|
10
|
+
### Patch Changes
|
|
11
|
+
|
|
12
|
+
- [`d06e5f9c381`](https://bitbucket.org/atlassian/atlassian-frontend/commits/d06e5f9c381) - Fixed accessibility issues in upload emoji journey flagged by axe and added accessibility tests
|
|
13
|
+
- [`2c650251e9a`](https://bitbucket.org/atlassian/atlassian-frontend/commits/2c650251e9a) - Improve uploading custom emoji experience for screen reader user
|
|
14
|
+
- [`ef218ded5ca`](https://bitbucket.org/atlassian/atlassian-frontend/commits/ef218ded5ca) - ResourcedEmoji component will fallback when provider fails to fetch
|
|
15
|
+
- [`37192cbc921`](https://bitbucket.org/atlassian/atlassian-frontend/commits/37192cbc921) - Scroll and focus on newly uploaded emoji in the picker list after uploading
|
|
16
|
+
- [`36f471471e3`](https://bitbucket.org/atlassian/atlassian-frontend/commits/36f471471e3) - fix scroll to category when click category in category toolbar
|
|
17
|
+
- [`ed20cc3d0d9`](https://bitbucket.org/atlassian/atlassian-frontend/commits/ed20cc3d0d9) - Changed 'Choose File' button in Emoji Picker to a standard button
|
|
18
|
+
- [`47c411e6564`](https://bitbucket.org/atlassian/atlassian-frontend/commits/47c411e6564) - [ux] [COLLAB-2281] Improve keyboard experience with tone selector, changes include allow arrow key nagivation, allow Tab key to close tone selector, focus on the selected/default tone when tone selector is expanded, focus on tone selector trigger button after closing tone selector
|
|
19
|
+
- [`2896c02e6cb`](https://bitbucket.org/atlassian/atlassian-frontend/commits/2896c02e6cb) - update aria attributes across emoji components to improve accessibility
|
|
20
|
+
- [`d4234822fb6`](https://bitbucket.org/atlassian/atlassian-frontend/commits/d4234822fb6) - [ux] Updated focus styling to align with Atlassian Design System styling
|
|
21
|
+
- [`221f0101322`](https://bitbucket.org/atlassian/atlassian-frontend/commits/221f0101322) - Fixes a bug where get token could be called multiple times while in flight
|
|
22
|
+
- [`1537683bd72`](https://bitbucket.org/atlassian/atlassian-frontend/commits/1537683bd72) - clean up css of emoji picker
|
|
23
|
+
- [`73b9fda49ad`](https://bitbucket.org/atlassian/atlassian-frontend/commits/73b9fda49ad) - Fixed accessibility issues in emoji picker flagged by axe
|
|
24
|
+
- Updated dependencies
|
|
25
|
+
|
|
26
|
+
## 67.1.0
|
|
27
|
+
|
|
28
|
+
### Minor Changes
|
|
29
|
+
|
|
30
|
+
- [`27b1925f52a`](https://bitbucket.org/atlassian/atlassian-frontend/commits/27b1925f52a) - - search emoji in emoji picker will scroll to top
|
|
31
|
+
- improve emoji search analytics tracking
|
|
32
|
+
- add debounce to emoji search
|
|
33
|
+
- fix duplicated calls triggered by each emoji search
|
|
34
|
+
- functional component refactoring for VirtualList and EmojiPickerListSearch
|
|
35
|
+
|
|
36
|
+
### Patch Changes
|
|
37
|
+
|
|
38
|
+
- Updated dependencies
|
|
39
|
+
|
|
3
40
|
## 67.0.7
|
|
4
41
|
|
|
5
42
|
### Patch Changes
|
|
@@ -49,6 +49,7 @@ var EmojiResource = /*#__PURE__*/function (_ref) {
|
|
|
49
49
|
(0, _classCallCheck2.default)(this, EmojiResource);
|
|
50
50
|
_this = _super.call(this);
|
|
51
51
|
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "activeLoaders", 0);
|
|
52
|
+
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "initialLoaders", 0);
|
|
52
53
|
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "retries", new Map());
|
|
53
54
|
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "isInitialised", false);
|
|
54
55
|
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "getOptimisticImageURL", function (emojiId) {
|
|
@@ -57,8 +58,11 @@ var EmojiResource = /*#__PURE__*/function (_ref) {
|
|
|
57
58
|
}
|
|
58
59
|
return;
|
|
59
60
|
});
|
|
61
|
+
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "isRepositoryAvailable", function (repository) {
|
|
62
|
+
return !!repository;
|
|
63
|
+
});
|
|
60
64
|
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "isLoaded", function () {
|
|
61
|
-
return _this.
|
|
65
|
+
return _this.initialLoaders !== 0 && _this.activeLoaders === 0;
|
|
62
66
|
});
|
|
63
67
|
_this.emojiProviderConfig = config;
|
|
64
68
|
_this.recordConfig = config.recordConfig;
|
|
@@ -69,6 +73,7 @@ var EmojiResource = /*#__PURE__*/function (_ref) {
|
|
|
69
73
|
if (config.providers.length === 0) {
|
|
70
74
|
throw new Error('No providers specified');
|
|
71
75
|
}
|
|
76
|
+
_this.initialLoaders = _this.emojiProviderConfig.providers.length;
|
|
72
77
|
_this.activeLoaders = _this.emojiProviderConfig.providers.length;
|
|
73
78
|
_this.emojiResponses = [];
|
|
74
79
|
return _this;
|
|
@@ -192,7 +197,7 @@ var EmojiResource = /*#__PURE__*/function (_ref) {
|
|
|
192
197
|
switch (_context3.prev = _context3.next) {
|
|
193
198
|
case 0:
|
|
194
199
|
force = _args3.length > 0 && _args3[0] !== undefined ? _args3[0] : false;
|
|
195
|
-
if (!(force || !this.emojiRepository && !this.isInitialised)) {
|
|
200
|
+
if (!(force || !this.isRepositoryAvailable(this.emojiRepository) && !this.isInitialised)) {
|
|
196
201
|
_context3.next = 6;
|
|
197
202
|
break;
|
|
198
203
|
}
|
|
@@ -226,7 +231,7 @@ var EmojiResource = /*#__PURE__*/function (_ref) {
|
|
|
226
231
|
while (1) {
|
|
227
232
|
switch (_context4.prev = _context4.next) {
|
|
228
233
|
case 0:
|
|
229
|
-
if (!(this.
|
|
234
|
+
if (!(this.isLoaded() && this.isRepositoryAvailable(this.emojiRepository))) {
|
|
230
235
|
_context4.next = 8;
|
|
231
236
|
break;
|
|
232
237
|
}
|
|
@@ -264,7 +269,7 @@ var EmojiResource = /*#__PURE__*/function (_ref) {
|
|
|
264
269
|
}
|
|
265
270
|
return _context4.abrupt("return");
|
|
266
271
|
case 17:
|
|
267
|
-
if (this.siteEmojiResource) {
|
|
272
|
+
if (this.isRepositoryAvailable(this.siteEmojiResource)) {
|
|
268
273
|
_context4.next = 20;
|
|
269
274
|
break;
|
|
270
275
|
}
|
|
@@ -334,7 +339,7 @@ var EmojiResource = /*#__PURE__*/function (_ref) {
|
|
|
334
339
|
}, {
|
|
335
340
|
key: "initSiteEmojiResource",
|
|
336
341
|
value: function initSiteEmojiResource(emojiResponse, provider) {
|
|
337
|
-
if (!this.siteEmojiResource && emojiResponse.mediaApiToken) {
|
|
342
|
+
if (!this.isRepositoryAvailable(this.siteEmojiResource) && emojiResponse.mediaApiToken) {
|
|
338
343
|
this.siteEmojiResource = new _SiteEmojiResource.default(provider, emojiResponse.mediaApiToken);
|
|
339
344
|
|
|
340
345
|
// Prime cache type + optimistic rendering by checking first Emoji.
|
|
@@ -432,7 +437,7 @@ var EmojiResource = /*#__PURE__*/function (_ref) {
|
|
|
432
437
|
while (1) {
|
|
433
438
|
switch (_context5.prev = _context5.next) {
|
|
434
439
|
case 0:
|
|
435
|
-
if (!(this.siteEmojiResource && (0, _typeHelpers.isMediaRepresentation)(emoji.representation))) {
|
|
440
|
+
if (!(this.isRepositoryAvailable(this.siteEmojiResource) && (0, _typeHelpers.isMediaRepresentation)(emoji.representation))) {
|
|
436
441
|
_context5.next = 5;
|
|
437
442
|
break;
|
|
438
443
|
}
|
|
@@ -462,7 +467,7 @@ var EmojiResource = /*#__PURE__*/function (_ref) {
|
|
|
462
467
|
}, {
|
|
463
468
|
key: "loadMediaEmoji",
|
|
464
469
|
value: function loadMediaEmoji(emoji, useAlt) {
|
|
465
|
-
if (!this.siteEmojiResource || !(0, _typeHelpers.isMediaEmoji)(emoji)) {
|
|
470
|
+
if (!this.isRepositoryAvailable(this.siteEmojiResource) || !(0, _typeHelpers.isMediaEmoji)(emoji)) {
|
|
466
471
|
return emoji;
|
|
467
472
|
}
|
|
468
473
|
return this.siteEmojiResource.loadMediaEmoji(emoji, useAlt);
|
|
@@ -473,7 +478,7 @@ var EmojiResource = /*#__PURE__*/function (_ref) {
|
|
|
473
478
|
if (!(0, _typeHelpers.isMediaEmoji)(emoji)) {
|
|
474
479
|
return true;
|
|
475
480
|
}
|
|
476
|
-
if (!this.siteEmojiResource) {
|
|
481
|
+
if (!this.isRepositoryAvailable(this.siteEmojiResource)) {
|
|
477
482
|
// Shouldn't have a media emoji without a siteEmojiResouce, but anyway ;)
|
|
478
483
|
return false;
|
|
479
484
|
}
|
|
@@ -487,12 +492,23 @@ var EmojiResource = /*#__PURE__*/function (_ref) {
|
|
|
487
492
|
}, {
|
|
488
493
|
key: "filter",
|
|
489
494
|
value: function filter(query, options) {
|
|
495
|
+
_ufoExperiences.ufoExperiences['emoji-searched'].start();
|
|
496
|
+
_ufoExperiences.ufoExperiences['emoji-searched'].addMetadata({
|
|
497
|
+
queryLength: (query === null || query === void 0 ? void 0 : query.length) || 0
|
|
498
|
+
});
|
|
490
499
|
this.lastQuery = {
|
|
491
500
|
query: query,
|
|
492
501
|
options: options
|
|
493
502
|
};
|
|
494
|
-
if (this.emojiRepository) {
|
|
495
|
-
this.
|
|
503
|
+
if (this.isRepositoryAvailable(this.emojiRepository)) {
|
|
504
|
+
var searchResults = this.emojiRepository.search(query, options);
|
|
505
|
+
this.notifyResult(searchResults);
|
|
506
|
+
_ufoExperiences.ufoExperiences['emoji-searched'].success({
|
|
507
|
+
metadata: {
|
|
508
|
+
emojisLength: searchResults.emojis.length,
|
|
509
|
+
source: (options === null || options === void 0 ? void 0 : options.source) || 'typeahead'
|
|
510
|
+
}
|
|
511
|
+
});
|
|
496
512
|
} else {
|
|
497
513
|
// not ready
|
|
498
514
|
this.notifyNotReady();
|
|
@@ -502,7 +518,7 @@ var EmojiResource = /*#__PURE__*/function (_ref) {
|
|
|
502
518
|
key: "findByShortName",
|
|
503
519
|
value: function findByShortName(shortName) {
|
|
504
520
|
var _this4 = this;
|
|
505
|
-
if (this.isLoaded()) {
|
|
521
|
+
if (this.isLoaded() && this.isRepositoryAvailable(this.emojiRepository)) {
|
|
506
522
|
// Wait for all emoji to load before looking by shortName (to ensure correct priority)
|
|
507
523
|
return this.emojiRepository.findByShortName(shortName);
|
|
508
524
|
}
|
|
@@ -516,7 +532,7 @@ var EmojiResource = /*#__PURE__*/function (_ref) {
|
|
|
516
532
|
var _this5 = this;
|
|
517
533
|
var id = emojiId.id,
|
|
518
534
|
shortName = emojiId.shortName;
|
|
519
|
-
if (this.emojiRepository) {
|
|
535
|
+
if (this.isRepositoryAvailable(this.emojiRepository)) {
|
|
520
536
|
if (id) {
|
|
521
537
|
var emoji = this.emojiRepository.findById(id);
|
|
522
538
|
if (emoji) {
|
|
@@ -525,7 +541,7 @@ var EmojiResource = /*#__PURE__*/function (_ref) {
|
|
|
525
541
|
if (this.isLoaded()) {
|
|
526
542
|
// all loaded but not found by id, try server to see if
|
|
527
543
|
// this is a newly uploaded emoji
|
|
528
|
-
if (this.siteEmojiResource) {
|
|
544
|
+
if (this.isRepositoryAvailable(this.siteEmojiResource)) {
|
|
529
545
|
return this.siteEmojiResource.findEmoji(emojiId).then(function (emoji) {
|
|
530
546
|
if (!emoji) {
|
|
531
547
|
// if not, fallback to searching by shortName to
|
|
@@ -554,7 +570,7 @@ var EmojiResource = /*#__PURE__*/function (_ref) {
|
|
|
554
570
|
key: "findById",
|
|
555
571
|
value: function findById(id) {
|
|
556
572
|
var _this6 = this;
|
|
557
|
-
if (this.isLoaded()) {
|
|
573
|
+
if (this.isLoaded() && this.isRepositoryAvailable(this.emojiRepository)) {
|
|
558
574
|
return this.emojiRepository.findById(id);
|
|
559
575
|
}
|
|
560
576
|
return this.retryIfLoading(function () {
|
|
@@ -565,7 +581,7 @@ var EmojiResource = /*#__PURE__*/function (_ref) {
|
|
|
565
581
|
key: "findInCategory",
|
|
566
582
|
value: function findInCategory(categoryId) {
|
|
567
583
|
var _this7 = this;
|
|
568
|
-
if (this.isLoaded()) {
|
|
584
|
+
if (this.isLoaded() && this.isRepositoryAvailable(this.emojiRepository)) {
|
|
569
585
|
return Promise.resolve(this.emojiRepository.findInCategory(categoryId));
|
|
570
586
|
}
|
|
571
587
|
return this.retryIfLoading(function () {
|
|
@@ -576,7 +592,7 @@ var EmojiResource = /*#__PURE__*/function (_ref) {
|
|
|
576
592
|
key: "getAsciiMap",
|
|
577
593
|
value: function getAsciiMap() {
|
|
578
594
|
var _this8 = this;
|
|
579
|
-
if (this.isLoaded()) {
|
|
595
|
+
if (this.isLoaded() && this.isRepositoryAvailable(this.emojiRepository)) {
|
|
580
596
|
return Promise.resolve(this.emojiRepository.getAsciiMap());
|
|
581
597
|
}
|
|
582
598
|
return this.retryIfLoading(function () {
|
|
@@ -587,7 +603,7 @@ var EmojiResource = /*#__PURE__*/function (_ref) {
|
|
|
587
603
|
key: "getFrequentlyUsed",
|
|
588
604
|
value: function getFrequentlyUsed(options) {
|
|
589
605
|
var _this9 = this;
|
|
590
|
-
if (this.isLoaded()) {
|
|
606
|
+
if (this.isLoaded() && this.isRepositoryAvailable(this.emojiRepository)) {
|
|
591
607
|
return Promise.resolve(this.emojiRepository.getFrequentlyUsed(options));
|
|
592
608
|
}
|
|
593
609
|
return this.retryIfLoading(function () {
|
|
@@ -606,7 +622,7 @@ var EmojiResource = /*#__PURE__*/function (_ref) {
|
|
|
606
622
|
key: "recordSelection",
|
|
607
623
|
value: function recordSelection(emoji) {
|
|
608
624
|
var recordConfig = this.recordConfig;
|
|
609
|
-
if (this.emojiRepository) {
|
|
625
|
+
if (this.isRepositoryAvailable(this.emojiRepository)) {
|
|
610
626
|
this.emojiRepository.used(emoji);
|
|
611
627
|
}
|
|
612
628
|
if (recordConfig) {
|
|
@@ -627,9 +643,9 @@ var EmojiResource = /*#__PURE__*/function (_ref) {
|
|
|
627
643
|
key: "deleteSiteEmoji",
|
|
628
644
|
value: function deleteSiteEmoji(emoji) {
|
|
629
645
|
var _this10 = this;
|
|
630
|
-
if (this.siteEmojiResource && emoji.id) {
|
|
646
|
+
if (this.isRepositoryAvailable(this.siteEmojiResource) && emoji.id) {
|
|
631
647
|
return this.siteEmojiResource.deleteEmoji(emoji).then(function (success) {
|
|
632
|
-
if (success && _this10.emojiRepository) {
|
|
648
|
+
if (success && _this10.isRepositoryAvailable(_this10.emojiRepository)) {
|
|
633
649
|
_this10.emojiRepository.delete(emoji);
|
|
634
650
|
return true;
|
|
635
651
|
}
|
|
@@ -669,7 +685,7 @@ var EmojiResource = /*#__PURE__*/function (_ref) {
|
|
|
669
685
|
key: "calculateDynamicCategories",
|
|
670
686
|
value: function calculateDynamicCategories() {
|
|
671
687
|
var _this11 = this;
|
|
672
|
-
if (this.isLoaded()) {
|
|
688
|
+
if (this.isLoaded() && this.isRepositoryAvailable(this.emojiRepository)) {
|
|
673
689
|
return Promise.resolve(this.emojiRepository.getDynamicCategoryList());
|
|
674
690
|
}
|
|
675
691
|
return this.retryIfLoading(function () {
|
|
@@ -684,7 +700,7 @@ var EmojiResource = /*#__PURE__*/function (_ref) {
|
|
|
684
700
|
}, {
|
|
685
701
|
key: "addUnknownEmoji",
|
|
686
702
|
value: function addUnknownEmoji(emoji) {
|
|
687
|
-
if (this.emojiRepository) {
|
|
703
|
+
if (this.isRepositoryAvailable(this.emojiRepository)) {
|
|
688
704
|
this.emojiRepository.addUnknownEmoji(emoji);
|
|
689
705
|
}
|
|
690
706
|
}
|
|
@@ -709,7 +725,7 @@ var UploadingEmojiResource = /*#__PURE__*/function (_EmojiResource) {
|
|
|
709
725
|
if (!this.allowUpload) {
|
|
710
726
|
return Promise.resolve(false);
|
|
711
727
|
}
|
|
712
|
-
if (this.siteEmojiResource) {
|
|
728
|
+
if (this.isRepositoryAvailable(this.siteEmojiResource)) {
|
|
713
729
|
return this.siteEmojiResource.hasUploadToken();
|
|
714
730
|
}
|
|
715
731
|
return this.retryIfLoading(function () {
|
|
@@ -722,7 +738,7 @@ var UploadingEmojiResource = /*#__PURE__*/function (_EmojiResource) {
|
|
|
722
738
|
var _this14 = this;
|
|
723
739
|
var retry = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
|
|
724
740
|
return this.isUploadSupported().then(function (supported) {
|
|
725
|
-
if (!supported || !_this14.siteEmojiResource) {
|
|
741
|
+
if (!supported || !_this14.isRepositoryAvailable(_this14.siteEmojiResource)) {
|
|
726
742
|
return Promise.reject('No media api support is configured');
|
|
727
743
|
}
|
|
728
744
|
return _this14.siteEmojiResource.uploadEmoji(upload, retry).then(function (emoji) {
|
|
@@ -736,7 +752,7 @@ var UploadingEmojiResource = /*#__PURE__*/function (_EmojiResource) {
|
|
|
736
752
|
key: "prepareForUpload",
|
|
737
753
|
value: function prepareForUpload() {
|
|
738
754
|
var _this15 = this;
|
|
739
|
-
if (this.siteEmojiResource) {
|
|
755
|
+
if (this.isRepositoryAvailable(this.siteEmojiResource)) {
|
|
740
756
|
this.siteEmojiResource.prepareForUpload();
|
|
741
757
|
}
|
|
742
758
|
return this.retryIfLoading(function () {
|
|
@@ -57,10 +57,10 @@ var TokenManager = /*#__PURE__*/function () {
|
|
|
57
57
|
// still valid
|
|
58
58
|
return Promise.resolve(mediaApiToken);
|
|
59
59
|
}
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
60
|
+
}
|
|
61
|
+
if (activeTokenRefresh) {
|
|
62
|
+
// refresh token promise already active, return that
|
|
63
|
+
return activeTokenRefresh;
|
|
64
64
|
}
|
|
65
65
|
|
|
66
66
|
// request a new token and track the promise for future requests until completed
|
|
@@ -6,8 +6,8 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
value: true
|
|
7
7
|
});
|
|
8
8
|
exports.default = exports.CachingMediaEmoji = exports.CachingEmoji = void 0;
|
|
9
|
-
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
10
9
|
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
10
|
+
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
11
11
|
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
|
|
12
12
|
var _react = _interopRequireWildcard(require("react"));
|
|
13
13
|
var _typeHelpers = require("../../util/type-helpers");
|
|
@@ -21,7 +21,8 @@ var _constants = require("../../util/constants");
|
|
|
21
21
|
var _ufoExperiences = require("../../util/analytics/ufoExperiences");
|
|
22
22
|
var _useEmoji2 = require("../../hooks/useEmoji");
|
|
23
23
|
var _analytics2 = require("../../util/analytics/analytics");
|
|
24
|
-
var _excluded = ["emoji", "placeholderSize",
|
|
24
|
+
var _excluded = ["emoji", "placeholderSize"],
|
|
25
|
+
_excluded2 = ["emoji", "placeholderSize", "showTooltip", "fitToHeight", "children"];
|
|
25
26
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
26
27
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
27
28
|
/**
|
|
@@ -30,7 +31,9 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
|
|
|
30
31
|
var CachingEmoji = function CachingEmoji(props) {
|
|
31
32
|
// Optimisation to only render CachingMediaEmoji if necessary
|
|
32
33
|
// slight performance hit, which accumulates for a large number of emoji.
|
|
33
|
-
var emoji = props.emoji
|
|
34
|
+
var emoji = props.emoji,
|
|
35
|
+
placeholderSize = props.placeholderSize,
|
|
36
|
+
restProps = (0, _objectWithoutProperties2.default)(props, _excluded);
|
|
34
37
|
// start emoji rendered experience, it may have already started earlier in `ResourcedEmoji`.
|
|
35
38
|
(0, _analytics.useSampledUFOComponentExperience)(_analytics.ufoExperiences['emoji-rendered'].getInstance(emoji.id || emoji.shortName), _constants.SAMPLING_RATE_EMOJI_RENDERED_EXP, {
|
|
36
39
|
source: 'CachingEmoji',
|
|
@@ -44,9 +47,14 @@ var CachingEmoji = function CachingEmoji(props) {
|
|
|
44
47
|
}, []);
|
|
45
48
|
var emojiNode = function emojiNode() {
|
|
46
49
|
if ((0, _typeHelpers.isMediaEmoji)(emoji)) {
|
|
47
|
-
return /*#__PURE__*/_react.default.createElement(CachingMediaEmoji,
|
|
50
|
+
return /*#__PURE__*/_react.default.createElement(CachingMediaEmoji, (0, _extends2.default)({
|
|
51
|
+
emoji: emoji,
|
|
52
|
+
placeholderSize: placeholderSize
|
|
53
|
+
}, restProps));
|
|
48
54
|
}
|
|
49
|
-
return /*#__PURE__*/_react.default.createElement(_Emoji.default,
|
|
55
|
+
return /*#__PURE__*/_react.default.createElement(_Emoji.default, (0, _extends2.default)({
|
|
56
|
+
emoji: emoji
|
|
57
|
+
}, restProps));
|
|
50
58
|
};
|
|
51
59
|
return /*#__PURE__*/_react.default.createElement(_UfoErrorBoundary.UfoErrorBoundary, {
|
|
52
60
|
experiences: [_analytics.ufoExperiences['emoji-rendered'].getInstance(props.emoji.id || props.emoji.shortName)]
|
|
@@ -64,7 +72,7 @@ var CachingMediaEmoji = function CachingMediaEmoji(props) {
|
|
|
64
72
|
showTooltip = props.showTooltip,
|
|
65
73
|
fitToHeight = props.fitToHeight,
|
|
66
74
|
children = props.children,
|
|
67
|
-
restProps = (0, _objectWithoutProperties2.default)(props,
|
|
75
|
+
restProps = (0, _objectWithoutProperties2.default)(props, _excluded2);
|
|
68
76
|
var shortName = emoji.shortName,
|
|
69
77
|
representation = emoji.representation;
|
|
70
78
|
var _useState = (0, _react.useState)(),
|
|
@@ -6,9 +6,10 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
value: true
|
|
7
7
|
});
|
|
8
8
|
exports.default = exports.SpriteEmoji = exports.ImageEmoji = exports.Emoji = void 0;
|
|
9
|
-
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
10
9
|
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
10
|
+
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
11
11
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
12
|
+
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
|
|
12
13
|
var _react = _interopRequireWildcard(require("react"));
|
|
13
14
|
var _react2 = require("@emotion/react");
|
|
14
15
|
var _EmojiUtils = require("../../api/EmojiUtils");
|
|
@@ -22,6 +23,8 @@ var _analytics = require("../../util/analytics");
|
|
|
22
23
|
var _browserSupport = require("../../util/browser-support");
|
|
23
24
|
var _useInView3 = require("../../util/useInView");
|
|
24
25
|
var _ufoExperiences = require("../../util/analytics/ufoExperiences");
|
|
26
|
+
var _excluded = ["emoji", "fitToHeight", "selected", "selectOnHover", "className", "showTooltip", "shouldBeInteractive", "tabIndex", "onSelected", "onMouseMove", "onFocus", "onDelete", "onLoadError", "onLoadSuccess", "showDelete", "disableLazyLoad", "autoWidth"],
|
|
27
|
+
_excluded2 = ["emoji", "fitToHeight", "selected", "selectOnHover", "className", "showTooltip", "showDelete", "shouldBeInteractive", "tabIndex", "onSelected", "onMouseMove", "onFocus", "onDelete", "onLoadError", "onLoadSuccess", "disableLazyLoad", "autoWidth"];
|
|
25
28
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
26
29
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
27
30
|
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
@@ -57,6 +60,13 @@ var handleMouseMove = function handleMouseMove(props, event) {
|
|
|
57
60
|
onMouseMove((0, _typeHelpers.toEmojiId)(emoji), emoji, event);
|
|
58
61
|
}
|
|
59
62
|
};
|
|
63
|
+
var handleFocus = function handleFocus(props, event) {
|
|
64
|
+
var emoji = props.emoji,
|
|
65
|
+
onFocus = props.onFocus;
|
|
66
|
+
if (onFocus) {
|
|
67
|
+
onFocus((0, _typeHelpers.toEmojiId)(emoji), emoji, event);
|
|
68
|
+
}
|
|
69
|
+
};
|
|
60
70
|
var handleDelete = function handleDelete(props, event) {
|
|
61
71
|
var emoji = props.emoji,
|
|
62
72
|
onDelete = props.onDelete;
|
|
@@ -88,7 +98,19 @@ var SpriteEmoji = function SpriteEmoji(props) {
|
|
|
88
98
|
selectOnHover = props.selectOnHover,
|
|
89
99
|
className = props.className,
|
|
90
100
|
showTooltip = props.showTooltip,
|
|
91
|
-
|
|
101
|
+
_props$shouldBeIntera = props.shouldBeInteractive,
|
|
102
|
+
shouldBeInteractive = _props$shouldBeIntera === void 0 ? false : _props$shouldBeIntera,
|
|
103
|
+
tabIndex = props.tabIndex,
|
|
104
|
+
onSelected = props.onSelected,
|
|
105
|
+
onMouseMove = props.onMouseMove,
|
|
106
|
+
onFocus = props.onFocus,
|
|
107
|
+
onDelete = props.onDelete,
|
|
108
|
+
onLoadError = props.onLoadError,
|
|
109
|
+
onLoadSuccess = props.onLoadSuccess,
|
|
110
|
+
showDelete = props.showDelete,
|
|
111
|
+
disableLazyLoad = props.disableLazyLoad,
|
|
112
|
+
autoWidth = props.autoWidth,
|
|
113
|
+
other = (0, _objectWithoutProperties2.default)(props, _excluded);
|
|
92
114
|
var representation = emoji.representation;
|
|
93
115
|
var sprite = representation.sprite;
|
|
94
116
|
var classes = "".concat(_styles.emojiNodeStyles, " ").concat(selected ? _styles.commonSelectedStyles : '', " ").concat(selectOnHover ? _styles.selectOnHoverStyles : '', " ").concat(className ? className : '');
|
|
@@ -108,11 +130,11 @@ var SpriteEmoji = function SpriteEmoji(props) {
|
|
|
108
130
|
backgroundPosition: "".concat(xPositionInPercent, "% ").concat(yPositionInPercent, "%"),
|
|
109
131
|
backgroundSize: "".concat(sprite.column * 100, "% ").concat(sprite.row * 100, "%")
|
|
110
132
|
}, sizing);
|
|
111
|
-
return (0, _react2.jsx)("span", {
|
|
133
|
+
return (0, _react2.jsx)("span", (0, _extends2.default)({
|
|
112
134
|
"data-testid": "sprite-emoji-".concat(emoji.shortName),
|
|
113
135
|
"data-emoji-type": "sprite",
|
|
114
|
-
tabIndex: shouldBeInteractive ? 0 : undefined,
|
|
115
|
-
role: shouldBeInteractive ? 'button' :
|
|
136
|
+
tabIndex: shouldBeInteractive ? tabIndex || 0 : undefined,
|
|
137
|
+
role: shouldBeInteractive ? 'button' : 'img',
|
|
116
138
|
css: _styles.emojiContainer,
|
|
117
139
|
className: classes,
|
|
118
140
|
onKeyPress: function onKeyPress(event) {
|
|
@@ -124,9 +146,12 @@ var SpriteEmoji = function SpriteEmoji(props) {
|
|
|
124
146
|
onMouseEnter: function onMouseEnter(event) {
|
|
125
147
|
handleMouseMove(props, event);
|
|
126
148
|
},
|
|
149
|
+
onFocus: function onFocus(event) {
|
|
150
|
+
handleFocus(props, event);
|
|
151
|
+
},
|
|
127
152
|
"aria-label": emoji.shortName,
|
|
128
153
|
title: showTooltip ? emoji.shortName : ''
|
|
129
|
-
}, (0, _react2.jsx)("span", {
|
|
154
|
+
}, other), (0, _react2.jsx)("span", {
|
|
130
155
|
className: _styles.emojiSprite,
|
|
131
156
|
style: style
|
|
132
157
|
}, "\xA0"));
|
|
@@ -142,10 +167,18 @@ var ImageEmoji = function ImageEmoji(props) {
|
|
|
142
167
|
className = props.className,
|
|
143
168
|
showTooltip = props.showTooltip,
|
|
144
169
|
showDelete = props.showDelete,
|
|
145
|
-
|
|
170
|
+
_props$shouldBeIntera2 = props.shouldBeInteractive,
|
|
171
|
+
shouldBeInteractive = _props$shouldBeIntera2 === void 0 ? false : _props$shouldBeIntera2,
|
|
172
|
+
tabIndex = props.tabIndex,
|
|
173
|
+
onSelected = props.onSelected,
|
|
174
|
+
onMouseMove = props.onMouseMove,
|
|
175
|
+
onFocus = props.onFocus,
|
|
176
|
+
onDelete = props.onDelete,
|
|
177
|
+
onLoadError = props.onLoadError,
|
|
146
178
|
onLoadSuccess = props.onLoadSuccess,
|
|
147
179
|
disableLazyLoad = props.disableLazyLoad,
|
|
148
|
-
autoWidth = props.autoWidth
|
|
180
|
+
autoWidth = props.autoWidth,
|
|
181
|
+
other = (0, _objectWithoutProperties2.default)(props, _excluded2);
|
|
149
182
|
var _useInView = (0, _useInView3.useInView)({
|
|
150
183
|
triggerOnce: true
|
|
151
184
|
}),
|
|
@@ -243,12 +276,12 @@ var ImageEmoji = function ImageEmoji(props) {
|
|
|
243
276
|
onError: onError,
|
|
244
277
|
onLoad: onLoad
|
|
245
278
|
}, sizing));
|
|
246
|
-
return (0, _react2.jsx)("span", {
|
|
279
|
+
return (0, _react2.jsx)("span", (0, _extends2.default)({
|
|
247
280
|
"data-testid": "image-emoji-".concat(emoji.shortName),
|
|
248
281
|
"data-emoji-type": "image",
|
|
249
282
|
css: _styles.emojiStyles,
|
|
250
|
-
tabIndex: shouldBeInteractive ? 0 : undefined,
|
|
251
|
-
role: shouldBeInteractive ? 'button' :
|
|
283
|
+
tabIndex: shouldBeInteractive ? tabIndex || 0 : undefined,
|
|
284
|
+
role: shouldBeInteractive ? 'button' : 'img',
|
|
252
285
|
className: classes,
|
|
253
286
|
onKeyPress: function onKeyPress(event) {
|
|
254
287
|
return handleKeyPress(props, event);
|
|
@@ -259,10 +292,13 @@ var ImageEmoji = function ImageEmoji(props) {
|
|
|
259
292
|
onMouseEnter: function onMouseEnter(event) {
|
|
260
293
|
handleMouseMove(props, event);
|
|
261
294
|
},
|
|
295
|
+
onFocus: function onFocus(event) {
|
|
296
|
+
handleFocus(props, event);
|
|
297
|
+
},
|
|
262
298
|
"aria-label": emoji.shortName,
|
|
263
299
|
title: showTooltip ? emoji.shortName : '',
|
|
264
300
|
ref: ref
|
|
265
|
-
}, deleteButton, emojiNode);
|
|
301
|
+
}, other), deleteButton, emojiNode);
|
|
266
302
|
};
|
|
267
303
|
exports.ImageEmoji = ImageEmoji;
|
|
268
304
|
var Emoji = function Emoji(props) {
|
|
@@ -12,15 +12,16 @@ var _react2 = require("@emotion/react");
|
|
|
12
12
|
var _reactIntlNext = require("react-intl-next");
|
|
13
13
|
var _EmojiDeletePreview = _interopRequireDefault(require("../common/EmojiDeletePreview"));
|
|
14
14
|
var _EmojiUploadPicker = _interopRequireDefault(require("../common/EmojiUploadPicker"));
|
|
15
|
-
var _EmojiPickerListSearch =
|
|
15
|
+
var _EmojiPickerListSearch = require("../picker/EmojiPickerListSearch");
|
|
16
16
|
var _ToneSelector = _interopRequireDefault(require("./ToneSelector"));
|
|
17
|
-
var
|
|
17
|
+
var _TonePreviewButton = _interopRequireDefault(require("./TonePreviewButton"));
|
|
18
18
|
var _i18n = require("../i18n");
|
|
19
19
|
var _standardButton = _interopRequireDefault(require("@atlaskit/button/standard-button"));
|
|
20
20
|
var _add = _interopRequireDefault(require("@atlaskit/icon/glyph/add"));
|
|
21
21
|
var _setSkinToneAriaLabelText = require("./setSkinToneAriaLabelText");
|
|
22
22
|
var _styles = require("./styles");
|
|
23
23
|
var _styles2 = require("../picker/styles");
|
|
24
|
+
var _constants = require("../../util/constants");
|
|
24
25
|
/** @jsx jsx */
|
|
25
26
|
|
|
26
27
|
var emojiActionsTestId = 'emoji-actions';
|
|
@@ -31,8 +32,7 @@ var uploadEmojiTestId = 'upload-emoji';
|
|
|
31
32
|
exports.uploadEmojiTestId = uploadEmojiTestId;
|
|
32
33
|
var AddOwnEmoji = function AddOwnEmoji(props) {
|
|
33
34
|
var onOpenUpload = props.onOpenUpload,
|
|
34
|
-
uploadEnabled = props.uploadEnabled
|
|
35
|
-
formatMessage = props.intl.formatMessage;
|
|
35
|
+
uploadEnabled = props.uploadEnabled;
|
|
36
36
|
return (0, _react2.jsx)(_react.Fragment, null, uploadEnabled && (0, _react2.jsx)("div", {
|
|
37
37
|
css: _styles.addCustomEmoji,
|
|
38
38
|
"data-testid": uploadEmojiTestId
|
|
@@ -40,44 +40,73 @@ var AddOwnEmoji = function AddOwnEmoji(props) {
|
|
|
40
40
|
return (0, _react2.jsx)(_standardButton.default, {
|
|
41
41
|
onClick: onOpenUpload,
|
|
42
42
|
iconBefore: (0, _react2.jsx)(_add.default, {
|
|
43
|
-
label:
|
|
43
|
+
label: "",
|
|
44
44
|
size: "small"
|
|
45
45
|
}),
|
|
46
46
|
appearance: "subtle",
|
|
47
47
|
css: _styles.addCustomEmojiButton,
|
|
48
|
-
className: _styles.emojiPickerAddEmoji
|
|
48
|
+
className: _styles.emojiPickerAddEmoji,
|
|
49
|
+
tabIndex: 0,
|
|
50
|
+
id: "add-custom-emoji"
|
|
49
51
|
}, label);
|
|
50
52
|
})));
|
|
51
53
|
};
|
|
52
54
|
var TonesWrapper = function TonesWrapper(props) {
|
|
53
55
|
var toneEmoji = props.toneEmoji,
|
|
54
|
-
selectedTone = props.selectedTone,
|
|
56
|
+
_props$selectedTone = props.selectedTone,
|
|
57
|
+
selectedTone = _props$selectedTone === void 0 ? _constants.DEFAULT_TONE : _props$selectedTone,
|
|
55
58
|
intl = props.intl,
|
|
56
|
-
onToneSelected = props.onToneSelected,
|
|
57
59
|
onToneOpen = props.onToneOpen,
|
|
58
60
|
showToneSelector = props.showToneSelector;
|
|
59
61
|
var formatMessage = intl.formatMessage;
|
|
62
|
+
var tonePreviewButtonRef = (0, _react.useRef)(null);
|
|
63
|
+
var _useState = (0, _react.useState)(false),
|
|
64
|
+
_useState2 = (0, _slicedToArray2.default)(_useState, 2),
|
|
65
|
+
focusTonePreviewButton = _useState2[0],
|
|
66
|
+
setFocusTonePreviewButton = _useState2[1];
|
|
67
|
+
(0, _react.useEffect)(function () {
|
|
68
|
+
if (focusTonePreviewButton && tonePreviewButtonRef.current) {
|
|
69
|
+
tonePreviewButtonRef.current.focus();
|
|
70
|
+
}
|
|
71
|
+
return function () {
|
|
72
|
+
setFocusTonePreviewButton(false);
|
|
73
|
+
};
|
|
74
|
+
});
|
|
75
|
+
var onToneCloseHandler = function onToneCloseHandler() {
|
|
76
|
+
var onToneClose = props.onToneClose;
|
|
77
|
+
onToneClose();
|
|
78
|
+
setFocusTonePreviewButton(true);
|
|
79
|
+
};
|
|
80
|
+
var onToneSelectedHandler = function onToneSelectedHandler(toneValue) {
|
|
81
|
+
var onToneSelected = props.onToneSelected;
|
|
82
|
+
onToneSelected(toneValue);
|
|
83
|
+
setFocusTonePreviewButton(true);
|
|
84
|
+
};
|
|
60
85
|
if (!toneEmoji) {
|
|
61
86
|
return null;
|
|
62
87
|
}
|
|
63
|
-
var
|
|
64
|
-
if (selectedTone &&
|
|
65
|
-
|
|
88
|
+
var previewToneEmoji = toneEmoji;
|
|
89
|
+
if (selectedTone !== _constants.DEFAULT_TONE && previewToneEmoji.skinVariations) {
|
|
90
|
+
previewToneEmoji = previewToneEmoji.skinVariations[selectedTone - 1];
|
|
66
91
|
}
|
|
67
92
|
return (0, _react2.jsx)("div", {
|
|
68
93
|
css: _styles.emojiToneSelectorContainer
|
|
69
|
-
},
|
|
94
|
+
}, (0, _react2.jsx)(_ToneSelector.default, {
|
|
70
95
|
emoji: toneEmoji,
|
|
71
|
-
onToneSelected:
|
|
72
|
-
|
|
73
|
-
|
|
96
|
+
onToneSelected: onToneSelectedHandler,
|
|
97
|
+
onToneClose: onToneCloseHandler,
|
|
98
|
+
selectedTone: selectedTone,
|
|
99
|
+
isVisible: showToneSelector
|
|
100
|
+
}), (0, _react2.jsx)(_TonePreviewButton.default, {
|
|
101
|
+
ref: tonePreviewButtonRef,
|
|
74
102
|
ariaExpanded: showToneSelector,
|
|
75
|
-
emoji:
|
|
103
|
+
emoji: previewToneEmoji,
|
|
76
104
|
selectOnHover: true,
|
|
77
105
|
onSelected: onToneOpen,
|
|
78
106
|
ariaLabelText: formatMessage(_i18n.messages.emojiSelectSkinToneButtonAriaLabelText, {
|
|
79
|
-
selectedTone: "".concat((0, _setSkinToneAriaLabelText.setSkinToneAriaLabelText)(
|
|
80
|
-
})
|
|
107
|
+
selectedTone: "".concat((0, _setSkinToneAriaLabelText.setSkinToneAriaLabelText)(previewToneEmoji.name))
|
|
108
|
+
}),
|
|
109
|
+
isVisible: !showToneSelector
|
|
81
110
|
}));
|
|
82
111
|
};
|
|
83
112
|
var EmojiActions = function EmojiActions(props) {
|
|
@@ -93,15 +122,20 @@ var EmojiActions = function EmojiActions(props) {
|
|
|
93
122
|
onFileChooserClicked = props.onFileChooserClicked,
|
|
94
123
|
emojiToDelete = props.emojiToDelete,
|
|
95
124
|
onChange = props.onChange,
|
|
96
|
-
query = props.query
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
125
|
+
query = props.query,
|
|
126
|
+
_props$resultsCount = props.resultsCount,
|
|
127
|
+
resultsCount = _props$resultsCount === void 0 ? 0 : _props$resultsCount;
|
|
128
|
+
var _useState3 = (0, _react.useState)(false),
|
|
129
|
+
_useState4 = (0, _slicedToArray2.default)(_useState3, 2),
|
|
130
|
+
showToneSelector = _useState4[0],
|
|
131
|
+
setShowToneSelector = _useState4[1];
|
|
101
132
|
var previewFooterClassnames = [_styles2.emojiPickerFooter, _styles2.emojiActionsContainerWithBottomShadow];
|
|
102
133
|
var onToneOpenHandler = function onToneOpenHandler() {
|
|
103
134
|
return setShowToneSelector(true);
|
|
104
135
|
};
|
|
136
|
+
var onToneCloseHandler = function onToneCloseHandler() {
|
|
137
|
+
return setShowToneSelector(false);
|
|
138
|
+
};
|
|
105
139
|
var onToneSelectedHandler = function onToneSelectedHandler(toneValue) {
|
|
106
140
|
setShowToneSelector(false);
|
|
107
141
|
if (onToneSelected) {
|
|
@@ -140,15 +174,17 @@ var EmojiActions = function EmojiActions(props) {
|
|
|
140
174
|
onMouseLeave: onMouseLeaveHandler
|
|
141
175
|
}, (0, _react2.jsx)("div", {
|
|
142
176
|
css: _styles.emojiActionsWrapper
|
|
143
|
-
}, !showToneSelector && (0, _react2.jsx)(_EmojiPickerListSearch.
|
|
177
|
+
}, !showToneSelector && (0, _react2.jsx)(_EmojiPickerListSearch.EmojiPickerListSearch, {
|
|
144
178
|
onChange: onChange,
|
|
145
|
-
query: query
|
|
179
|
+
query: query,
|
|
180
|
+
resultsCount: resultsCount
|
|
146
181
|
}), (0, _react2.jsx)(TonesWrapper, (0, _extends2.default)({}, props, {
|
|
147
182
|
onToneOpen: onToneOpenHandler,
|
|
183
|
+
onToneClose: onToneCloseHandler,
|
|
148
184
|
onToneSelected: onToneSelectedHandler,
|
|
149
185
|
showToneSelector: showToneSelector
|
|
150
186
|
}))), (0, _react2.jsx)(AddOwnEmoji, props));
|
|
151
187
|
};
|
|
152
188
|
exports.EmojiActions = EmojiActions;
|
|
153
|
-
var _default = (0, _reactIntlNext.injectIntl)(EmojiActions);
|
|
189
|
+
var _default = (0, _reactIntlNext.injectIntl)( /*#__PURE__*/(0, _react.memo)(EmojiActions));
|
|
154
190
|
exports.default = _default;
|