@atlaskit/emoji 70.10.10 → 70.10.12
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 +16 -0
- package/dist/cjs/api/EmojiResource.js +75 -74
- package/dist/cjs/api/media/SiteEmojiResource.js +12 -12
- package/dist/cjs/components/common/EmojiRadioButton.js +11 -0
- package/dist/cjs/components/common/EmojiUploadPicker.js +11 -10
- package/dist/cjs/components/common/ResourcedEmojiComponent.js +2 -2
- package/dist/cjs/components/common/ToneSelector.js +29 -5
- package/dist/cjs/components/picker/EmojiPickerComponent.js +7 -7
- package/dist/cjs/components/uploader/EmojiUploadComponent.js +14 -14
- package/dist/cjs/context/EmojiContextProvider.js +12 -11
- package/dist/cjs/hooks/useEmoji.js +9 -9
- package/dist/cjs/util/analytics/analytics.js +1 -1
- package/dist/cjs/util/analytics/samplingUfo.js +18 -18
- package/dist/es2019/components/common/EmojiRadioButton.js +9 -0
- package/dist/es2019/components/common/ToneSelector.js +26 -4
- package/dist/es2019/util/analytics/analytics.js +1 -1
- package/dist/esm/api/EmojiResource.js +75 -74
- package/dist/esm/api/media/SiteEmojiResource.js +12 -12
- package/dist/esm/components/common/EmojiRadioButton.js +11 -0
- package/dist/esm/components/common/EmojiUploadPicker.js +10 -9
- package/dist/esm/components/common/ResourcedEmojiComponent.js +2 -2
- package/dist/esm/components/common/ToneSelector.js +28 -4
- package/dist/esm/components/picker/EmojiPickerComponent.js +7 -7
- package/dist/esm/components/uploader/EmojiUploadComponent.js +13 -13
- package/dist/esm/context/EmojiContextProvider.js +11 -10
- package/dist/esm/hooks/useEmoji.js +9 -9
- package/dist/esm/util/analytics/analytics.js +1 -1
- package/dist/esm/util/analytics/samplingUfo.js +18 -18
- package/dist/types/components/common/EmojiRadioButton.d.ts +1 -0
- package/dist/types-ts4.5/components/common/EmojiRadioButton.d.ts +1 -0
- package/package.json +2 -3
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,21 @@
|
|
|
1
1
|
# @atlaskit/emoji
|
|
2
2
|
|
|
3
|
+
## 70.10.12
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- [`93fae868945b0`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/93fae868945b0) -
|
|
8
|
+
Fix accessibility - inaccessible skin tones from keyboard navigation
|
|
9
|
+
- Updated dependencies
|
|
10
|
+
|
|
11
|
+
## 70.10.11
|
|
12
|
+
|
|
13
|
+
### Patch Changes
|
|
14
|
+
|
|
15
|
+
- [`2a75c1be2244e`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/2a75c1be2244e) -
|
|
16
|
+
Removed usage of @atlaskit/elements-test-helpers from tests
|
|
17
|
+
- Updated dependencies
|
|
18
|
+
|
|
3
19
|
## 70.10.10
|
|
4
20
|
|
|
5
21
|
### Patch Changes
|
|
@@ -45,7 +45,7 @@ var supportsUploadFeature = exports.supportsUploadFeature = function supportsUpl
|
|
|
45
45
|
var emojiUploadProvider = emojiProvider;
|
|
46
46
|
return !!emojiUploadProvider.isUploadSupported && !!emojiUploadProvider.uploadCustomEmoji && !!emojiUploadProvider.prepareForUpload;
|
|
47
47
|
};
|
|
48
|
-
var EmojiResource = exports.EmojiResource = /*#__PURE__*/function (
|
|
48
|
+
var EmojiResource = exports.EmojiResource = /*#__PURE__*/function (_AbstractResource) {
|
|
49
49
|
function EmojiResource(config) {
|
|
50
50
|
var _this;
|
|
51
51
|
(0, _classCallCheck2.default)(this, EmojiResource);
|
|
@@ -109,41 +109,42 @@ var EmojiResource = exports.EmojiResource = /*#__PURE__*/function (_ref) {
|
|
|
109
109
|
* Get the emoji provider from Emoji Resource
|
|
110
110
|
* @returns Promise<EmojiProvider>
|
|
111
111
|
*/
|
|
112
|
-
(0, _inherits2.default)(EmojiResource,
|
|
112
|
+
(0, _inherits2.default)(EmojiResource, _AbstractResource);
|
|
113
113
|
return (0, _createClass2.default)(EmojiResource, [{
|
|
114
114
|
key: "getEmojiProvider",
|
|
115
115
|
value: (function () {
|
|
116
116
|
var _getEmojiProvider = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {
|
|
117
117
|
var options,
|
|
118
|
-
_args = arguments
|
|
119
|
-
|
|
118
|
+
_args = arguments,
|
|
119
|
+
_t;
|
|
120
|
+
return _regenerator.default.wrap(function (_context) {
|
|
120
121
|
while (1) switch (_context.prev = _context.next) {
|
|
121
122
|
case 0:
|
|
122
123
|
options = _args.length > 0 && _args[0] !== undefined ? _args[0] : {
|
|
123
124
|
fetchAtStart: !this.fetchOnDemand
|
|
124
125
|
};
|
|
125
126
|
if (!options.fetchAtStart) {
|
|
126
|
-
_context.next =
|
|
127
|
+
_context.next = 4;
|
|
127
128
|
break;
|
|
128
129
|
}
|
|
129
|
-
_context.prev =
|
|
130
|
-
_context.next =
|
|
130
|
+
_context.prev = 1;
|
|
131
|
+
_context.next = 2;
|
|
131
132
|
return this.fetchEmojiProvider();
|
|
132
|
-
case
|
|
133
|
-
_context.next =
|
|
133
|
+
case 2:
|
|
134
|
+
_context.next = 4;
|
|
134
135
|
break;
|
|
135
|
-
case
|
|
136
|
-
_context.prev =
|
|
137
|
-
|
|
138
|
-
(0, _logger.default)(
|
|
136
|
+
case 3:
|
|
137
|
+
_context.prev = 3;
|
|
138
|
+
_t = _context["catch"](1);
|
|
139
|
+
(0, _logger.default)(_t);
|
|
139
140
|
return _context.abrupt("return", Promise.resolve(this));
|
|
140
|
-
case
|
|
141
|
+
case 4:
|
|
141
142
|
return _context.abrupt("return", Promise.resolve(this));
|
|
142
|
-
case
|
|
143
|
+
case 5:
|
|
143
144
|
case "end":
|
|
144
145
|
return _context.stop();
|
|
145
146
|
}
|
|
146
|
-
}, _callee, this, [[
|
|
147
|
+
}, _callee, this, [[1, 3]]);
|
|
147
148
|
}));
|
|
148
149
|
function getEmojiProvider() {
|
|
149
150
|
return _getEmojiProvider.apply(this, arguments);
|
|
@@ -154,8 +155,8 @@ var EmojiResource = exports.EmojiResource = /*#__PURE__*/function (_ref) {
|
|
|
154
155
|
key: "fetchIndividualProvider",
|
|
155
156
|
value: function () {
|
|
156
157
|
var _fetchIndividualProvider = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2(provider, index) {
|
|
157
|
-
var providerType, loader, emojiResponse;
|
|
158
|
-
return _regenerator.default.wrap(function
|
|
158
|
+
var providerType, loader, emojiResponse, _t2;
|
|
159
|
+
return _regenerator.default.wrap(function (_context2) {
|
|
159
160
|
while (1) switch (_context2.prev = _context2.next) {
|
|
160
161
|
case 0:
|
|
161
162
|
providerType = this.getProviderType(provider);
|
|
@@ -167,41 +168,41 @@ var EmojiResource = exports.EmojiResource = /*#__PURE__*/function (_ref) {
|
|
|
167
168
|
type: providerType
|
|
168
169
|
});
|
|
169
170
|
loader = new _EmojiLoader.default(provider); // fetch emoji from provider url and denormalise
|
|
170
|
-
_context2.next =
|
|
171
|
+
_context2.next = 2;
|
|
171
172
|
return loader.loadEmoji();
|
|
172
|
-
case
|
|
173
|
+
case 2:
|
|
173
174
|
emojiResponse = _context2.sent;
|
|
174
175
|
(0, _ufoExperiences.sampledUfoEmojiResourceFetched)(providerType).success();
|
|
175
176
|
// setup emoji repository
|
|
176
177
|
this.emojiResponses[index] = emojiResponse;
|
|
177
178
|
this.initEmojiRepository(this.emojiResponses);
|
|
178
|
-
_context2.next =
|
|
179
|
+
_context2.next = 3;
|
|
179
180
|
return this.initSiteEmojiResource(emojiResponse, provider);
|
|
180
|
-
case
|
|
181
|
+
case 3:
|
|
181
182
|
this.activeLoaders--;
|
|
182
183
|
this.performRetries();
|
|
183
184
|
this.refreshLastFilter();
|
|
184
|
-
_context2.next =
|
|
185
|
+
_context2.next = 5;
|
|
185
186
|
break;
|
|
186
|
-
case
|
|
187
|
-
_context2.prev =
|
|
188
|
-
|
|
187
|
+
case 4:
|
|
188
|
+
_context2.prev = 4;
|
|
189
|
+
_t2 = _context2["catch"](1);
|
|
189
190
|
this.activeLoaders--;
|
|
190
|
-
this.notifyError(
|
|
191
|
+
this.notifyError(_t2);
|
|
191
192
|
(0, _ufoExperiences.sampledUfoEmojiResourceFetched)(providerType).failure({
|
|
192
193
|
metadata: {
|
|
193
|
-
reason:
|
|
194
|
+
reason: _t2,
|
|
194
195
|
source: 'EmojiProvider',
|
|
195
196
|
providerUrl: provider.url
|
|
196
197
|
}
|
|
197
198
|
});
|
|
198
|
-
(0, _logger.default)("failed to fetch emoji provider for ".concat(provider.url),
|
|
199
|
+
(0, _logger.default)("failed to fetch emoji provider for ".concat(provider.url), _t2);
|
|
199
200
|
throw new Error("failed to fetch emoji from ".concat(provider.url));
|
|
200
|
-
case
|
|
201
|
+
case 5:
|
|
201
202
|
case "end":
|
|
202
203
|
return _context2.stop();
|
|
203
204
|
}
|
|
204
|
-
}, _callee2, this, [[1,
|
|
205
|
+
}, _callee2, this, [[1, 4]]);
|
|
205
206
|
}));
|
|
206
207
|
function fetchIndividualProvider(_x, _x2) {
|
|
207
208
|
return _fetchIndividualProvider.apply(this, arguments);
|
|
@@ -215,24 +216,24 @@ var EmojiResource = exports.EmojiResource = /*#__PURE__*/function (_ref) {
|
|
|
215
216
|
var _this2 = this;
|
|
216
217
|
var force,
|
|
217
218
|
_args3 = arguments;
|
|
218
|
-
return _regenerator.default.wrap(function
|
|
219
|
+
return _regenerator.default.wrap(function (_context3) {
|
|
219
220
|
while (1) switch (_context3.prev = _context3.next) {
|
|
220
221
|
case 0:
|
|
221
222
|
force = _args3.length > 0 && _args3[0] !== undefined ? _args3[0] : false;
|
|
222
223
|
if (!(force || !this.isRepositoryAvailable(this.emojiRepository) && !this.isInitialised)) {
|
|
223
|
-
_context3.next =
|
|
224
|
+
_context3.next = 1;
|
|
224
225
|
break;
|
|
225
226
|
}
|
|
226
227
|
this.isInitialised = true;
|
|
227
228
|
this.emojiResponses = [];
|
|
228
229
|
// fetch emoji providers
|
|
229
|
-
_context3.next =
|
|
230
|
+
_context3.next = 1;
|
|
230
231
|
return Promise.all(this.emojiProviderConfig.providers.map(function (provider, index) {
|
|
231
232
|
return _this2.fetchIndividualProvider(provider, index);
|
|
232
233
|
}));
|
|
233
|
-
case
|
|
234
|
+
case 1:
|
|
234
235
|
return _context3.abrupt("return", Promise.resolve(this.emojiRepository));
|
|
235
|
-
case
|
|
236
|
+
case 2:
|
|
236
237
|
case "end":
|
|
237
238
|
return _context3.stop();
|
|
238
239
|
}
|
|
@@ -252,29 +253,29 @@ var EmojiResource = exports.EmojiResource = /*#__PURE__*/function (_ref) {
|
|
|
252
253
|
key: "fetchByEmojiId",
|
|
253
254
|
value: function () {
|
|
254
255
|
var _fetchByEmojiId = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee4(emojiId, optimistic) {
|
|
255
|
-
var _emoji, provider, loader, loadEmoji, _emoji2, emoji;
|
|
256
|
-
return _regenerator.default.wrap(function
|
|
256
|
+
var _emoji, provider, loader, loadEmoji, _emoji2, emoji, _t3;
|
|
257
|
+
return _regenerator.default.wrap(function (_context4) {
|
|
257
258
|
while (1) switch (_context4.prev = _context4.next) {
|
|
258
259
|
case 0:
|
|
259
260
|
if (!(this.isLoaded() && this.isRepositoryAvailable(this.emojiRepository))) {
|
|
260
|
-
_context4.next =
|
|
261
|
+
_context4.next = 3;
|
|
261
262
|
break;
|
|
262
263
|
}
|
|
263
|
-
_context4.next =
|
|
264
|
+
_context4.next = 1;
|
|
264
265
|
return this.findByEmojiId(emojiId);
|
|
265
|
-
case
|
|
266
|
+
case 1:
|
|
266
267
|
_emoji = _context4.sent;
|
|
267
268
|
if (!_emoji) {
|
|
268
|
-
_context4.next =
|
|
269
|
+
_context4.next = 3;
|
|
269
270
|
break;
|
|
270
271
|
}
|
|
271
|
-
_context4.next =
|
|
272
|
+
_context4.next = 2;
|
|
272
273
|
return this.getMediaEmojiDescriptionURLWithInlineToken(_emoji);
|
|
273
|
-
case
|
|
274
|
+
case 2:
|
|
274
275
|
return _context4.abrupt("return", _context4.sent);
|
|
275
|
-
case
|
|
276
|
+
case 3:
|
|
276
277
|
if (!(this.emojiProviderConfig.singleEmojiApi && optimistic)) {
|
|
277
|
-
_context4.next =
|
|
278
|
+
_context4.next = 11;
|
|
278
279
|
break;
|
|
279
280
|
}
|
|
280
281
|
// if config has singleEmojiApi then fetch single emoji
|
|
@@ -283,56 +284,56 @@ var EmojiResource = exports.EmojiResource = /*#__PURE__*/function (_ref) {
|
|
|
283
284
|
securityProvider: this.emojiProviderConfig.singleEmojiApi.securityProvider
|
|
284
285
|
};
|
|
285
286
|
loader = new _EmojiLoader.default(provider);
|
|
286
|
-
_context4.prev =
|
|
287
|
-
_context4.next =
|
|
287
|
+
_context4.prev = 4;
|
|
288
|
+
_context4.next = 5;
|
|
288
289
|
return loader.loadEmoji();
|
|
289
|
-
case
|
|
290
|
+
case 5:
|
|
290
291
|
loadEmoji = _context4.sent;
|
|
291
292
|
if (loadEmoji.emojis[0]) {
|
|
292
|
-
_context4.next =
|
|
293
|
+
_context4.next = 6;
|
|
293
294
|
break;
|
|
294
295
|
}
|
|
295
296
|
return _context4.abrupt("return");
|
|
296
|
-
case
|
|
297
|
+
case 6:
|
|
297
298
|
if (this.isRepositoryAvailable(this.siteEmojiResource)) {
|
|
298
|
-
_context4.next =
|
|
299
|
+
_context4.next = 7;
|
|
299
300
|
break;
|
|
300
301
|
}
|
|
301
|
-
_context4.next =
|
|
302
|
+
_context4.next = 7;
|
|
302
303
|
return this.initSiteEmojiResource(loadEmoji, provider);
|
|
303
|
-
case
|
|
304
|
+
case 7:
|
|
304
305
|
return _context4.abrupt("return", this.getMediaEmojiDescriptionURLWithInlineToken(loadEmoji.emojis[0]));
|
|
305
|
-
case
|
|
306
|
-
_context4.prev =
|
|
307
|
-
|
|
308
|
-
_context4.next =
|
|
306
|
+
case 8:
|
|
307
|
+
_context4.prev = 8;
|
|
308
|
+
_t3 = _context4["catch"](4);
|
|
309
|
+
_context4.next = 9;
|
|
309
310
|
return this.findByEmojiId(emojiId);
|
|
310
|
-
case
|
|
311
|
+
case 9:
|
|
311
312
|
_emoji2 = _context4.sent;
|
|
312
313
|
if (_emoji2) {
|
|
313
|
-
_context4.next =
|
|
314
|
+
_context4.next = 10;
|
|
314
315
|
break;
|
|
315
316
|
}
|
|
316
317
|
return _context4.abrupt("return");
|
|
317
|
-
case
|
|
318
|
+
case 10:
|
|
318
319
|
return _context4.abrupt("return", this.getMediaEmojiDescriptionURLWithInlineToken(_emoji2));
|
|
319
|
-
case
|
|
320
|
-
_context4.next =
|
|
320
|
+
case 11:
|
|
321
|
+
_context4.next = 12;
|
|
321
322
|
return this.findByEmojiId(emojiId);
|
|
322
|
-
case
|
|
323
|
+
case 12:
|
|
323
324
|
emoji = _context4.sent;
|
|
324
325
|
if (emoji) {
|
|
325
|
-
_context4.next =
|
|
326
|
+
_context4.next = 13;
|
|
326
327
|
break;
|
|
327
328
|
}
|
|
328
329
|
return _context4.abrupt("return");
|
|
329
|
-
case
|
|
330
|
+
case 13:
|
|
330
331
|
return _context4.abrupt("return", this.getMediaEmojiDescriptionURLWithInlineToken(emoji));
|
|
331
|
-
case
|
|
332
|
+
case 14:
|
|
332
333
|
case "end":
|
|
333
334
|
return _context4.stop();
|
|
334
335
|
}
|
|
335
|
-
}, _callee4, this, [[
|
|
336
|
+
}, _callee4, this, [[4, 8]]);
|
|
336
337
|
}));
|
|
337
338
|
function fetchByEmojiId(_x3, _x4) {
|
|
338
339
|
return _fetchByEmojiId.apply(this, arguments);
|
|
@@ -457,16 +458,16 @@ var EmojiResource = exports.EmojiResource = /*#__PURE__*/function (_ref) {
|
|
|
457
458
|
value: (function () {
|
|
458
459
|
var _getMediaEmojiDescriptionURLWithInlineToken = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee5(emoji) {
|
|
459
460
|
var _yield$this$siteEmoji, representation, altRepresentation;
|
|
460
|
-
return _regenerator.default.wrap(function
|
|
461
|
+
return _regenerator.default.wrap(function (_context5) {
|
|
461
462
|
while (1) switch (_context5.prev = _context5.next) {
|
|
462
463
|
case 0:
|
|
463
464
|
if (!this.isRepositoryAvailable(this.siteEmojiResource)) {
|
|
464
|
-
_context5.next =
|
|
465
|
+
_context5.next = 2;
|
|
465
466
|
break;
|
|
466
467
|
}
|
|
467
|
-
_context5.next =
|
|
468
|
+
_context5.next = 1;
|
|
468
469
|
return this.siteEmojiResource.generateTokenisedMediaURLS(emoji.representation, emoji.altRepresentation);
|
|
469
|
-
case
|
|
470
|
+
case 1:
|
|
470
471
|
_yield$this$siteEmoji = _context5.sent;
|
|
471
472
|
representation = _yield$this$siteEmoji.representation;
|
|
472
473
|
altRepresentation = _yield$this$siteEmoji.altRepresentation;
|
|
@@ -474,9 +475,9 @@ var EmojiResource = exports.EmojiResource = /*#__PURE__*/function (_ref) {
|
|
|
474
475
|
representation: representation,
|
|
475
476
|
altRepresentation: altRepresentation
|
|
476
477
|
}));
|
|
477
|
-
case
|
|
478
|
+
case 2:
|
|
478
479
|
return _context5.abrupt("return", emoji);
|
|
479
|
-
case
|
|
480
|
+
case 3:
|
|
480
481
|
case "end":
|
|
481
482
|
return _context5.stop();
|
|
482
483
|
}
|
|
@@ -80,23 +80,23 @@ var SiteEmojiResource = exports.default = /*#__PURE__*/function () {
|
|
|
80
80
|
key: "generateTokenisedMediaURLS",
|
|
81
81
|
value: (function () {
|
|
82
82
|
var _generateTokenisedMediaURLS = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(representation, altRepresentation) {
|
|
83
|
-
var readToken;
|
|
84
|
-
return _regenerator.default.wrap(function
|
|
83
|
+
var readToken, _t;
|
|
84
|
+
return _regenerator.default.wrap(function (_context) {
|
|
85
85
|
while (1) switch (_context.prev = _context.next) {
|
|
86
86
|
case 0:
|
|
87
87
|
if ((0, _typeHelpers.isMediaRepresentation)(representation)) {
|
|
88
|
-
_context.next =
|
|
88
|
+
_context.next = 1;
|
|
89
89
|
break;
|
|
90
90
|
}
|
|
91
91
|
return _context.abrupt("return", {
|
|
92
92
|
representation: representation,
|
|
93
93
|
altRepresentation: altRepresentation
|
|
94
94
|
});
|
|
95
|
-
case
|
|
96
|
-
_context.prev =
|
|
97
|
-
_context.next =
|
|
95
|
+
case 1:
|
|
96
|
+
_context.prev = 1;
|
|
97
|
+
_context.next = 2;
|
|
98
98
|
return this.tokenManager.getToken('read');
|
|
99
|
-
case
|
|
99
|
+
case 2:
|
|
100
100
|
readToken = _context.sent;
|
|
101
101
|
return _context.abrupt("return", Object.entries({
|
|
102
102
|
representation: representation,
|
|
@@ -123,18 +123,18 @@ var SiteEmojiResource = exports.default = /*#__PURE__*/function () {
|
|
|
123
123
|
representation: representation,
|
|
124
124
|
altRepresentation: altRepresentation
|
|
125
125
|
}));
|
|
126
|
-
case
|
|
127
|
-
_context.prev =
|
|
128
|
-
|
|
126
|
+
case 3:
|
|
127
|
+
_context.prev = 3;
|
|
128
|
+
_t = _context["catch"](1);
|
|
129
129
|
return _context.abrupt("return", {
|
|
130
130
|
representation: representation,
|
|
131
131
|
altRepresentation: altRepresentation
|
|
132
132
|
});
|
|
133
|
-
case
|
|
133
|
+
case 4:
|
|
134
134
|
case "end":
|
|
135
135
|
return _context.stop();
|
|
136
136
|
}
|
|
137
|
-
}, _callee, this, [[
|
|
137
|
+
}, _callee, this, [[1, 3]]);
|
|
138
138
|
}));
|
|
139
139
|
function generateTokenisedMediaURLS(_x, _x2) {
|
|
140
140
|
return _generateTokenisedMediaURLS.apply(this, arguments);
|
|
@@ -10,6 +10,7 @@ exports.default = exports.EmojiRadioButton = void 0;
|
|
|
10
10
|
require("./EmojiRadioButton.compiled.css");
|
|
11
11
|
var _runtime = require("@compiled/react/runtime");
|
|
12
12
|
var _react = _interopRequireWildcard(require("react"));
|
|
13
|
+
var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
|
|
13
14
|
var _Emoji = _interopRequireDefault(require("./Emoji"));
|
|
14
15
|
var _constants = require("../../util/constants");
|
|
15
16
|
var _visuallyHidden = _interopRequireDefault(require("@atlaskit/visually-hidden"));
|
|
@@ -19,6 +20,13 @@ var emojiRadio = {
|
|
|
19
20
|
default: "_tzy4idpf _kqswstnw _154i14id _1ltv14id _3y8mfajl _157z1r31 _1dzmglyw _1sqm1o36 _fh6w1y54 _1i1213zc"
|
|
20
21
|
};
|
|
21
22
|
var handleKeyDown = function handleKeyDown(props, event) {
|
|
23
|
+
if ((event.key === 'ArrowLeft' || event.key === 'ArrowRight') && (0, _platformFeatureFlags.fg)('platform_emoji_picker_refresh')) {
|
|
24
|
+
var _props$onArrowKey;
|
|
25
|
+
event.preventDefault();
|
|
26
|
+
event.stopPropagation();
|
|
27
|
+
(_props$onArrowKey = props.onArrowKey) === null || _props$onArrowKey === void 0 || _props$onArrowKey.call(props, event.key === 'ArrowRight' ? 1 : -1);
|
|
28
|
+
return;
|
|
29
|
+
}
|
|
22
30
|
if (_constants.TONESELECTOR_KEYBOARD_KEYS_SUPPORTED.includes(event.key)) {
|
|
23
31
|
var onSelected = props.onSelected;
|
|
24
32
|
event.preventDefault();
|
|
@@ -48,6 +56,9 @@ var EmojiRadioButton = exports.EmojiRadioButton = /*#__PURE__*/(0, _react.forwar
|
|
|
48
56
|
onKeyDown: function onKeyDown(event) {
|
|
49
57
|
return handleKeyDown(props, event);
|
|
50
58
|
},
|
|
59
|
+
onChange: (0, _platformFeatureFlags.fg)('platform_emoji_picker_refresh') ? function (e) {
|
|
60
|
+
return e.preventDefault();
|
|
61
|
+
} : undefined,
|
|
51
62
|
className: (0, _runtime.ax)([emojiRadio.default])
|
|
52
63
|
}), /*#__PURE__*/_react.default.createElement(_Emoji.default, {
|
|
53
64
|
emoji: emoji,
|
|
@@ -30,7 +30,7 @@ var _internalTypes = require("./internal-types");
|
|
|
30
30
|
var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
|
|
31
31
|
var _new = _interopRequireDefault(require("@atlaskit/button/new"));
|
|
32
32
|
var _browserApis = require("@atlaskit/browser-apis");
|
|
33
|
-
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
|
|
33
|
+
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 _t2 in e) "default" !== _t2 && {}.hasOwnProperty.call(e, _t2) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t2)) && (i.get || i.set) ? o(f, _t2, i) : f[_t2] = e[_t2]); return f; })(e, t); }
|
|
34
34
|
var closeEmojiUploadButton = null;
|
|
35
35
|
var uploadAddRowNew = null;
|
|
36
36
|
var emojiUpload = null;
|
|
@@ -308,28 +308,29 @@ var EmojiUploadPicker = function EmojiUploadPicker(props) {
|
|
|
308
308
|
var onFileLoad = (0, _react.useCallback)(function (file) {
|
|
309
309
|
return /*#__PURE__*/function () {
|
|
310
310
|
var _ref = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(f) {
|
|
311
|
-
|
|
311
|
+
var _t;
|
|
312
|
+
return _regenerator.default.wrap(function (_context) {
|
|
312
313
|
while (1) switch (_context.prev = _context.next) {
|
|
313
314
|
case 0:
|
|
314
315
|
_context.prev = 0;
|
|
315
316
|
setFilename(file.name);
|
|
316
|
-
_context.next =
|
|
317
|
+
_context.next = 1;
|
|
317
318
|
return ImageUtil.parseImage(f.target.result);
|
|
318
|
-
case
|
|
319
|
+
case 1:
|
|
319
320
|
setPreviewImage(f.target.result);
|
|
320
321
|
setChooseEmojiErrorMessage(undefined);
|
|
321
|
-
_context.next =
|
|
322
|
+
_context.next = 3;
|
|
322
323
|
break;
|
|
323
|
-
case
|
|
324
|
-
_context.prev =
|
|
325
|
-
|
|
324
|
+
case 2:
|
|
325
|
+
_context.prev = 2;
|
|
326
|
+
_t = _context["catch"](0);
|
|
326
327
|
setChooseEmojiErrorMessage( /*#__PURE__*/React.createElement(_reactIntl.FormattedMessage, _i18n.messages.emojiInvalidImage));
|
|
327
328
|
cancelChooseFile();
|
|
328
|
-
case
|
|
329
|
+
case 3:
|
|
329
330
|
case "end":
|
|
330
331
|
return _context.stop();
|
|
331
332
|
}
|
|
332
|
-
}, _callee, null, [[0,
|
|
333
|
+
}, _callee, null, [[0, 2]]);
|
|
333
334
|
}));
|
|
334
335
|
return function (_x) {
|
|
335
336
|
return _ref.apply(this, arguments);
|
|
@@ -74,7 +74,7 @@ var ResourcedEmojiComponent = exports.ResourcedEmojiComponent = function Resourc
|
|
|
74
74
|
reason,
|
|
75
75
|
foundEmoji,
|
|
76
76
|
_args = arguments;
|
|
77
|
-
return _regenerator.default.wrap(function
|
|
77
|
+
return _regenerator.default.wrap(function (_context) {
|
|
78
78
|
while (1) switch (_context.prev = _context.next) {
|
|
79
79
|
case 0:
|
|
80
80
|
optimisticFetch = _args.length > 2 && _args[2] !== undefined ? _args[2] : false;
|
|
@@ -140,7 +140,7 @@ var ResourcedEmojiComponent = exports.ResourcedEmojiComponent = function Resourc
|
|
|
140
140
|
setLoaded(true);
|
|
141
141
|
(0, _analytics.sampledUfoRenderedEmoji)(emojiId).mark(_types.UfoEmojiTimings.METADATA_END);
|
|
142
142
|
}
|
|
143
|
-
case
|
|
143
|
+
case 1:
|
|
144
144
|
case "end":
|
|
145
145
|
return _context.stop();
|
|
146
146
|
}
|
|
@@ -8,11 +8,11 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
8
8
|
});
|
|
9
9
|
exports.toneSelectorTestId = exports.default = exports.ToneSelectorInternal = void 0;
|
|
10
10
|
require("./ToneSelector.compiled.css");
|
|
11
|
-
var _react = _interopRequireWildcard(require("react"));
|
|
12
|
-
var React = _react;
|
|
13
11
|
var _runtime = require("@compiled/react/runtime");
|
|
14
12
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
15
13
|
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
|
14
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
15
|
+
var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
|
|
16
16
|
var _analyticsNext = require("@atlaskit/analytics-next");
|
|
17
17
|
var _analytics = require("../../util/analytics");
|
|
18
18
|
var _setSkinToneAriaLabelText = require("./setSkinToneAriaLabelText");
|
|
@@ -39,6 +39,8 @@ var ToneSelectorInternal = exports.ToneSelectorInternal = function ToneSelectorI
|
|
|
39
39
|
isVisible = props.isVisible;
|
|
40
40
|
var isMounted = (0, _react.useRef)(false);
|
|
41
41
|
var selectedToneRadioRef = (0, _react.useRef)(null);
|
|
42
|
+
// Refs for all radio inputs — used for FG-gated arrow-key focus management
|
|
43
|
+
var radioRefs = (0, _react.useRef)([]);
|
|
42
44
|
var _useIntl = (0, _reactIntl.useIntl)(),
|
|
43
45
|
formatMessage = _useIntl.formatMessage;
|
|
44
46
|
var emojiToneCollection = (0, _react.useMemo)(function () {
|
|
@@ -71,6 +73,12 @@ var ToneSelectorInternal = exports.ToneSelectorInternal = function ToneSelectorI
|
|
|
71
73
|
(0, _analytics.createAndFireEventInElementsChannel)(event)(createAnalyticsEvent);
|
|
72
74
|
}
|
|
73
75
|
};
|
|
76
|
+
var _onArrowKey = (0, _react.useCallback)(function (currentIndex, direction) {
|
|
77
|
+
var _radioRefs$current$ne;
|
|
78
|
+
var len = radioRefs.current.length;
|
|
79
|
+
var nextIndex = (currentIndex + direction + len) % len;
|
|
80
|
+
(_radioRefs$current$ne = radioRefs.current[nextIndex]) === null || _radioRefs$current$ne === void 0 || _radioRefs$current$ne.focus();
|
|
81
|
+
}, []);
|
|
74
82
|
var onToneSelectedHandler = function onToneSelectedHandler(toneValue) {
|
|
75
83
|
return function () {
|
|
76
84
|
if (selectedTone === toneValue && onToneClose) {
|
|
@@ -88,14 +96,30 @@ var ToneSelectorInternal = exports.ToneSelectorInternal = function ToneSelectorI
|
|
|
88
96
|
fireAnalyticsEvent((0, _analytics.toneSelectorOpenedEvent)({}));
|
|
89
97
|
}
|
|
90
98
|
isMounted.current = true;
|
|
91
|
-
return /*#__PURE__*/
|
|
99
|
+
return /*#__PURE__*/_react.default.createElement("div", {
|
|
92
100
|
role: "radiogroup",
|
|
93
101
|
"data-testid": toneSelectorTestId,
|
|
94
102
|
id: "emoji-picker-tone-selector",
|
|
95
103
|
"aria-label": formatMessage(_i18n.messages.emojiSelectSkinToneListAriaLabelText),
|
|
96
104
|
className: (0, _runtime.ax)([!isVisible && "_tzy4idpf _3um015vq _1e0cglyw"])
|
|
97
|
-
}, emojiToneCollection.map(function (tone) {
|
|
98
|
-
return /*#__PURE__*/
|
|
105
|
+
}, emojiToneCollection.map(function (tone, renderIndex) {
|
|
106
|
+
return (0, _platformFeatureFlags.fg)('platform_emoji_picker_refresh') ? /*#__PURE__*/_react.default.createElement(_EmojiRadioButton.default, {
|
|
107
|
+
ref: function ref(el) {
|
|
108
|
+
radioRefs.current[renderIndex] = el;
|
|
109
|
+
if (tone.isSelected && selectedToneRadioRef) {
|
|
110
|
+
selectedToneRadioRef.current = el;
|
|
111
|
+
}
|
|
112
|
+
},
|
|
113
|
+
defaultChecked: tone.isSelected,
|
|
114
|
+
ariaLabelText: tone.label,
|
|
115
|
+
key: "".concat(tone.id),
|
|
116
|
+
emoji: tone,
|
|
117
|
+
onArrowKey: function onArrowKey(direction) {
|
|
118
|
+
return _onArrowKey(renderIndex, direction);
|
|
119
|
+
},
|
|
120
|
+
onSelected: onToneSelectedHandler(tone.toneIndex),
|
|
121
|
+
selectOnHover: true
|
|
122
|
+
}) : /*#__PURE__*/_react.default.createElement(_EmojiRadioButton.default, {
|
|
99
123
|
ref: tone.isSelected ? selectedToneRadioRef : null,
|
|
100
124
|
defaultChecked: tone.isSelected,
|
|
101
125
|
ariaLabelText: tone.label,
|
|
@@ -474,7 +474,7 @@ var EmojiPickerComponent = function EmojiPickerComponent(_ref) {
|
|
|
474
474
|
var onUploadEmoji = (0, _react.useCallback)( /*#__PURE__*/function () {
|
|
475
475
|
var _ref3 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(upload, retry) {
|
|
476
476
|
var errorSetter, onSuccess, uploadShortName, existing;
|
|
477
|
-
return _regenerator.default.wrap(function
|
|
477
|
+
return _regenerator.default.wrap(function (_context) {
|
|
478
478
|
while (1) switch (_context.prev = _context.next) {
|
|
479
479
|
case 0:
|
|
480
480
|
fireAnalytics((0, _analytics.uploadConfirmButton)({
|
|
@@ -492,23 +492,23 @@ var EmojiPickerComponent = function EmojiPickerComponent(_ref) {
|
|
|
492
492
|
scrollToUploadedEmoji(emojiDescription);
|
|
493
493
|
};
|
|
494
494
|
if (!(0, _platformFeatureFlags.fg)('platform_emoji_picker_refresh')) {
|
|
495
|
-
_context.next =
|
|
495
|
+
_context.next = 2;
|
|
496
496
|
break;
|
|
497
497
|
}
|
|
498
498
|
uploadShortName = ":".concat(upload.name.toLowerCase(), ":");
|
|
499
|
-
_context.next =
|
|
499
|
+
_context.next = 1;
|
|
500
500
|
return emojiProvider.findByShortName(uploadShortName);
|
|
501
|
-
case
|
|
501
|
+
case 1:
|
|
502
502
|
existing = _context.sent;
|
|
503
503
|
if (!existing) {
|
|
504
|
-
_context.next =
|
|
504
|
+
_context.next = 2;
|
|
505
505
|
break;
|
|
506
506
|
}
|
|
507
507
|
errorSetter(_i18n.messages.emojiDuplicateName);
|
|
508
508
|
return _context.abrupt("return");
|
|
509
|
-
case
|
|
509
|
+
case 2:
|
|
510
510
|
(0, _UploadEmoji.uploadEmoji)(upload, emojiProvider, errorSetter, onSuccess, fireAnalytics, retry);
|
|
511
|
-
case
|
|
511
|
+
case 3:
|
|
512
512
|
case "end":
|
|
513
513
|
return _context.stop();
|
|
514
514
|
}
|