@atlaskit/emoji 70.6.2 → 70.7.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 +13 -0
- package/afm-cc/tsconfig.json +6 -0
- package/afm-products/tsconfig.json +6 -0
- package/dist/cjs/api/EmojiResource.js +23 -1
- package/dist/cjs/components/common/EmojiErrorMessage.js +5 -1
- package/dist/cjs/components/common/EmojiUploadPicker.compiled.css +3 -1
- package/dist/cjs/components/common/EmojiUploadPicker.js +28 -18
- package/dist/cjs/components/common/FileChooser.compiled.css +3 -3
- package/dist/cjs/components/common/FileChooser.js +2 -2
- package/dist/cjs/components/i18n.js +5 -0
- package/dist/cjs/components/picker/EmojiPickerComponent.js +54 -15
- package/dist/cjs/util/analytics/analytics.js +1 -1
- package/dist/es2019/api/EmojiResource.js +19 -1
- package/dist/es2019/components/common/EmojiErrorMessage.js +5 -1
- package/dist/es2019/components/common/EmojiUploadPicker.compiled.css +3 -1
- package/dist/es2019/components/common/EmojiUploadPicker.js +23 -12
- package/dist/es2019/components/common/FileChooser.compiled.css +3 -3
- package/dist/es2019/components/common/FileChooser.js +2 -2
- package/dist/es2019/components/i18n.js +5 -0
- package/dist/es2019/components/picker/EmojiPickerComponent.js +16 -1
- package/dist/es2019/util/analytics/analytics.js +1 -1
- package/dist/esm/api/EmojiResource.js +24 -2
- package/dist/esm/components/common/EmojiErrorMessage.js +5 -1
- package/dist/esm/components/common/EmojiUploadPicker.compiled.css +3 -1
- package/dist/esm/components/common/EmojiUploadPicker.js +29 -18
- package/dist/esm/components/common/FileChooser.compiled.css +3 -3
- package/dist/esm/components/common/FileChooser.js +2 -2
- package/dist/esm/components/i18n.js +5 -0
- package/dist/esm/components/picker/EmojiPickerComponent.js +54 -15
- package/dist/esm/util/analytics/analytics.js +1 -1
- package/dist/types/components/i18n.d.ts +99 -94
- package/dist/types-ts4.5/components/i18n.d.ts +99 -94
- package/package.json +8 -3
|
@@ -100,11 +100,11 @@ const FileChooser = props => {
|
|
|
100
100
|
"data-testid": dropzoneTestId,
|
|
101
101
|
role: "region",
|
|
102
102
|
"aria-label": label,
|
|
103
|
-
className: ax(["_zulpu2gc _2rko1qi0 _189ee4h9 _1dqogq9o _1h6d1l7x _1e0c1txw _2lx21bp4 _4cvr1h6o _1bah1h6o _4t3i7l9q _u5f3utpp _19bvutpp _bfhkhfxm _80omtlke _k8m01rje
|
|
103
|
+
className: ax(["_zulpu2gc _2rko1qi0 _189ee4h9 _1dqogq9o _1h6d1l7x _1e0c1txw _2lx21bp4 _4cvr1h6o _1bah1h6o _4t3i7l9q _u5f3utpp _19bvutpp _bfhkhfxm _80omtlke _k8m01rje _1oec1ign _6fl4574g", isDragging && "_1h6dq98m _bfhkufnl"])
|
|
104
104
|
}, previewImage ? /*#__PURE__*/React.createElement("img", {
|
|
105
105
|
src: previewImage,
|
|
106
106
|
alt: previewAlt,
|
|
107
|
-
className: ax(["
|
|
107
|
+
className: ax(["_c71l1j4a _p12f1osq _5ral1f51"])
|
|
108
108
|
}) : /*#__PURE__*/React.createElement(Button, {
|
|
109
109
|
onClick: handleOnChooseFile,
|
|
110
110
|
isDisabled: isDisabled,
|
|
@@ -210,6 +210,11 @@ export const messages = defineMessages({
|
|
|
210
210
|
defaultMessage: 'Selected image is more than 1 MB',
|
|
211
211
|
description: 'Error message for image too big, beyond the size limit'
|
|
212
212
|
},
|
|
213
|
+
emojiDuplicateName: {
|
|
214
|
+
id: 'fabric.emoji.error.duplicate.name',
|
|
215
|
+
defaultMessage: 'An emoji with this name exists already',
|
|
216
|
+
description: 'Error message shown when the user tries to upload an emoji with a name that already exists in the custom emoji set'
|
|
217
|
+
},
|
|
213
218
|
emojiPickerTitle: {
|
|
214
219
|
id: 'fabric.emoji.picker',
|
|
215
220
|
defaultMessage: 'Emoji picker',
|
|
@@ -4,6 +4,7 @@ import * as React from 'react';
|
|
|
4
4
|
import { ax, ix } from "@compiled/react/runtime";
|
|
5
5
|
import { useCallback, useEffect, useMemo, useRef, useState, createRef, memo } from 'react';
|
|
6
6
|
import { fg } from '@atlaskit/platform-feature-flags';
|
|
7
|
+
import { getDocument } from '@atlaskit/browser-apis';
|
|
7
8
|
import { unstable_batchedUpdates as batchedUpdates } from 'react-dom';
|
|
8
9
|
import { FormattedMessage, useIntl } from 'react-intl';
|
|
9
10
|
import { getEmojiVariation } from '../../api/EmojiRepository';
|
|
@@ -117,6 +118,12 @@ const EmojiPickerComponent = ({
|
|
|
117
118
|
setUploadErrorMessage(undefined);
|
|
118
119
|
});
|
|
119
120
|
fireAnalytics(uploadCancelButton());
|
|
121
|
+
if (fg('platform_emoji_picker_refresh')) {
|
|
122
|
+
setTimeout(() => {
|
|
123
|
+
var _getDocument, _getDocument$getEleme;
|
|
124
|
+
(_getDocument = getDocument()) === null || _getDocument === void 0 ? void 0 : (_getDocument$getEleme = _getDocument.getElementById('add-custom-emoji')) === null || _getDocument$getEleme === void 0 ? void 0 : _getDocument$getEleme.focus();
|
|
125
|
+
}, 0);
|
|
126
|
+
}
|
|
120
127
|
}, [fireAnalytics]);
|
|
121
128
|
const getDynamicCategories = useCallback(() => {
|
|
122
129
|
if (!emojiProvider.calculateDynamicCategories) {
|
|
@@ -328,7 +335,7 @@ const EmojiPickerComponent = ({
|
|
|
328
335
|
}, 0);
|
|
329
336
|
}
|
|
330
337
|
}, [emojiPickerList]);
|
|
331
|
-
const onUploadEmoji = useCallback((upload, retry) => {
|
|
338
|
+
const onUploadEmoji = useCallback(async (upload, retry) => {
|
|
332
339
|
fireAnalytics(uploadConfirmButton({
|
|
333
340
|
retry
|
|
334
341
|
}));
|
|
@@ -343,6 +350,14 @@ const EmojiPickerComponent = ({
|
|
|
343
350
|
});
|
|
344
351
|
scrollToUploadedEmoji(emojiDescription);
|
|
345
352
|
};
|
|
353
|
+
if (fg('platform_emoji_picker_refresh')) {
|
|
354
|
+
const uploadShortName = `:${upload.name.toLowerCase()}:`;
|
|
355
|
+
const existing = await emojiProvider.findByShortName(uploadShortName);
|
|
356
|
+
if (existing) {
|
|
357
|
+
errorSetter(messages.emojiDuplicateName);
|
|
358
|
+
return;
|
|
359
|
+
}
|
|
360
|
+
}
|
|
346
361
|
uploadEmoji(upload, emojiProvider, errorSetter, onSuccess, fireAnalytics, retry);
|
|
347
362
|
}, [emojiProvider, fireAnalytics, scrollToUploadedEmoji]);
|
|
348
363
|
const onTriggerDelete = useCallback((_emojiId, emoji) => {
|
|
@@ -6,9 +6,9 @@ import _getPrototypeOf from "@babel/runtime/helpers/getPrototypeOf";
|
|
|
6
6
|
import _get from "@babel/runtime/helpers/get";
|
|
7
7
|
import _inherits from "@babel/runtime/helpers/inherits";
|
|
8
8
|
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
9
|
+
import _regeneratorRuntime from "@babel/runtime/regenerator";
|
|
9
10
|
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
10
11
|
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
11
|
-
import _regeneratorRuntime from "@babel/runtime/regenerator";
|
|
12
12
|
function _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }
|
|
13
13
|
function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
|
|
14
14
|
function _superPropGet(t, o, e, r) { var p = _get(_getPrototypeOf(1 & r ? t.prototype : t), o, e); return 2 & r && "function" == typeof p ? function (t) { return p.apply(e, t); } : p; }
|
|
@@ -61,7 +61,29 @@ export var EmojiResource = /*#__PURE__*/function (_ref) {
|
|
|
61
61
|
_defineProperty(_this, "isLoaded", function () {
|
|
62
62
|
return _this.initialLoaders !== 0 && _this.activeLoaders === 0;
|
|
63
63
|
});
|
|
64
|
-
|
|
64
|
+
var rewriteEmojiGatewayPath = function rewriteEmojiGatewayPath(url) {
|
|
65
|
+
return url.replace('/gateway/api/emoji', '/gateway/api/elements/emoji');
|
|
66
|
+
};
|
|
67
|
+
var stargateEmojiPathEnabled = fg('use-elements-stargate-emoji-path');
|
|
68
|
+
var singleEmojiApi = config.singleEmojiApi;
|
|
69
|
+
var optimisticImageApi = config.optimisticImageApi;
|
|
70
|
+
_this.emojiProviderConfig = stargateEmojiPathEnabled ? _objectSpread(_objectSpread({}, config), {}, {
|
|
71
|
+
providers: config.providers.map(function (provider) {
|
|
72
|
+
return _objectSpread(_objectSpread({}, provider), {}, {
|
|
73
|
+
url: rewriteEmojiGatewayPath(provider.url)
|
|
74
|
+
});
|
|
75
|
+
}),
|
|
76
|
+
singleEmojiApi: singleEmojiApi ? _objectSpread(_objectSpread({}, singleEmojiApi), {}, {
|
|
77
|
+
getUrl: function getUrl(emojiId) {
|
|
78
|
+
return rewriteEmojiGatewayPath(singleEmojiApi.getUrl(emojiId));
|
|
79
|
+
}
|
|
80
|
+
}) : undefined,
|
|
81
|
+
optimisticImageApi: optimisticImageApi ? _objectSpread(_objectSpread({}, optimisticImageApi), {}, {
|
|
82
|
+
getUrl: function getUrl(emojiId) {
|
|
83
|
+
return rewriteEmojiGatewayPath(optimisticImageApi.getUrl(emojiId));
|
|
84
|
+
}
|
|
85
|
+
}) : undefined
|
|
86
|
+
}) : config;
|
|
65
87
|
_this.recordConfig = config.recordConfig;
|
|
66
88
|
_this.currentUser = config.currentUser;
|
|
67
89
|
if (storageAvailable('localStorage')) {
|
|
@@ -2,8 +2,10 @@
|
|
|
2
2
|
import "./EmojiErrorMessage.compiled.css";
|
|
3
3
|
import * as React from 'react';
|
|
4
4
|
import { ax, ix } from "@compiled/react/runtime";
|
|
5
|
+
import { fg } from '@atlaskit/platform-feature-flags';
|
|
5
6
|
import Tooltip from '@atlaskit/tooltip';
|
|
6
7
|
import ErrorIcon from '@atlaskit/icon/core/status-error';
|
|
8
|
+
import { ErrorMessage } from '@atlaskit/form';
|
|
7
9
|
import { useIntl } from 'react-intl';
|
|
8
10
|
import { messages } from '../i18n';
|
|
9
11
|
var errorMessageStyles = {
|
|
@@ -33,7 +35,9 @@ var EmojiErrorMessage = function EmojiErrorMessage(props) {
|
|
|
33
35
|
label: formatMessage(messages.error),
|
|
34
36
|
spacing: "spacious",
|
|
35
37
|
testId: emojiErrorIconTestId
|
|
36
|
-
}))) : /*#__PURE__*/React.createElement("div", {
|
|
38
|
+
}))) : fg('platform_emoji_picker_refresh') ? /*#__PURE__*/React.createElement("div", {
|
|
39
|
+
"data-testid": emojiErrorMessageTestId
|
|
40
|
+
}, /*#__PURE__*/React.createElement(ErrorMessage, null, message)) : /*#__PURE__*/React.createElement("div", {
|
|
37
41
|
"data-testid": emojiErrorMessageTestId,
|
|
38
42
|
className: ax([errorMessageStyles[errorStyle]])
|
|
39
43
|
}, /*#__PURE__*/React.createElement(ErrorIcon, {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
._11c8wadc{font:var(--ds-font-body-small,normal 400 9pt/1pc "Atlassian Sans",ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",Ubuntu,"Helvetica Neue",sans-serif)}
|
|
2
2
|
._scffidpf input{border:0}
|
|
3
|
-
.
|
|
3
|
+
._zulp12x7{gap:var(--ds-space-075,6px)}
|
|
4
4
|
._zulpu2gc{gap:var(--ds-space-100,8px)}
|
|
5
5
|
._16jlkb7n{flex-grow:1}
|
|
6
6
|
._19bvpxbi{padding-left:var(--ds-space-200,1pc)}
|
|
@@ -11,6 +11,7 @@
|
|
|
11
11
|
._1e0c1txw{display:flex}
|
|
12
12
|
._1o9zkb7n{flex-shrink:1}
|
|
13
13
|
._1rwq1j28 input{background-color:transparent}
|
|
14
|
+
._1tker0r7{min-height:250px}
|
|
14
15
|
._1w90azsu._1w90azsu{color:var(--ds-text-subtle,#505258)}
|
|
15
16
|
._2lx21bp4{flex-direction:column}
|
|
16
17
|
._34ir1o36 input{outline-width:medium}
|
|
@@ -26,6 +27,7 @@
|
|
|
26
27
|
._k48p1pd9{font-weight:var(--ds-font-weight-semibold,600)}
|
|
27
28
|
._n3td1ejb{padding-bottom:var(--ds-space-300,24px)}
|
|
28
29
|
._n3tdu2gc{padding-bottom:var(--ds-space-100,8px)}
|
|
30
|
+
._n3tdv77o{padding-bottom:var(--ds-space-025,2px)}
|
|
29
31
|
._u5f3pxbi{padding-right:var(--ds-space-200,1pc)}
|
|
30
32
|
._u5f3u2gc{padding-right:var(--ds-space-100,8px)}
|
|
31
33
|
._xmji1r31 input{outline-color:currentColor}
|
|
@@ -21,11 +21,14 @@ import FileChooser from './FileChooser';
|
|
|
21
21
|
import { UploadStatus } from './internal-types';
|
|
22
22
|
import { fg } from '@atlaskit/platform-feature-flags';
|
|
23
23
|
import Button from '@atlaskit/button/new';
|
|
24
|
+
import { Box } from '@atlaskit/primitives/compiled';
|
|
25
|
+
import { getDocument } from '@atlaskit/browser-apis';
|
|
24
26
|
var closeEmojiUploadButton = null;
|
|
25
27
|
var uploadAddRowNew = null;
|
|
26
28
|
var emojiUpload = null;
|
|
27
29
|
var emojiUploadNew = null;
|
|
28
30
|
var emojiUploadTop = null;
|
|
31
|
+
var emojiUploadTopNew = null;
|
|
29
32
|
var labelStyles = null;
|
|
30
33
|
var uploadChooseFileEmojiName = null;
|
|
31
34
|
var uploadChooseFileMessage = null;
|
|
@@ -56,6 +59,7 @@ var ChooseEmojiFile = /*#__PURE__*/memo(function (props) {
|
|
|
56
59
|
onUploadCancelled = props.onUploadCancelled,
|
|
57
60
|
onAddEmoji = props.onAddEmoji,
|
|
58
61
|
errorMessage = props.errorMessage,
|
|
62
|
+
nameErrorMessage = props.nameErrorMessage,
|
|
59
63
|
previewImage = props.previewImage,
|
|
60
64
|
uploadStatus = props.uploadStatus,
|
|
61
65
|
intl = props.intl;
|
|
@@ -84,13 +88,13 @@ var ChooseEmojiFile = /*#__PURE__*/memo(function (props) {
|
|
|
84
88
|
"data-testid": uploadEmojiComponentTestId,
|
|
85
89
|
className: ax(["_ca0qu2gc _u5f3pxbi _n3tdu2gc _19bvpxbi _1e0c1txw _2lx21bp4 _1bah1b1v"])
|
|
86
90
|
}, /*#__PURE__*/React.createElement("div", {
|
|
87
|
-
className: ax(["_11c8wadc
|
|
91
|
+
className: ax(["_11c8wadc _n3tdv77o _1e0c1txw _1bah1yb4 _4cvresu3"])
|
|
88
92
|
}, /*#__PURE__*/React.createElement("label", {
|
|
89
93
|
htmlFor: "new-emoji-name-input",
|
|
90
94
|
className: ax(["_1w90azsu", "_11c8wadc _k48p1pd9"])
|
|
91
95
|
}, previewImage ? /*#__PURE__*/React.createElement(FormattedMessage, messages.emojiPreviewTitle) : /*#__PURE__*/React.createElement(FormattedMessage, messages.addCustomEmojiLabel))), /*#__PURE__*/React.createElement("div", {
|
|
92
|
-
className: ax(["
|
|
93
|
-
}, /*#__PURE__*/React.createElement(
|
|
96
|
+
className: ax(["_zulp12x7 _1e0c1txw _2lx21bp4 _1tker0r7"])
|
|
97
|
+
}, /*#__PURE__*/React.createElement(Box, null, /*#__PURE__*/React.createElement(FormattedMessage, messages.emojiChooseFileScreenReaderDescription, function () {
|
|
94
98
|
return /*#__PURE__*/React.createElement(FileChooser, {
|
|
95
99
|
label: emojiChooseFileTitle,
|
|
96
100
|
onChange: onChooseFile,
|
|
@@ -100,7 +104,12 @@ var ChooseEmojiFile = /*#__PURE__*/memo(function (props) {
|
|
|
100
104
|
previewImage: previewImage,
|
|
101
105
|
previewAlt: name
|
|
102
106
|
});
|
|
103
|
-
})
|
|
107
|
+
}), /*#__PURE__*/React.createElement("div", {
|
|
108
|
+
id: fileChooserButtonDescriptionId
|
|
109
|
+
}, errorMessage && /*#__PURE__*/React.createElement(EmojiErrorMessage, {
|
|
110
|
+
errorStyle: "chooseFile",
|
|
111
|
+
message: errorMessage
|
|
112
|
+
}))), /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement("label", {
|
|
104
113
|
htmlFor: "new-emoji-name-input",
|
|
105
114
|
className: ax(["_1w90azsu", "_11c8wadc _k48p1pd9"])
|
|
106
115
|
}, /*#__PURE__*/React.createElement(FormattedMessage, messages.emojiNameLabel)), /*#__PURE__*/React.createElement(TextField, {
|
|
@@ -112,16 +121,15 @@ var ChooseEmojiFile = /*#__PURE__*/memo(function (props) {
|
|
|
112
121
|
value: name,
|
|
113
122
|
isCompact: true,
|
|
114
123
|
autoFocus: true,
|
|
124
|
+
isInvalid: !!nameErrorMessage,
|
|
115
125
|
testId: uploadEmojiNameInputTestId,
|
|
116
126
|
ref: inputRef,
|
|
117
127
|
id: "new-emoji-name-input",
|
|
118
128
|
"aria-required": true
|
|
119
|
-
})
|
|
120
|
-
id: fileChooserButtonDescriptionId
|
|
121
|
-
}, errorMessage && /*#__PURE__*/React.createElement(EmojiErrorMessage, {
|
|
129
|
+
}), nameErrorMessage && /*#__PURE__*/React.createElement(EmojiErrorMessage, {
|
|
122
130
|
errorStyle: "chooseFile",
|
|
123
|
-
message:
|
|
124
|
-
})), /*#__PURE__*/React.createElement("div", {
|
|
131
|
+
message: nameErrorMessage
|
|
132
|
+
}))), /*#__PURE__*/React.createElement("div", {
|
|
125
133
|
className: ax(["_zulpu2gc _1e0c1txw _1bahesu3 _4cvr1h6o _ca0qpxbi _n3td1ejb"])
|
|
126
134
|
}, /*#__PURE__*/React.createElement(Button, {
|
|
127
135
|
onClick: onUploadCancelled,
|
|
@@ -299,18 +307,19 @@ var EmojiUploadPicker = function EmojiUploadPicker(props) {
|
|
|
299
307
|
return ImageUtil.parseImage(f.target.result);
|
|
300
308
|
case 4:
|
|
301
309
|
setPreviewImage(f.target.result);
|
|
302
|
-
|
|
310
|
+
setChooseEmojiErrorMessage(undefined);
|
|
311
|
+
_context.next = 12;
|
|
303
312
|
break;
|
|
304
|
-
case
|
|
305
|
-
_context.prev =
|
|
313
|
+
case 8:
|
|
314
|
+
_context.prev = 8;
|
|
306
315
|
_context.t0 = _context["catch"](0);
|
|
307
316
|
setChooseEmojiErrorMessage( /*#__PURE__*/React.createElement(FormattedMessage, messages.emojiInvalidImage));
|
|
308
317
|
cancelChooseFile();
|
|
309
|
-
case
|
|
318
|
+
case 12:
|
|
310
319
|
case "end":
|
|
311
320
|
return _context.stop();
|
|
312
321
|
}
|
|
313
|
-
}, _callee, null, [[0,
|
|
322
|
+
}, _callee, null, [[0, 8]]);
|
|
314
323
|
}));
|
|
315
324
|
return function (_x) {
|
|
316
325
|
return _ref.apply(this, arguments);
|
|
@@ -342,15 +351,16 @@ var EmojiUploadPicker = function EmojiUploadPicker(props) {
|
|
|
342
351
|
// using setTimeout here to allow the UI to update before setting focus
|
|
343
352
|
setTimeout(function (lastFocus) {
|
|
344
353
|
if (lastFocus) {
|
|
345
|
-
var
|
|
346
|
-
(
|
|
354
|
+
var _getDocument;
|
|
355
|
+
(_getDocument = getDocument()) === null || _getDocument === void 0 || (_getDocument = _getDocument.getElementById(lastFocus)) === null || _getDocument === void 0 || _getDocument.focus();
|
|
347
356
|
}
|
|
348
357
|
}, 0, lastFocusedElementId.current);
|
|
349
358
|
}, [clearUploadPicker, onUploadCancelled]);
|
|
350
359
|
var onChooseFileClicked = function onChooseFileClicked() {
|
|
351
360
|
onFileChooserClicked && onFileChooserClicked();
|
|
352
361
|
};
|
|
353
|
-
var
|
|
362
|
+
var isDuplicateNameError = errorMessage !== null && errorMessage !== undefined && fg('platform_emoji_picker_refresh');
|
|
363
|
+
var content = name && previewImage && !fg('platform_emoji_picker_refresh') ? /*#__PURE__*/React.createElement(EmojiUploadPreview, {
|
|
354
364
|
errorMessage: errorMessage,
|
|
355
365
|
name: name,
|
|
356
366
|
onAddEmoji: onAddEmoji,
|
|
@@ -367,9 +377,10 @@ var EmojiUploadPicker = function EmojiUploadPicker(props) {
|
|
|
367
377
|
previewImage: previewImage,
|
|
368
378
|
uploadStatus: uploadStatus,
|
|
369
379
|
errorMessage: chooseEmojiErrorMessage,
|
|
380
|
+
nameErrorMessage: isDuplicateNameError ? errorMessage : undefined,
|
|
370
381
|
intl: intl
|
|
371
382
|
});
|
|
372
|
-
return disableFocusLock ? content : /*#__PURE__*/React.createElement(FocusLock, {
|
|
383
|
+
return disableFocusLock || fg('platform_emoji_picker_refresh') ? content : /*#__PURE__*/React.createElement(FocusLock, {
|
|
373
384
|
noFocusGuards: true
|
|
374
385
|
}, content);
|
|
375
386
|
};
|
|
@@ -7,16 +7,16 @@
|
|
|
7
7
|
._19bvutpp{padding-left:var(--ds-space-150,9pt)}
|
|
8
8
|
._1bah1h6o{justify-content:center}
|
|
9
9
|
._1e0c1txw{display:flex}
|
|
10
|
-
.
|
|
10
|
+
._1oec1ign{transition-duration:var(--ds-duration-short,.15s)}
|
|
11
11
|
._2lx21bp4{flex-direction:column}
|
|
12
12
|
._4cvr1h6o{align-items:center}
|
|
13
13
|
._4t3i7l9q{height:170px}
|
|
14
14
|
._5ral1f51{object-fit:contain}
|
|
15
|
-
.
|
|
15
|
+
._6fl4574g{transition-timing-function:var(--ds-easing-out-practical,ease)}
|
|
16
16
|
._80omtlke{cursor:pointer}
|
|
17
17
|
._bfhkhfxm{background-color:var(--ds-surface-sunken,#f8f8f8)}
|
|
18
18
|
._bfhkufnl{background-color:var(--ds-background-selected-hovered,#cfe1fd)}
|
|
19
|
-
.
|
|
19
|
+
._c71l1j4a{max-height:130px}
|
|
20
20
|
._k8m01rje{transition-property:background-color,border-color}
|
|
21
21
|
._p12f1osq{max-width:100%}
|
|
22
22
|
._u5f3utpp{padding-right:var(--ds-space-150,9pt)}
|
|
@@ -105,11 +105,11 @@ var FileChooser = function FileChooser(props) {
|
|
|
105
105
|
"data-testid": dropzoneTestId,
|
|
106
106
|
role: "region",
|
|
107
107
|
"aria-label": label,
|
|
108
|
-
className: ax(["_zulpu2gc _2rko1qi0 _189ee4h9 _1dqogq9o _1h6d1l7x _1e0c1txw _2lx21bp4 _4cvr1h6o _1bah1h6o _4t3i7l9q _u5f3utpp _19bvutpp _bfhkhfxm _80omtlke _k8m01rje
|
|
108
|
+
className: ax(["_zulpu2gc _2rko1qi0 _189ee4h9 _1dqogq9o _1h6d1l7x _1e0c1txw _2lx21bp4 _4cvr1h6o _1bah1h6o _4t3i7l9q _u5f3utpp _19bvutpp _bfhkhfxm _80omtlke _k8m01rje _1oec1ign _6fl4574g", isDragging && "_1h6dq98m _bfhkufnl"])
|
|
109
109
|
}, previewImage ? /*#__PURE__*/React.createElement("img", {
|
|
110
110
|
src: previewImage,
|
|
111
111
|
alt: previewAlt,
|
|
112
|
-
className: ax(["
|
|
112
|
+
className: ax(["_c71l1j4a _p12f1osq _5ral1f51"])
|
|
113
113
|
}) : /*#__PURE__*/React.createElement(Button, {
|
|
114
114
|
onClick: handleOnChooseFile,
|
|
115
115
|
isDisabled: isDisabled,
|
|
@@ -210,6 +210,11 @@ export var messages = defineMessages({
|
|
|
210
210
|
defaultMessage: 'Selected image is more than 1 MB',
|
|
211
211
|
description: 'Error message for image too big, beyond the size limit'
|
|
212
212
|
},
|
|
213
|
+
emojiDuplicateName: {
|
|
214
|
+
id: 'fabric.emoji.error.duplicate.name',
|
|
215
|
+
defaultMessage: 'An emoji with this name exists already',
|
|
216
|
+
description: 'Error message shown when the user tries to upload an emoji with a name that already exists in the custom emoji set'
|
|
217
|
+
},
|
|
213
218
|
emojiPickerTitle: {
|
|
214
219
|
id: 'fabric.emoji.picker',
|
|
215
220
|
defaultMessage: 'Emoji picker',
|
|
@@ -1,14 +1,17 @@
|
|
|
1
1
|
/* EmojiPickerComponent.tsx generated by @compiled/babel-plugin v0.39.1 */
|
|
2
|
+
import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
|
|
2
3
|
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
3
4
|
import _toConsumableArray from "@babel/runtime/helpers/toConsumableArray";
|
|
4
5
|
import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
|
|
5
6
|
import "./EmojiPickerComponent.compiled.css";
|
|
6
7
|
import * as React from 'react';
|
|
7
8
|
import { ax, ix } from "@compiled/react/runtime";
|
|
9
|
+
import _regeneratorRuntime from "@babel/runtime/regenerator";
|
|
8
10
|
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
9
11
|
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
10
12
|
import { useCallback, useEffect, useMemo, useRef, useState, createRef, memo } from 'react';
|
|
11
13
|
import { fg } from '@atlaskit/platform-feature-flags';
|
|
14
|
+
import { getDocument } from '@atlaskit/browser-apis';
|
|
12
15
|
import { unstable_batchedUpdates as batchedUpdates } from 'react-dom';
|
|
13
16
|
import { FormattedMessage, useIntl } from 'react-intl';
|
|
14
17
|
import { getEmojiVariation } from '../../api/EmojiRepository';
|
|
@@ -164,6 +167,12 @@ var EmojiPickerComponent = function EmojiPickerComponent(_ref) {
|
|
|
164
167
|
setUploadErrorMessage(undefined);
|
|
165
168
|
});
|
|
166
169
|
fireAnalytics(uploadCancelButton());
|
|
170
|
+
if (fg('platform_emoji_picker_refresh')) {
|
|
171
|
+
setTimeout(function () {
|
|
172
|
+
var _getDocument;
|
|
173
|
+
(_getDocument = getDocument()) === null || _getDocument === void 0 || (_getDocument = _getDocument.getElementById('add-custom-emoji')) === null || _getDocument === void 0 || _getDocument.focus();
|
|
174
|
+
}, 0);
|
|
175
|
+
}
|
|
167
176
|
}, [fireAnalytics]);
|
|
168
177
|
var getDynamicCategories = useCallback(function () {
|
|
169
178
|
if (!emojiProvider.calculateDynamicCategories) {
|
|
@@ -379,23 +388,53 @@ var EmojiPickerComponent = function EmojiPickerComponent(_ref) {
|
|
|
379
388
|
}, 0);
|
|
380
389
|
}
|
|
381
390
|
}, [emojiPickerList]);
|
|
382
|
-
var onUploadEmoji = useCallback(function (
|
|
383
|
-
|
|
384
|
-
|
|
391
|
+
var onUploadEmoji = useCallback( /*#__PURE__*/function () {
|
|
392
|
+
var _ref3 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(upload, retry) {
|
|
393
|
+
var errorSetter, onSuccess, uploadShortName, existing;
|
|
394
|
+
return _regeneratorRuntime.wrap(function _callee$(_context) {
|
|
395
|
+
while (1) switch (_context.prev = _context.next) {
|
|
396
|
+
case 0:
|
|
397
|
+
fireAnalytics(uploadConfirmButton({
|
|
398
|
+
retry: retry
|
|
399
|
+
}));
|
|
400
|
+
errorSetter = function errorSetter(message) {
|
|
401
|
+
setUploadErrorMessage(message);
|
|
402
|
+
};
|
|
403
|
+
onSuccess = function onSuccess(emojiDescription) {
|
|
404
|
+
batchedUpdates(function () {
|
|
405
|
+
setActiveCategory(customCategory);
|
|
406
|
+
setSelectedEmoji(emojiDescription);
|
|
407
|
+
setUploading(false);
|
|
408
|
+
});
|
|
409
|
+
scrollToUploadedEmoji(emojiDescription);
|
|
410
|
+
};
|
|
411
|
+
if (!fg('platform_emoji_picker_refresh')) {
|
|
412
|
+
_context.next = 11;
|
|
413
|
+
break;
|
|
414
|
+
}
|
|
415
|
+
uploadShortName = ":".concat(upload.name.toLowerCase(), ":");
|
|
416
|
+
_context.next = 7;
|
|
417
|
+
return emojiProvider.findByShortName(uploadShortName);
|
|
418
|
+
case 7:
|
|
419
|
+
existing = _context.sent;
|
|
420
|
+
if (!existing) {
|
|
421
|
+
_context.next = 11;
|
|
422
|
+
break;
|
|
423
|
+
}
|
|
424
|
+
errorSetter(messages.emojiDuplicateName);
|
|
425
|
+
return _context.abrupt("return");
|
|
426
|
+
case 11:
|
|
427
|
+
uploadEmoji(upload, emojiProvider, errorSetter, onSuccess, fireAnalytics, retry);
|
|
428
|
+
case 12:
|
|
429
|
+
case "end":
|
|
430
|
+
return _context.stop();
|
|
431
|
+
}
|
|
432
|
+
}, _callee);
|
|
385
433
|
}));
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
};
|
|
389
|
-
var onSuccess = function onSuccess(emojiDescription) {
|
|
390
|
-
batchedUpdates(function () {
|
|
391
|
-
setActiveCategory(customCategory);
|
|
392
|
-
setSelectedEmoji(emojiDescription);
|
|
393
|
-
setUploading(false);
|
|
394
|
-
});
|
|
395
|
-
scrollToUploadedEmoji(emojiDescription);
|
|
434
|
+
return function (_x, _x2) {
|
|
435
|
+
return _ref3.apply(this, arguments);
|
|
396
436
|
};
|
|
397
|
-
|
|
398
|
-
}, [emojiProvider, fireAnalytics, scrollToUploadedEmoji]);
|
|
437
|
+
}(), [emojiProvider, fireAnalytics, scrollToUploadedEmoji]);
|
|
399
438
|
var onTriggerDelete = useCallback(function (_emojiId, emoji) {
|
|
400
439
|
if (_emojiId) {
|
|
401
440
|
fireAnalytics(deleteBeginEvent({
|
|
@@ -14,7 +14,7 @@ var createEvent = function createEvent(eventType, action, actionSubject, actionS
|
|
|
14
14
|
actionSubjectId: actionSubjectId,
|
|
15
15
|
attributes: _objectSpread({
|
|
16
16
|
packageName: "@atlaskit/emoji",
|
|
17
|
-
packageVersion: "70.6.
|
|
17
|
+
packageVersion: "70.6.2"
|
|
18
18
|
}, attributes)
|
|
19
19
|
};
|
|
20
20
|
};
|