@atlaskit/emoji 71.4.6 → 71.5.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.
Files changed (50) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/dist/cjs/api/EmojiRepository.js +14 -5
  3. package/dist/cjs/components/common/DeleteButton.js +11 -2
  4. package/dist/cjs/components/common/EmojiActions.js +15 -6
  5. package/dist/cjs/components/common/EmojiDeletePreview.js +11 -2
  6. package/dist/cjs/components/common/EmojiErrorMessage.js +11 -2
  7. package/dist/cjs/components/common/EmojiUploadPicker.js +18 -9
  8. package/dist/cjs/components/common/FileChooser.js +12 -3
  9. package/dist/cjs/components/common/ToneSelector.js +11 -2
  10. package/dist/cjs/components/picker/CategorySelector.js +16 -7
  11. package/dist/cjs/components/picker/EmojiPicker.js +11 -2
  12. package/dist/cjs/components/picker/EmojiPickerComponent.js +24 -15
  13. package/dist/cjs/components/picker/EmojiPickerFooter.js +12 -2
  14. package/dist/cjs/components/picker/EmojiPickerList.js +16 -3
  15. package/dist/cjs/components/picker/EmojiPickerListSearch.js +11 -2
  16. package/dist/cjs/components/picker/VirtualList.js +12 -3
  17. package/dist/cjs/util/analytics/analytics.js +1 -1
  18. package/dist/es2019/api/EmojiRepository.js +14 -5
  19. package/dist/es2019/components/common/DeleteButton.js +11 -2
  20. package/dist/es2019/components/common/EmojiActions.js +15 -6
  21. package/dist/es2019/components/common/EmojiDeletePreview.js +11 -2
  22. package/dist/es2019/components/common/EmojiErrorMessage.js +11 -2
  23. package/dist/es2019/components/common/EmojiUploadPicker.js +18 -9
  24. package/dist/es2019/components/common/FileChooser.js +12 -3
  25. package/dist/es2019/components/common/ToneSelector.js +11 -2
  26. package/dist/es2019/components/picker/CategorySelector.js +15 -6
  27. package/dist/es2019/components/picker/EmojiPicker.js +11 -2
  28. package/dist/es2019/components/picker/EmojiPickerComponent.js +24 -15
  29. package/dist/es2019/components/picker/EmojiPickerFooter.js +11 -2
  30. package/dist/es2019/components/picker/EmojiPickerList.js +16 -3
  31. package/dist/es2019/components/picker/EmojiPickerListSearch.js +11 -2
  32. package/dist/es2019/components/picker/VirtualList.js +12 -3
  33. package/dist/es2019/util/analytics/analytics.js +1 -1
  34. package/dist/esm/api/EmojiRepository.js +14 -5
  35. package/dist/esm/components/common/DeleteButton.js +11 -2
  36. package/dist/esm/components/common/EmojiActions.js +15 -6
  37. package/dist/esm/components/common/EmojiDeletePreview.js +11 -2
  38. package/dist/esm/components/common/EmojiErrorMessage.js +11 -2
  39. package/dist/esm/components/common/EmojiUploadPicker.js +18 -9
  40. package/dist/esm/components/common/FileChooser.js +12 -3
  41. package/dist/esm/components/common/ToneSelector.js +11 -2
  42. package/dist/esm/components/picker/CategorySelector.js +16 -7
  43. package/dist/esm/components/picker/EmojiPicker.js +11 -2
  44. package/dist/esm/components/picker/EmojiPickerComponent.js +24 -15
  45. package/dist/esm/components/picker/EmojiPickerFooter.js +11 -2
  46. package/dist/esm/components/picker/EmojiPickerList.js +16 -3
  47. package/dist/esm/components/picker/EmojiPickerListSearch.js +11 -2
  48. package/dist/esm/components/picker/VirtualList.js +12 -3
  49. package/dist/esm/util/analytics/analytics.js +1 -1
  50. package/package.json +1 -1
@@ -16,7 +16,7 @@ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/
16
16
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
17
17
  var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
18
18
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
19
- var _expVal = require("@atlaskit/tmp-editor-statsig/expVal");
19
+ var _featureGateJsClient = _interopRequireDefault(require("@atlaskit/feature-gate-js-client"));
20
20
  var _browserApis = require("@atlaskit/browser-apis");
21
21
  var _adapter = require("@atlaskit/pragmatic-drag-and-drop/external/adapter");
22
22
  var _file = require("@atlaskit/pragmatic-drag-and-drop/external/file");
@@ -44,6 +44,15 @@ var _hiddenEmojis = require("../../util/hidden-emojis");
44
44
  function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
45
45
  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; }
46
46
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
47
+ var isRefreshEmojiPickerEnabled = function isRefreshEmojiPickerEnabled() {
48
+ if (!_featureGateJsClient.default.initializeCompleted()) {
49
+ return false;
50
+ }
51
+
52
+ // eslint-disable-next-line @atlaskit/platform/use-recommended-utils
53
+ var isEnabled = _featureGateJsClient.default.getExperimentValue('platform_teamoji_26_refresh_emoji_picker', 'isEnabled', false);
54
+ return isEnabled;
55
+ };
47
56
  var emojiPickerBoxShadow = "var(--ds-shadow-overlay, 0px 8px 12px #1E1F2126, 0px 0px 1px #1E1F214f)";
48
57
  var emojiPickerHeight = 295;
49
58
  var emojiPickerHeightWithPreview = 349; // emojiPickerHeight + emojiPickerPreviewHeight;
@@ -94,7 +103,7 @@ var EmojiPickerComponent = function EmojiPickerComponent(_ref) {
94
103
  var _useEmoji = (0, _useEmoji2.useEmoji)(),
95
104
  emojiProvider = _useEmoji.emojiProvider,
96
105
  isUploadSupported = _useEmoji.isUploadSupported;
97
- var isTeamojiExperimentEnabled = (0, _expVal.expVal)('platform_teamoji_26_refresh_emoji_picker', 'isEnabled', false);
106
+ var isTeamojiExperimentEnabled = isRefreshEmojiPickerEnabled();
98
107
  var _useState = (0, _react.useState)([]),
99
108
  _useState2 = (0, _slicedToArray2.default)(_useState, 2),
100
109
  filteredEmojis = _useState2[0],
@@ -187,7 +196,7 @@ var EmojiPickerComponent = function EmojiPickerComponent(_ref) {
187
196
  }
188
197
  }, [selectedEmoji]);
189
198
  var onEmojiLeave = (0, _react.useCallback)(function () {
190
- if ((0, _expVal.expVal)('platform_teamoji_26_refresh_emoji_picker', 'isEnabled', false)) {
199
+ if (isRefreshEmojiPickerEnabled()) {
191
200
  setSelectedEmoji(undefined);
192
201
  }
193
202
  }, []);
@@ -195,16 +204,16 @@ var EmojiPickerComponent = function EmojiPickerComponent(_ref) {
195
204
  // Ignore scroll-driven category changes while a programmatic reveal()
196
205
  // scroll is in progress — they would flicker the indicator through
197
206
  // intermediate categories before landing on the correct one.
198
- if (isProgrammaticScroll.current && (0, _expVal.expVal)('platform_teamoji_26_refresh_emoji_picker', 'isEnabled', false)) {
207
+ if (isProgrammaticScroll.current && isRefreshEmojiPickerEnabled()) {
199
208
  return;
200
209
  }
201
210
  // Ignore scroll-driven category changes while the upload or delete screen is open
202
- if ((uploading || emojiToDelete) && (0, _expVal.expVal)('platform_teamoji_26_refresh_emoji_picker', 'isEnabled', false)) {
211
+ if ((uploading || emojiToDelete) && isRefreshEmojiPickerEnabled()) {
203
212
  return;
204
213
  }
205
214
  if (activeCategory !== category) {
206
215
  setActiveCategory(category);
207
- if (!query && (0, _expVal.expVal)('platform_teamoji_26_refresh_emoji_picker', 'isEnabled', false)) {
216
+ if (!query && isRefreshEmojiPickerEnabled()) {
208
217
  lastNonSearchCategory.current = category;
209
218
  }
210
219
  }
@@ -221,7 +230,7 @@ var EmojiPickerComponent = function EmojiPickerComponent(_ref) {
221
230
  setUploadErrorMessage(undefined);
222
231
  });
223
232
  fireAnalytics((0, _analytics.uploadCancelButton)());
224
- if ((0, _expVal.expVal)('platform_teamoji_26_refresh_emoji_picker', 'isEnabled', false)) {
233
+ if (isRefreshEmojiPickerEnabled()) {
225
234
  setTimeout(function () {
226
235
  var _getDocument;
227
236
  (_getDocument = (0, _browserApis.getDocument)()) === null || _getDocument === void 0 || (_getDocument = _getDocument.getElementById('add-custom-emoji')) === null || _getDocument === void 0 || _getDocument.focus();
@@ -371,7 +380,7 @@ var EmojiPickerComponent = function EmojiPickerComponent(_ref) {
371
380
  }
372
381
 
373
382
  // If the upload or delete screen is open, close it when a category is selected
374
- if ((0, _expVal.expVal)('platform_teamoji_26_refresh_emoji_picker', 'isEnabled', false)) {
383
+ if (isRefreshEmojiPickerEnabled()) {
375
384
  if (uploading) {
376
385
  setUploading(false);
377
386
  setUploadErrorMessage(undefined);
@@ -433,7 +442,7 @@ var EmojiPickerComponent = function EmojiPickerComponent(_ref) {
433
442
  };
434
443
  if (searchQuery !== query) {
435
444
  // Capture the active category before entering search so we can keep it highlighted
436
- if (!query && searchQuery && (0, _expVal.expVal)('platform_teamoji_26_refresh_emoji_picker', 'isEnabled', false)) {
445
+ if (!query && searchQuery && isRefreshEmojiPickerEnabled()) {
437
446
  lastNonSearchCategory.current = activeCategory;
438
447
  }
439
448
  setQuery(searchQuery);
@@ -449,7 +458,7 @@ var EmojiPickerComponent = function EmojiPickerComponent(_ref) {
449
458
  // cannot reach underlying page drop handlers (e.g. the Confluence editor).
450
459
  (0, _react.useEffect)(function () {
451
460
  var _getDocument2;
452
- if (!uploading || !(0, _expVal.expVal)('platform_teamoji_26_refresh_emoji_picker', 'isEnabled', false)) {
461
+ if (!uploading || !isRefreshEmojiPickerEnabled()) {
453
462
  return;
454
463
  }
455
464
  var body = (_getDocument2 = (0, _browserApis.getDocument)()) === null || _getDocument2 === void 0 ? void 0 : _getDocument2.body;
@@ -518,7 +527,7 @@ var EmojiPickerComponent = function EmojiPickerComponent(_ref) {
518
527
  });
519
528
  scrollToUploadedEmoji(emojiDescription);
520
529
  };
521
- if (!(0, _expVal.expVal)('platform_teamoji_26_refresh_emoji_picker', 'isEnabled', false)) {
530
+ if (!isRefreshEmojiPickerEnabled()) {
522
531
  _context.next = 2;
523
532
  break;
524
533
  }
@@ -656,14 +665,14 @@ var EmojiPickerComponent = function EmojiPickerComponent(_ref) {
656
665
  emojiProvider.unsubscribe(onProviderChange);
657
666
  };
658
667
  }, [emojiProvider, onProviderChange]);
659
- var showPreview = (0, _expVal.expVal)('platform_teamoji_26_refresh_emoji_picker', 'isEnabled', false) ? !uploading : selectedEmoji && !uploading;
668
+ var showPreview = isRefreshEmojiPickerEnabled() ? !uploading : selectedEmoji && !uploading;
660
669
  return /*#__PURE__*/React.createElement("div", {
661
670
  ref: setPickerRef,
662
671
  "data-emoji-picker-container": true,
663
672
  role: "dialog",
664
673
  "aria-label": formatMessage(_i18n.messages.emojiPickerTitle),
665
674
  "aria-modal": true,
666
- className: (0, _runtime.ax)([(0, _expVal.expVal)('platform_teamoji_26_refresh_emoji_picker', 'isEnabled', false) ? "_19itahnd _2rko1mok _1e0c1txw _2lx21bp4 _1bah1yb4 _bfhk1bhr _16qs130s _4t3iuxo9 _1bsb10mj _1ul910mj _c71l1y6z _kqswh2mm" : "_19itahnd _2rkofajl _1e0c1txw _2lx21bp4 _1bah1yb4 _bfhk1bhr _16qs130s _4t3iuxo9 _1bsb10mj _1ul910mj _c71l1y6z _kqswh2mm", !!emojiToDelete && (0, _expVal.expVal)('platform_teamoji_26_refresh_emoji_picker', 'isEnabled', false) ? withDeleteRefreshHeight[size] : uploading && (0, _expVal.expVal)('platform_teamoji_26_refresh_emoji_picker', 'isEnabled', false) ? withUploadRefreshHeight[size] : query && filteredEmojis.length === 0 && (0, _expVal.expVal)('platform_teamoji_26_refresh_emoji_picker', 'isEnabled', false) ? withNoResultsRefreshHeight[size] : showPreview ? withPreviewHeight[size] : withoutPreviewHeight[size]]),
675
+ className: (0, _runtime.ax)([isRefreshEmojiPickerEnabled() ? "_19itahnd _2rko1mok _1e0c1txw _2lx21bp4 _1bah1yb4 _bfhk1bhr _16qs130s _4t3iuxo9 _1bsb10mj _1ul910mj _c71l1y6z _kqswh2mm" : "_19itahnd _2rkofajl _1e0c1txw _2lx21bp4 _1bah1yb4 _bfhk1bhr _16qs130s _4t3iuxo9 _1bsb10mj _1ul910mj _c71l1y6z _kqswh2mm", !!emojiToDelete && isRefreshEmojiPickerEnabled() ? withDeleteRefreshHeight[size] : uploading && isRefreshEmojiPickerEnabled() ? withUploadRefreshHeight[size] : query && filteredEmojis.length === 0 && isRefreshEmojiPickerEnabled() ? withNoResultsRefreshHeight[size] : showPreview ? withPreviewHeight[size] : withoutPreviewHeight[size]]),
667
676
  style: {
668
677
  "--_19dn98e": (0, _runtime.ix)("".concat(emojiPickerHeight, "px")),
669
678
  "--_gsvyy7": (0, _runtime.ix)("".concat(emojiPickerWidth, "px"))
@@ -675,7 +684,7 @@ var EmojiPickerComponent = function EmojiPickerComponent(_ref) {
675
684
  onKeyDown: suppressKeyPress,
676
685
  className: (0, _runtime.ax)(["_16jlkb7n _1o9zkb7n _i0dlf1ug _1reo15vq _18m915vq _1e0c1txw _2lx21bp4 _1bah1yb4 _1tkeidpf"])
677
686
  }, /*#__PURE__*/React.createElement(_CategorySelector.default, {
678
- activeCategoryId: (uploading || emojiToDelete) && (0, _expVal.expVal)('platform_teamoji_26_refresh_emoji_picker', 'isEnabled', false) ? null : activeCategory,
687
+ activeCategoryId: (uploading || emojiToDelete) && isRefreshEmojiPickerEnabled() ? null : activeCategory,
679
688
  dynamicCategories: dynamicCategories,
680
689
  disableCategories: disableCategories,
681
690
  onCategorySelected: onCategorySelected
@@ -710,7 +719,7 @@ var EmojiPickerComponent = function EmojiPickerComponent(_ref) {
710
719
  onOpenUpload: onOpenUpload,
711
720
  size: size,
712
721
  activeCategoryId: activeCategory
713
- }), showPreview && !(emojiToDelete && (0, _expVal.expVal)('platform_teamoji_26_refresh_emoji_picker', 'isEnabled', false)) && !(query && filteredEmojis.length === 0 && (0, _expVal.expVal)('platform_teamoji_26_refresh_emoji_picker', 'isEnabled', false)) && /*#__PURE__*/React.createElement(_EmojiPickerFooter.default, {
722
+ }), showPreview && !(emojiToDelete && isRefreshEmojiPickerEnabled()) && !(query && filteredEmojis.length === 0 && isRefreshEmojiPickerEnabled()) && /*#__PURE__*/React.createElement(_EmojiPickerFooter.default, {
714
723
  selectedEmoji: selectedEmoji,
715
724
  uploadEnabled: isUploadSupported && !uploading,
716
725
  onOpenUpload: onOpenUpload
@@ -1,6 +1,7 @@
1
1
  /* EmojiPickerFooter.tsx generated by @compiled/babel-plugin v0.39.1 */
2
2
  "use strict";
3
3
 
4
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
5
  var _typeof = require("@babel/runtime/helpers/typeof");
5
6
  Object.defineProperty(exports, "__esModule", {
6
7
  value: true
@@ -14,8 +15,17 @@ var _reactIntl = require("react-intl");
14
15
  var _compiled = require("@atlaskit/primitives/compiled");
15
16
  var _EmojiPreviewComponent = require("../common/EmojiPreviewComponent");
16
17
  var _AddEmoji = require("../common/AddEmoji");
17
- var _expVal = require("@atlaskit/tmp-editor-statsig/expVal");
18
+ var _featureGateJsClient = _interopRequireDefault(require("@atlaskit/feature-gate-js-client"));
18
19
  function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
20
+ var isRefreshEmojiPickerEnabled = function isRefreshEmojiPickerEnabled() {
21
+ if (!_featureGateJsClient.default.initializeCompleted()) {
22
+ return false;
23
+ }
24
+
25
+ // eslint-disable-next-line @atlaskit/platform/use-recommended-utils
26
+ var isEnabled = _featureGateJsClient.default.getExperimentValue('platform_teamoji_26_refresh_emoji_picker', 'isEnabled', false);
27
+ return isEnabled;
28
+ };
19
29
  var emojiPickerFooter = null;
20
30
  var emojiPickerFooterWithTopShadow = null;
21
31
  var emojiPickerFooterWithTopShadowNew = null;
@@ -28,7 +38,7 @@ var EmojiPickerFooter = function EmojiPickerFooter(_ref) {
28
38
  onOpenUpload = _ref.onOpenUpload,
29
39
  uploadEnabled = _ref.uploadEnabled;
30
40
  var intl = (0, _reactIntl.useIntl)();
31
- return (0, _expVal.expVal)('platform_teamoji_26_refresh_emoji_picker', 'isEnabled', false) ? /*#__PURE__*/React.createElement("div", {
41
+ return isRefreshEmojiPickerEnabled() ? /*#__PURE__*/React.createElement("div", {
32
42
  "data-testid": emojiPickerFooterTestId,
33
43
  className: (0, _runtime.ax)(["_16jlidpf _1o9zidpf _i0dl1wug", "_x3doia51"])
34
44
  }, selectedEmoji ? /*#__PURE__*/React.createElement(_compiled.Box, {
@@ -9,7 +9,7 @@ exports.RENDER_EMOJI_PICKER_LIST_TESTID = exports.EmojiPickerVirtualListInternal
9
9
  var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
10
10
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
11
11
  var _reactIntl = require("react-intl");
12
- var _expVal = require("@atlaskit/tmp-editor-statsig/expVal");
12
+ var _featureGateJsClient = _interopRequireDefault(require("@atlaskit/feature-gate-js-client"));
13
13
  var _react = _interopRequireWildcard(require("react"));
14
14
  var _constants = require("../../util/constants");
15
15
  var _productivityColors = require("../../util/productivity-colors");
@@ -31,6 +31,15 @@ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r
31
31
  var RENDER_EMOJI_PICKER_LIST_TESTID = exports.RENDER_EMOJI_PICKER_LIST_TESTID = 'render-emoji-picker-list';
32
32
  var categoryClassname = 'emoji-category';
33
33
  var teamojiRefreshExperimentName = 'platform_teamoji_26_refresh_emoji_picker';
34
+ var isRefreshEmojiPickerEnabled = function isRefreshEmojiPickerEnabled() {
35
+ if (!_featureGateJsClient.default.initializeCompleted()) {
36
+ return false;
37
+ }
38
+
39
+ // eslint-disable-next-line @atlaskit/platform/use-recommended-utils
40
+ var isEnabled = _featureGateJsClient.default.getExperimentValue(teamojiRefreshExperimentName, 'isEnabled', false);
41
+ return isEnabled;
42
+ };
34
43
  var atlassianCategory = 'ATLASSIAN';
35
44
  var atlassianSubcategoryOrder = ['Faces', 'Hands', 'Reactions', 'Objects', 'Productivity', 'Logos'];
36
45
 
@@ -106,7 +115,7 @@ var EmojiPickerVirtualListInternal = exports.EmojiPickerVirtualListInternal = /*
106
115
  _useState8 = (0, _slicedToArray2.default)(_useState7, 2),
107
116
  categoriesChanged = _useState8[0],
108
117
  setCategoriesChanged = _useState8[1];
109
- var isTeamojiExperimentEnabled = (0, _expVal.expVal)(teamojiRefreshExperimentName, 'isEnabled', false);
118
+ var isTeamojiExperimentEnabled = isRefreshEmojiPickerEnabled();
110
119
  var visibleEmojis = (0, _react.useMemo)(function () {
111
120
  return isTeamojiExperimentEnabled ? (0, _hiddenEmojis.filterHiddenEmojis)(emojis) : emojis;
112
121
  }, [emojis, isTeamojiExperimentEnabled]);
@@ -114,8 +123,12 @@ var EmojiPickerVirtualListInternal = exports.EmojiPickerVirtualListInternal = /*
114
123
  return isTeamojiExperimentEnabled ? (0, _productivityColors.getProductivityColorPreviewEmojis)(visibleEmojis) : {};
115
124
  }, [isTeamojiExperimentEnabled, visibleEmojis]);
116
125
  var addToCategoryMap = (0, _react.useCallback)(function (categoryToGroupMap, emoji, category) {
126
+ var _categoryToGroupMap$c;
117
127
  if (!categoryToGroupMap[category]) {
118
128
  var categoryDefinition = isTeamojiExperimentEnabled ? _categories.CategoryDescriptionMapNew[category] : _categories.CategoryDescriptionMap[category];
129
+ if (!categoryDefinition && isTeamojiExperimentEnabled) {
130
+ return categoryToGroupMap;
131
+ }
119
132
  categoryToGroupMap[category] = {
120
133
  emojis: [],
121
134
  title: categoryDefinition.name,
@@ -123,7 +136,7 @@ var EmojiPickerVirtualListInternal = exports.EmojiPickerVirtualListInternal = /*
123
136
  order: categoryDefinition.order
124
137
  };
125
138
  }
126
- categoryToGroupMap[category].emojis.push(emoji);
139
+ (_categoryToGroupMap$c = categoryToGroupMap[category]) === null || _categoryToGroupMap$c === void 0 || _categoryToGroupMap$c.emojis.push(emoji);
127
140
  return categoryToGroupMap;
128
141
  }, [isTeamojiExperimentEnabled]);
129
142
  var groupByCategory = (0, _react.useCallback)(function (currentUser) {
@@ -18,8 +18,17 @@ var _reactIntl = require("react-intl");
18
18
  var _useDebounce = require("use-debounce");
19
19
  var _constants = require("../../util/constants");
20
20
  var _i18n = require("../i18n");
21
- var _expVal = require("@atlaskit/tmp-editor-statsig/expVal");
21
+ var _featureGateJsClient = _interopRequireDefault(require("@atlaskit/feature-gate-js-client"));
22
22
  function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
23
+ var isRefreshEmojiPickerEnabled = function isRefreshEmojiPickerEnabled() {
24
+ if (!_featureGateJsClient.default.initializeCompleted()) {
25
+ return false;
26
+ }
27
+
28
+ // eslint-disable-next-line @atlaskit/platform/use-recommended-utils
29
+ var isEnabled = _featureGateJsClient.default.getExperimentValue('platform_teamoji_26_refresh_emoji_picker', 'isEnabled', false);
30
+ return isEnabled;
31
+ };
23
32
  var input = null;
24
33
  var inputNew = null;
25
34
  var textFieldWrapperNew = null;
@@ -71,7 +80,7 @@ var EmojiPickerListSearch = exports.EmojiPickerListSearch = function EmojiPicker
71
80
  role: "status"
72
81
  }, dirty ? query === '' ? formatMessage(_i18n.messages.searchResultsStatusSeeAll) : formatMessage(_i18n.messages.searchResultsStatus, {
73
82
  count: resultsCount
74
- }) : null), (0, _expVal.expVal)('platform_teamoji_26_refresh_emoji_picker', 'isEnabled', false) ? /*#__PURE__*/_react.default.createElement("div", {
83
+ }) : null), isRefreshEmojiPickerEnabled() ? /*#__PURE__*/_react.default.createElement("div", {
75
84
  className: (0, _runtime.ax)(["_n6341l7x _18z11b66"])
76
85
  }, /*#__PURE__*/_react.default.createElement(_textfield.default, {
77
86
  role: "searchbox",
@@ -14,12 +14,21 @@ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/de
14
14
  var _react = _interopRequireWildcard(require("react"));
15
15
  var _reactVirtual = require("@tanstack/react-virtual");
16
16
  var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
17
- var _expVal = require("@atlaskit/tmp-editor-statsig/expVal");
17
+ var _featureGateJsClient = _interopRequireDefault(require("@atlaskit/feature-gate-js-client"));
18
18
  var _useEmojiPickerListContext = require("../../hooks/useEmojiPickerListContext");
19
19
  var _constants = require("../../util/constants");
20
20
  function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
21
21
  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; }
22
22
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
23
+ var isRefreshEmojiPickerEnabled = function isRefreshEmojiPickerEnabled() {
24
+ if (!_featureGateJsClient.default.initializeCompleted()) {
25
+ return false;
26
+ }
27
+
28
+ // eslint-disable-next-line @atlaskit/platform/use-recommended-utils
29
+ var isEnabled = _featureGateJsClient.default.getExperimentValue('platform_teamoji_26_refresh_emoji_picker', 'isEnabled', false);
30
+ return isEnabled;
31
+ };
23
32
  var virtualList = null;
24
33
  var virtualRowStyle = null;
25
34
  var virtualListScrollContainerTestId = exports.virtualListScrollContainerTestId = 'virtual-list-scroll-container';
@@ -65,7 +74,7 @@ var VirtualList = exports.VirtualList = /*#__PURE__*/_react.default.forwardRef(f
65
74
  var elemBottom = elementRect.bottom;
66
75
  var parentTop = parentRect.top;
67
76
  var parentBottom = parentRect.bottom;
68
- var isVisible = (0, _expVal.expVal)('platform_teamoji_26_refresh_emoji_picker', 'isEnabled', false) ? elemTop >= parentTop && elemBottom <= parentBottom : elemBottom > parentTop && elemTop < parentBottom;
77
+ var isVisible = isRefreshEmojiPickerEnabled() ? elemTop >= parentTop && elemBottom <= parentBottom : elemBottom > parentTop && elemTop < parentBottom;
69
78
  return isVisible;
70
79
  };
71
80
  var getFirstVisibleListElementIndex = (0, _react.useCallback)(function () {
@@ -84,7 +93,7 @@ var VirtualList = exports.VirtualList = /*#__PURE__*/_react.default.forwardRef(f
84
93
  var _virtualList$firstVis;
85
94
  return ((_virtualList$firstVis = virtualList[firstVisibleIndex]) === null || _virtualList$firstVis === void 0 ? void 0 : _virtualList$firstVis.index) || 0;
86
95
  }
87
- return (0, _expVal.expVal)('platform_teamoji_26_refresh_emoji_picker', 'isEnabled', false) ? ((_virtualList$ = virtualList[0]) === null || _virtualList$ === void 0 ? void 0 : _virtualList$.index) || 0 : 0;
96
+ return isRefreshEmojiPickerEnabled() ? ((_virtualList$ = virtualList[0]) === null || _virtualList$ === void 0 ? void 0 : _virtualList$.index) || 0 : 0;
88
97
  }, [rowVirtualizer]);
89
98
 
90
99
  /**
@@ -20,7 +20,7 @@ var createEvent = function createEvent(eventType, action, actionSubject, actionS
20
20
  actionSubjectId: actionSubjectId,
21
21
  attributes: _objectSpread({
22
22
  packageName: "@atlaskit/emoji",
23
- packageVersion: "71.4.5"
23
+ packageVersion: "71.4.7"
24
24
  }, attributes)
25
25
  };
26
26
  };
@@ -7,7 +7,7 @@ import { tokenizerRegex } from './EmojiRepositoryRegex';
7
7
  import { createSearchEmojiComparator, createUsageOnlyEmojiComparator } from './internal/Comparators';
8
8
  import { UsageFrequencyTracker } from './internal/UsageFrequencyTracker';
9
9
  import { fg } from '@atlaskit/platform-feature-flags';
10
- import { expVal } from '@atlaskit/tmp-editor-statsig/expVal';
10
+ import FeatureGates from '@atlaskit/feature-gate-js-client';
11
11
  // FS-1097 - duplicated in mentions - extract at some point into a shared library
12
12
  class Tokenizer {
13
13
  tokenize(text) {
@@ -93,6 +93,15 @@ const findEmojiIndex = (emojis, toFind) => {
93
93
  return match;
94
94
  };
95
95
  const teamojiRefreshExperimentName = 'platform_teamoji_26_refresh_emoji_picker';
96
+ const isRefreshEmojiPickerEnabled = () => {
97
+ if (!FeatureGates.initializeCompleted()) {
98
+ return false;
99
+ }
100
+
101
+ // eslint-disable-next-line @atlaskit/platform/use-recommended-utils
102
+ const isEnabled = FeatureGates.getExperimentValue(teamojiRefreshExperimentName, 'isEnabled', false);
103
+ return isEnabled;
104
+ };
96
105
  export default class EmojiRepository {
97
106
  // protected to allow subclasses to access (for testing and storybooks).
98
107
 
@@ -168,7 +177,7 @@ export default class EmojiRepository {
168
177
  findInCategory(categoryId) {
169
178
  if (categoryId === frequentCategory) {
170
179
  return this.getFrequentlyUsed();
171
- } else if (expVal(teamojiRefreshExperimentName, 'isEnabled', false) && categoryId === 'ATLASSIAN') {
180
+ } else if (isRefreshEmojiPickerEnabled() && categoryId === 'ATLASSIAN') {
172
181
  return this.all().emojis.filter(emoji => emoji.type === 'ATLASSIAN');
173
182
  } else {
174
183
  return this.all().emojis.filter(emoji => emoji.category === categoryId);
@@ -288,7 +297,7 @@ export default class EmojiRepository {
288
297
  this.asciiMap = new Map();
289
298
  const categorySet = new Set();
290
299
  this.emojis.forEach(emoji => {
291
- categorySet.add(this.getDynamicCategoryForEmoji(emoji, expVal(teamojiRefreshExperimentName, 'isEnabled', false)));
300
+ categorySet.add(this.getDynamicCategoryForEmoji(emoji, isRefreshEmojiPickerEnabled()));
292
301
  this.addToMaps(emoji);
293
302
  });
294
303
  if (this.usageTracker.getOrder().length) {
@@ -302,7 +311,7 @@ export default class EmojiRepository {
302
311
  this.fullSearch.searchIndex = new UnorderedSearchIndex();
303
312
  this.fullSearch.addIndex('name');
304
313
  this.fullSearch.addIndex('shortName');
305
- if (expVal(teamojiRefreshExperimentName, 'isEnabled', false)) {
314
+ if (isRefreshEmojiPickerEnabled()) {
306
315
  this.fullSearch.addIndex('keywords');
307
316
  }
308
317
  this.fullSearch.addDocuments(this.getAllSearchableEmojis());
@@ -332,7 +341,7 @@ export default class EmojiRepository {
332
341
  }
333
342
  }
334
343
  addToDynamicCategories(emoji) {
335
- const category = this.getDynamicCategoryForEmoji(emoji, expVal(teamojiRefreshExperimentName, 'isEnabled', false));
344
+ const category = this.getDynamicCategoryForEmoji(emoji, isRefreshEmojiPickerEnabled());
336
345
  if (defaultCategories.indexOf(category) === -1 && this.dynamicCategoryList.indexOf(category) === -1) {
337
346
  this.dynamicCategoryList.push(category);
338
347
  }
@@ -7,7 +7,16 @@ import CrossCircleIcon from '@atlaskit/icon/core/cross-circle';
7
7
  import { deleteEmojiLabel } from '../../util/constants';
8
8
  import { emojiDeleteButton } from './styles';
9
9
  import { Box } from '@atlaskit/primitives/compiled';
10
- import { expVal } from '@atlaskit/tmp-editor-statsig/expVal';
10
+ import FeatureGates from '@atlaskit/feature-gate-js-client';
11
+ const isRefreshEmojiPickerEnabled = () => {
12
+ if (!FeatureGates.initializeCompleted()) {
13
+ return false;
14
+ }
15
+
16
+ // eslint-disable-next-line @atlaskit/platform/use-recommended-utils
17
+ const isEnabled = FeatureGates.getExperimentValue('platform_teamoji_26_refresh_emoji_picker', 'isEnabled', false);
18
+ return isEnabled;
19
+ };
11
20
  const styles = {
12
21
  boxWrapperStyle: "_1bsbf6fq _4t3if6fq"
13
22
  };
@@ -19,7 +28,7 @@ const refreshedDeleteButton = null;
19
28
  */
20
29
  export const RENDER_EMOJI_DELETE_BUTTON_TESTID = 'render-emoji-delete-button';
21
30
  const DeleteButton = props => {
22
- const isRefreshEnabled = expVal('platform_teamoji_26_refresh_emoji_picker', 'isEnabled', false);
31
+ const isRefreshEnabled = isRefreshEmojiPickerEnabled();
23
32
  return /*#__PURE__*/React.createElement("span", {
24
33
  // eslint-disable-next-line @atlaskit/ui-styling-standard/no-classname-prop -- Ignored via go/DSP-18766
25
34
  className: ax(["_3um015vq _1e0c1txw _kqswstnw _154ix0bf _1xi2x0bf _1pbykb7n _13t3idpf", isRefreshEnabled && "_154ir5cr _1xi2r5cr", emojiDeleteButton]),
@@ -5,7 +5,7 @@ import * as React from 'react';
5
5
  import { ax, ix } from "@compiled/react/runtime";
6
6
  import { Fragment, useState, useRef, memo, useLayoutEffect, useCallback, useEffect } from 'react';
7
7
  import { fg } from '@atlaskit/platform-feature-flags';
8
- import { expVal } from '@atlaskit/tmp-editor-statsig/expVal';
8
+ import FeatureGates from '@atlaskit/feature-gate-js-client';
9
9
  import { FormattedMessage, injectIntl } from 'react-intl';
10
10
  import EmojiDeletePreview from './EmojiDeletePreview';
11
11
  import EmojiUploadPicker from './EmojiUploadPicker';
@@ -22,6 +22,15 @@ import { emojiPickerAddEmoji } from './styles';
22
22
  import { DEFAULT_TONE } from '../../util/constants';
23
23
  import { Box } from '@atlaskit/primitives/compiled';
24
24
  import { layers } from '@atlaskit/theme/constants';
25
+ const isRefreshEmojiPickerEnabled = () => {
26
+ if (!FeatureGates.initializeCompleted()) {
27
+ return false;
28
+ }
29
+
30
+ // eslint-disable-next-line @atlaskit/platform/use-recommended-utils
31
+ const isEnabled = FeatureGates.getExperimentValue('platform_teamoji_26_refresh_emoji_picker', 'isEnabled', false);
32
+ return isEnabled;
33
+ };
25
34
  const styles = {
26
35
  icon: "_18u0r5cr _2hwx1i6y"
27
36
  };
@@ -131,7 +140,7 @@ const TonesWrapper = props => {
131
140
  openProductivityColorSelectorWithKeyboard.current = true;
132
141
  }
133
142
  }, []);
134
- const shouldShowProductivityColorSelector = !!(activeCategoryId === 'ATLASSIAN' && productivityColorPreviewEmojis && selectedProductivityColor && onProductivityColorSelected && expVal('platform_teamoji_26_refresh_emoji_picker', 'isEnabled', false));
143
+ const shouldShowProductivityColorSelector = !!(activeCategoryId === 'ATLASSIAN' && productivityColorPreviewEmojis && selectedProductivityColor && onProductivityColorSelected && isRefreshEmojiPickerEnabled());
135
144
  if (shouldShowProductivityColorSelector) {
136
145
  const previewEmoji = (productivityColorPreviewEmojis === null || productivityColorPreviewEmojis === void 0 ? void 0 : productivityColorPreviewEmojis[selectedProductivityColor]) || Object.values(productivityColorPreviewEmojis || {})[0];
137
146
  if (!previewEmoji) {
@@ -210,7 +219,7 @@ export const EmojiActions = props => {
210
219
  } = props;
211
220
  const [showToneSelector, setShowToneSelector] = useState(false);
212
221
  const wasProductivityColorSelectorOpen = useRef(false);
213
- const shouldUseProductivityColorControl = !!(props.activeCategoryId === 'ATLASSIAN' && props.productivityColorPreviewEmojis && props.selectedProductivityColor && props.onProductivityColorSelected && expVal('platform_teamoji_26_refresh_emoji_picker', 'isEnabled', false));
222
+ const shouldUseProductivityColorControl = !!(props.activeCategoryId === 'ATLASSIAN' && props.productivityColorPreviewEmojis && props.selectedProductivityColor && props.onProductivityColorSelected && isRefreshEmojiPickerEnabled());
214
223
  const onToneOpenHandler = useCallback(() => setShowToneSelector(true), []);
215
224
  const onToneCloseHandler = useCallback(() => setShowToneSelector(false), []);
216
225
  const onToneToggleHandler = useCallback(() => {
@@ -242,7 +251,7 @@ export const EmojiActions = props => {
242
251
  }
243
252
  }, [shouldUseProductivityColorControl, showToneSelector]);
244
253
  if (uploading) {
245
- return expVal('platform_teamoji_26_refresh_emoji_picker', 'isEnabled', false) ? /*#__PURE__*/React.createElement("div", {
254
+ return isRefreshEmojiPickerEnabled() ? /*#__PURE__*/React.createElement("div", {
246
255
  className: ax(["_16jlidpf _1o9zidpf _i0dl1wug"])
247
256
  }, /*#__PURE__*/React.createElement(EmojiUploadPicker, {
248
257
  onUploadCancelled: onUploadCancelled,
@@ -261,7 +270,7 @@ export const EmojiActions = props => {
261
270
  }));
262
271
  }
263
272
  if (emojiToDelete) {
264
- return expVal('platform_teamoji_26_refresh_emoji_picker', 'isEnabled', false) ? /*#__PURE__*/React.createElement("div", {
273
+ return isRefreshEmojiPickerEnabled() ? /*#__PURE__*/React.createElement("div", {
265
274
  className: ax(["_16jlidpf _1o9zidpf _i0dl1wug"])
266
275
  }, /*#__PURE__*/React.createElement(EmojiDeletePreview, {
267
276
  emoji: emojiToDelete,
@@ -275,7 +284,7 @@ export const EmojiActions = props => {
275
284
  onCloseDelete: onCloseDelete
276
285
  }));
277
286
  }
278
- return expVal('platform_teamoji_26_refresh_emoji_picker', 'isEnabled', false) ? /*#__PURE__*/React.createElement("div", {
287
+ return isRefreshEmojiPickerEnabled() ? /*#__PURE__*/React.createElement("div", {
279
288
  "data-testid": emojiActionsTestId,
280
289
  onMouseLeave: onMouseLeaveHandler,
281
290
  onBlur: fg('platform_suppression_removal_fix_reactions') ? onMouseLeaveHandler : undefined,
@@ -5,7 +5,7 @@ import "./EmojiDeletePreview.compiled.css";
5
5
  import * as React from 'react';
6
6
  import { ax, ix } from "@compiled/react/runtime";
7
7
  import { Component } from 'react';
8
- import { expVal } from '@atlaskit/tmp-editor-statsig/expVal';
8
+ import FeatureGates from '@atlaskit/feature-gate-js-client';
9
9
  import { FormattedMessage, injectIntl } from 'react-intl';
10
10
  import AkButton from '@atlaskit/button/new';
11
11
  import Heading from '@atlaskit/heading';
@@ -16,6 +16,15 @@ import CachingEmoji from './CachingEmoji';
16
16
  import EmojiErrorMessage, { emojiErrorScreenreaderTestId } from './EmojiErrorMessage';
17
17
  import RetryableButton from './RetryableButton';
18
18
  import VisuallyHidden from '@atlaskit/visually-hidden';
19
+ const isRefreshEmojiPickerEnabled = () => {
20
+ if (!FeatureGates.initializeCompleted()) {
21
+ return false;
22
+ }
23
+
24
+ // eslint-disable-next-line @atlaskit/platform/use-recommended-utils
25
+ const isEnabled = FeatureGates.getExperimentValue('platform_teamoji_26_refresh_emoji_picker', 'isEnabled', false);
26
+ return isEnabled;
27
+ };
19
28
  const deleteFooter = null;
20
29
  const deletePreview = null;
21
30
  const deleteText = null;
@@ -78,7 +87,7 @@ class EmojiDeletePreview extends Component {
78
87
  const {
79
88
  formatMessage
80
89
  } = intl;
81
- if (expVal('platform_teamoji_26_refresh_emoji_picker', 'isEnabled', false)) {
90
+ if (isRefreshEmojiPickerEnabled()) {
82
91
  return /*#__PURE__*/React.createElement(FocusLock, {
83
92
  noFocusGuards: true
84
93
  }, /*#__PURE__*/React.createElement("div", {
@@ -6,8 +6,17 @@ import Tooltip from '@atlaskit/tooltip';
6
6
  import ErrorIcon from '@atlaskit/icon/core/status-error';
7
7
  import { ErrorMessage } from '@atlaskit/form';
8
8
  import { useIntl } from 'react-intl';
9
- import { expVal } from '@atlaskit/tmp-editor-statsig/expVal';
9
+ import FeatureGates from '@atlaskit/feature-gate-js-client';
10
10
  import { messages } from '../i18n';
11
+ const isRefreshEmojiPickerEnabled = () => {
12
+ if (!FeatureGates.initializeCompleted()) {
13
+ return false;
14
+ }
15
+
16
+ // eslint-disable-next-line @atlaskit/platform/use-recommended-utils
17
+ const isEnabled = FeatureGates.getExperimentValue('platform_teamoji_26_refresh_emoji_picker', 'isEnabled', false);
18
+ return isEnabled;
19
+ };
11
20
  const errorMessageStyles = {
12
21
  chooseFile: "_1e0c1txw _syaz1tmw _u5f319bv _1bah1y6m",
13
22
  delete: "_1e0c1txw _syaz1tmw _4cvr1h6o _1bahesu3 _u5f31b66",
@@ -38,7 +47,7 @@ const EmojiErrorMessage = props => {
38
47
  label: formatMessage(messages.error),
39
48
  spacing: "spacious",
40
49
  testId: emojiErrorIconTestId
41
- }))) : expVal('platform_teamoji_26_refresh_emoji_picker', 'isEnabled', false) ? /*#__PURE__*/React.createElement("div", {
50
+ }))) : isRefreshEmojiPickerEnabled() ? /*#__PURE__*/React.createElement("div", {
42
51
  "data-testid": emojiErrorMessageTestId
43
52
  }, /*#__PURE__*/React.createElement(ErrorMessage, null, message)) : /*#__PURE__*/React.createElement("div", {
44
53
  "data-testid": emojiErrorMessageTestId,
@@ -17,10 +17,19 @@ import EmojiUploadPreview from './EmojiUploadPreview';
17
17
  import FileChooser from './FileChooser';
18
18
  import { UploadStatus } from './internal-types';
19
19
  import { fg } from '@atlaskit/platform-feature-flags';
20
- import { expVal } from '@atlaskit/tmp-editor-statsig/expVal';
20
+ import FeatureGates from '@atlaskit/feature-gate-js-client';
21
21
  import Button from '@atlaskit/button/new';
22
22
  import { Box } from '@atlaskit/primitives/compiled';
23
23
  import { getDocument } from '@atlaskit/browser-apis';
24
+ const isRefreshEmojiPickerEnabled = () => {
25
+ if (!FeatureGates.initializeCompleted()) {
26
+ return false;
27
+ }
28
+
29
+ // eslint-disable-next-line @atlaskit/platform/use-recommended-utils
30
+ const isEnabled = FeatureGates.getExperimentValue('platform_teamoji_26_refresh_emoji_picker', 'isEnabled', false);
31
+ return isEnabled;
32
+ };
24
33
  const closeEmojiUploadButton = null;
25
34
  const uploadAddRowNew = null;
26
35
  const emojiUpload = null;
@@ -56,7 +65,7 @@ const toDefaultUploadName = fileName => {
56
65
  return sanitizeName(nameWithoutExtension).slice(0, maxNameLength);
57
66
  };
58
67
  const isSupportedEmojiUploadFileType = file => {
59
- if (!expVal('platform_teamoji_26_refresh_emoji_picker', 'isEnabled', false)) {
68
+ if (!isRefreshEmojiPickerEnabled()) {
60
69
  return true;
61
70
  }
62
71
  if (supportedEmojiUploadMimeTypes.has(file.type)) {
@@ -103,7 +112,7 @@ const ChooseEmojiFile = /*#__PURE__*/memo(props => {
103
112
  const emojiChooseFileTitleNew = formatMessage(messages.emojiChooseFileDndTitle);
104
113
  const isUploading = uploadStatus === UploadStatus.Uploading;
105
114
  const addEmojiDisabled = !previewImage || !name || isUploading;
106
- return expVal('platform_teamoji_26_refresh_emoji_picker', 'isEnabled', false) ? /*#__PURE__*/React.createElement("div", {
115
+ return isRefreshEmojiPickerEnabled() ? /*#__PURE__*/React.createElement("div", {
107
116
  "data-testid": uploadEmojiComponentTestId,
108
117
  className: ax(["_ca0qu2gc _u5f3pxbi _n3tdu2gc _19bvpxbi _1e0c1txw _2lx21bp4 _1bah1b1v"])
109
118
  }, /*#__PURE__*/React.createElement("div", {
@@ -114,7 +123,7 @@ const ChooseEmojiFile = /*#__PURE__*/memo(props => {
114
123
  }, previewImage ? /*#__PURE__*/React.createElement(FormattedMessage, messages.emojiPreviewTitle) : /*#__PURE__*/React.createElement(FormattedMessage, messages.addCustomEmojiLabel))), /*#__PURE__*/React.createElement("div", {
115
124
  className: ax(["_zulp12x7 _1e0c1txw _2lx21bp4 _1tker0r7"])
116
125
  }, /*#__PURE__*/React.createElement(Box, null, /*#__PURE__*/React.createElement(FormattedMessage, messages.emojiChooseFileScreenReaderDescription, () => /*#__PURE__*/React.createElement(FileChooser, {
117
- label: expVal('platform_teamoji_26_refresh_emoji_picker', 'isEnabled', false) ? emojiChooseFileTitleNew : emojiChooseFileTitle,
126
+ label: isRefreshEmojiPickerEnabled() ? emojiChooseFileTitleNew : emojiChooseFileTitle,
118
127
  onChange: onChooseFile,
119
128
  onClick: onClick,
120
129
  accept: "image/png,image/jpeg,image/gif",
@@ -197,7 +206,7 @@ const ChooseEmojiFile = /*#__PURE__*/memo(props => {
197
206
  id: "new-emoji-name-input",
198
207
  "aria-required": true
199
208
  })), /*#__PURE__*/React.createElement(Text, null, /*#__PURE__*/React.createElement(FormattedMessage, messages.emojiChooseFileScreenReaderDescription, () => /*#__PURE__*/React.createElement(FileChooser, {
200
- label: expVal('platform_teamoji_26_refresh_emoji_picker', 'isEnabled', false) ? emojiChooseFileTitleNew : emojiChooseFileTitle,
209
+ label: isRefreshEmojiPickerEnabled() ? emojiChooseFileTitleNew : emojiChooseFileTitle,
201
210
  onChange: onChooseFile,
202
211
  onClick: onClick,
203
212
  accept: "image/png,image/jpeg,image/gif",
@@ -301,7 +310,7 @@ const EmojiUploadPicker = props => {
301
310
  const onFileLoad = useCallback(file => async f => {
302
311
  try {
303
312
  setFilename(file.name);
304
- if (!name && expVal('platform_teamoji_26_refresh_emoji_picker', 'isEnabled', false)) {
313
+ if (!name && isRefreshEmojiPickerEnabled()) {
305
314
  setName(toDefaultUploadName(file.name));
306
315
  }
307
316
  await ImageUtil.parseImage(f.target.result);
@@ -354,8 +363,8 @@ const EmojiUploadPicker = props => {
354
363
  const onChooseFileClicked = () => {
355
364
  onFileChooserClicked && onFileChooserClicked();
356
365
  };
357
- const isDuplicateNameError = errorMessage !== null && errorMessage !== undefined && expVal('platform_teamoji_26_refresh_emoji_picker', 'isEnabled', false);
358
- const content = name && previewImage && !expVal('platform_teamoji_26_refresh_emoji_picker', 'isEnabled', false) ? /*#__PURE__*/React.createElement(EmojiUploadPreview, {
366
+ const isDuplicateNameError = errorMessage !== null && errorMessage !== undefined && isRefreshEmojiPickerEnabled();
367
+ const content = name && previewImage && !isRefreshEmojiPickerEnabled() ? /*#__PURE__*/React.createElement(EmojiUploadPreview, {
359
368
  errorMessage: errorMessage,
360
369
  name: name,
361
370
  onAddEmoji: onAddEmoji,
@@ -375,7 +384,7 @@ const EmojiUploadPicker = props => {
375
384
  nameErrorMessage: isDuplicateNameError ? errorMessage : undefined,
376
385
  intl: intl
377
386
  });
378
- return disableFocusLock || expVal('platform_teamoji_26_refresh_emoji_picker', 'isEnabled', false) ? content : /*#__PURE__*/React.createElement(FocusLock, {
387
+ return disableFocusLock || isRefreshEmojiPickerEnabled() ? content : /*#__PURE__*/React.createElement(FocusLock, {
379
388
  noFocusGuards: true
380
389
  }, content);
381
390
  };