@atlaskit/emoji 64.4.1 → 64.5.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (50) hide show
  1. package/CHANGELOG.md +23 -0
  2. package/dist/cjs/api/EmojiResource.js +3 -5
  3. package/dist/cjs/components/common/CachingEmoji.js +8 -6
  4. package/dist/cjs/components/common/ResourcedEmojiComponent.js +12 -17
  5. package/dist/cjs/components/picker/EmojiPickerComponent.js +11 -16
  6. package/dist/cjs/components/picker/EmojiPickerList.js +0 -20
  7. package/dist/cjs/components/typeahead/EmojiTypeAheadComponent.js +11 -16
  8. package/dist/cjs/components/typeahead/EmojiTypeAheadItem.js +4 -2
  9. package/dist/cjs/context/EmojiContext.js +11 -0
  10. package/dist/cjs/context/EmojiContextProvider.js +29 -0
  11. package/dist/cjs/context/LegacyEmojiContextProvider.js +76 -0
  12. package/dist/cjs/version.json +1 -1
  13. package/dist/es2019/api/EmojiResource.js +3 -6
  14. package/dist/es2019/components/common/CachingEmoji.js +7 -5
  15. package/dist/es2019/components/common/ResourcedEmojiComponent.js +11 -16
  16. package/dist/es2019/components/picker/EmojiPickerComponent.js +10 -15
  17. package/dist/es2019/components/picker/EmojiPickerList.js +0 -19
  18. package/dist/es2019/components/typeahead/EmojiTypeAheadComponent.js +10 -15
  19. package/dist/es2019/components/typeahead/EmojiTypeAheadItem.js +3 -2
  20. package/dist/es2019/context/EmojiContext.js +2 -0
  21. package/dist/es2019/context/EmojiContextProvider.js +11 -0
  22. package/dist/es2019/context/LegacyEmojiContextProvider.js +32 -0
  23. package/dist/es2019/version.json +1 -1
  24. package/dist/esm/api/EmojiResource.js +3 -5
  25. package/dist/esm/components/common/CachingEmoji.js +7 -5
  26. package/dist/esm/components/common/ResourcedEmojiComponent.js +10 -16
  27. package/dist/esm/components/picker/EmojiPickerComponent.js +10 -16
  28. package/dist/esm/components/picker/EmojiPickerList.js +0 -21
  29. package/dist/esm/components/typeahead/EmojiTypeAheadComponent.js +10 -16
  30. package/dist/esm/components/typeahead/EmojiTypeAheadItem.js +3 -2
  31. package/dist/esm/context/EmojiContext.js +2 -0
  32. package/dist/esm/context/EmojiContextProvider.js +12 -0
  33. package/dist/esm/context/LegacyEmojiContextProvider.js +57 -0
  34. package/dist/esm/version.json +1 -1
  35. package/dist/types/api/EmojiResource.d.ts +1 -0
  36. package/dist/types/api/EmojiUtils.d.ts +1 -1
  37. package/dist/types/components/common/CachingEmoji.d.ts +6 -8
  38. package/dist/types/components/common/EmojiUploadPicker.d.ts +2 -2
  39. package/dist/types/components/common/ResourcedEmojiComponent.d.ts +0 -6
  40. package/dist/types/components/common/ToneSelector.d.ts +1 -1
  41. package/dist/types/components/picker/EmojiPicker.d.ts +1 -1
  42. package/dist/types/components/picker/EmojiPickerComponent.d.ts +2 -8
  43. package/dist/types/components/picker/EmojiPickerList.d.ts +0 -10
  44. package/dist/types/components/typeahead/EmojiTypeAheadComponent.d.ts +2 -8
  45. package/dist/types/components/uploader/EmojiUploader.d.ts +1 -1
  46. package/dist/types/context/EmojiContext.d.ts +4 -0
  47. package/dist/types/context/EmojiContextProvider.d.ts +7 -0
  48. package/dist/types/context/LegacyEmojiContextProvider.d.ts +22 -0
  49. package/dist/types/util/analytics/analytics.d.ts +21 -21
  50. package/package.json +6 -6
package/CHANGELOG.md CHANGED
@@ -1,5 +1,28 @@
1
1
  # @atlaskit/emoji
2
2
 
3
+ ## 64.5.2
4
+
5
+ ### Patch Changes
6
+
7
+ - [`a424e62b264`](https://bitbucket.org/atlassian/atlassian-frontend/commits/a424e62b264) - Changes to support Node 16 Typescript definitions from `@types/node`.
8
+
9
+ ## 64.5.1
10
+
11
+ ### Patch Changes
12
+
13
+ - [`cb2392f6d33`](https://bitbucket.org/atlassian/atlassian-frontend/commits/cb2392f6d33) - Upgrade to TypeScript 4.2.4
14
+ - Updated dependencies
15
+
16
+ ## 64.5.0
17
+
18
+ ### Minor Changes
19
+
20
+ - [`fcb3b3f77e2`](https://bitbucket.org/atlassian/atlassian-frontend/commits/fcb3b3f77e2) - Context Provider to convert legacy providers to non legacy providers
21
+
22
+ ### Patch Changes
23
+
24
+ - Updated dependencies
25
+
3
26
  ## 64.4.1
4
27
 
5
28
  ### Patch Changes
@@ -52,13 +52,11 @@ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Re
52
52
  *
53
53
  * Follow this up with an isUploadSupported() check to see if the provider is actually
54
54
  * configured to support uploads.
55
+ * https://www.typescriptlang.org/docs/handbook/2/narrowing.html#using-type-predicates
55
56
  */
56
57
  var supportsUploadFeature = function supportsUploadFeature(emojiProvider) {
57
- var _ref = emojiProvider,
58
- isUploadSupported = _ref.isUploadSupported,
59
- prepareForUpload = _ref.prepareForUpload,
60
- uploadCustomEmoji = _ref.uploadCustomEmoji;
61
- return !!(isUploadSupported && prepareForUpload && uploadCustomEmoji);
58
+ var emojiUploadProvider = emojiProvider;
59
+ return !!emojiUploadProvider.isUploadSupported && !!emojiUploadProvider.uploadCustomEmoji && !!emojiUploadProvider.prepareForUpload;
62
60
  };
63
61
 
64
62
  exports.supportsUploadFeature = supportsUploadFeature;
@@ -27,8 +27,6 @@ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/de
27
27
 
28
28
  var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
29
29
 
30
- var _propTypes = _interopRequireDefault(require("prop-types"));
31
-
32
30
  var _react = _interopRequireWildcard(require("react"));
33
31
 
34
32
  var _EmojiUtils = require("../../api/EmojiUtils");
@@ -47,6 +45,8 @@ var _analytics = require("../../util/analytics");
47
45
 
48
46
  var _constants = require("../../util/constants");
49
47
 
48
+ var _EmojiContext = require("../../context/EmojiContext");
49
+
50
50
  var _excluded = ["placeholderSize"],
51
51
  _excluded2 = ["children", "placeholderSize"];
52
52
 
@@ -100,7 +100,7 @@ var CachingMediaEmoji = /*#__PURE__*/function (_PureComponent) {
100
100
  var _this;
101
101
 
102
102
  (0, _classCallCheck2.default)(this, CachingMediaEmoji);
103
- _this = _super.call(this, props, context);
103
+ _this = _super.call(this, props);
104
104
  (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "mounted", false);
105
105
  (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "handleLoadError", function (_emojiId, emoji) {
106
106
  var invalidImage = _this.state.invalidImage;
@@ -152,6 +152,10 @@ var CachingMediaEmoji = /*#__PURE__*/function (_PureComponent) {
152
152
  value: function loadEmoji(emoji, context, forceLoad) {
153
153
  var _this2 = this;
154
154
 
155
+ if (!context) {
156
+ return;
157
+ }
158
+
155
159
  if (!context.emoji) {
156
160
  return undefined;
157
161
  }
@@ -243,8 +247,6 @@ var CachingMediaEmoji = /*#__PURE__*/function (_PureComponent) {
243
247
  }(_react.PureComponent);
244
248
 
245
249
  exports.CachingMediaEmoji = CachingMediaEmoji;
246
- (0, _defineProperty2.default)(CachingMediaEmoji, "contextTypes", {
247
- emoji: _propTypes.default.object
248
- });
250
+ (0, _defineProperty2.default)(CachingMediaEmoji, "contextType", _EmojiContext.EmojiContext);
249
251
  var _default = CachingEmoji;
250
252
  exports.default = _default;
@@ -23,8 +23,6 @@ var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/ge
23
23
 
24
24
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
25
25
 
26
- var _propTypes = _interopRequireDefault(require("prop-types"));
27
-
28
26
  var _react = _interopRequireWildcard(require("react"));
29
27
 
30
28
  var _constants = require("../../util/constants");
@@ -37,6 +35,8 @@ var _EmojiPlaceholder = _interopRequireDefault(require("./EmojiPlaceholder"));
37
35
 
38
36
  var _analytics = require("../../util/analytics");
39
37
 
38
+ var _LegacyEmojiContextProvider = _interopRequireDefault(require("../../context/LegacyEmojiContextProvider"));
39
+
40
40
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
41
41
 
42
42
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
@@ -64,15 +64,6 @@ var ResourcedEmojiComponent = /*#__PURE__*/function (_Component) {
64
64
  }
65
65
 
66
66
  (0, _createClass2.default)(ResourcedEmojiComponent, [{
67
- key: "getChildContext",
68
- value: function getChildContext() {
69
- return {
70
- emoji: {
71
- emojiProvider: this.props.emojiProvider
72
- }
73
- };
74
- }
75
- }, {
76
67
  key: "refreshEmoji",
77
68
  value: function refreshEmoji(emojiProvider, emojiId) {
78
69
  var _this2 = this;
@@ -176,17 +167,21 @@ var ResourcedEmojiComponent = /*#__PURE__*/function (_Component) {
176
167
  shortName = _this$props$emojiId.shortName,
177
168
  id = _this$props$emojiId.id,
178
169
  fallback = _this$props$emojiId.fallback;
179
- return /*#__PURE__*/_react.default.createElement("span", {
170
+ var emojiContextValue = {
171
+ emoji: {
172
+ emojiProvider: this.props.emojiProvider
173
+ }
174
+ };
175
+ return /*#__PURE__*/_react.default.createElement(_LegacyEmojiContextProvider.default, {
176
+ emojiContextValue: emojiContextValue
177
+ }, /*#__PURE__*/_react.default.createElement("span", {
180
178
  "data-emoji-id": id,
181
179
  "data-emoji-short-name": shortName,
182
180
  "data-emoji-text": fallback || shortName
183
- }, element);
181
+ }, element));
184
182
  }
185
183
  }]);
186
184
  return ResourcedEmojiComponent;
187
185
  }(_react.Component);
188
186
 
189
- exports.default = ResourcedEmojiComponent;
190
- (0, _defineProperty2.default)(ResourcedEmojiComponent, "childContextTypes", {
191
- emoji: _propTypes.default.object
192
- });
187
+ exports.default = ResourcedEmojiComponent;
@@ -25,8 +25,6 @@ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/de
25
25
 
26
26
  var _core = require("@emotion/core");
27
27
 
28
- var _propTypes = _interopRequireDefault(require("prop-types"));
29
-
30
28
  var _react = require("react");
31
29
 
32
30
  var _reactIntlNext = require("react-intl-next");
@@ -57,6 +55,8 @@ var _analytics = require("../../util/analytics");
57
55
 
58
56
  var _styles = require("./styles");
59
57
 
58
+ var _LegacyEmojiContextProvider = _interopRequireDefault(require("../../context/LegacyEmojiContextProvider"));
59
+
60
60
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
61
61
 
62
62
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
@@ -383,15 +383,6 @@ var EmojiPickerComponent = /*#__PURE__*/function (_PureComponent) {
383
383
  }
384
384
 
385
385
  (0, _createClass2.default)(EmojiPickerComponent, [{
386
- key: "getChildContext",
387
- value: function getChildContext() {
388
- return {
389
- emoji: {
390
- emojiProvider: this.props.emojiProvider
391
- }
392
- };
393
- }
394
- }, {
395
386
  key: "UNSAFE_componentWillMount",
396
387
  value: function UNSAFE_componentWillMount() {
397
388
  this.openTime = Date.now();
@@ -570,7 +561,14 @@ var EmojiPickerComponent = /*#__PURE__*/function (_PureComponent) {
570
561
  return _this4.fireAnalytics(analytic('picker'));
571
562
  });
572
563
  var formattedErrorMessage = uploadErrorMessage ? (0, _core.jsx)(_reactIntlNext.FormattedMessage, uploadErrorMessage) : null;
573
- var picker = (0, _core.jsx)("div", {
564
+ var emojiContextValue = {
565
+ emoji: {
566
+ emojiProvider: this.props.emojiProvider
567
+ }
568
+ };
569
+ var picker = (0, _core.jsx)(_LegacyEmojiContextProvider.default, {
570
+ emojiContextValue: emojiContextValue
571
+ }, (0, _core.jsx)("div", {
574
572
  css: _styles.emojiPicker,
575
573
  ref: this.handlePickerRef,
576
574
  "data-emoji-picker-container": true
@@ -608,7 +606,7 @@ var EmojiPickerComponent = /*#__PURE__*/function (_PureComponent) {
608
606
  }), (0, _core.jsx)(_EmojiPickerFooter.default, {
609
607
  selectedEmoji: selectedEmoji,
610
608
  isUploading: uploading
611
- }));
609
+ })));
612
610
  return picker;
613
611
  }
614
612
  }]);
@@ -616,9 +614,6 @@ var EmojiPickerComponent = /*#__PURE__*/function (_PureComponent) {
616
614
  }(_react.PureComponent);
617
615
 
618
616
  exports.default = EmojiPickerComponent;
619
- (0, _defineProperty2.default)(EmojiPickerComponent, "childContextTypes", {
620
- emoji: _propTypes.default.object
621
- });
622
617
  (0, _defineProperty2.default)(EmojiPickerComponent, "defaultProps", {
623
618
  onSelection: function onSelection() {}
624
619
  });
@@ -27,8 +27,6 @@ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/de
27
27
 
28
28
  var _core = require("@emotion/core");
29
29
 
30
- var _propTypes = _interopRequireDefault(require("prop-types"));
31
-
32
30
  var _react = _interopRequireWildcard(require("react"));
33
31
 
34
32
  var _List = require("react-virtualized/dist/commonjs/List");
@@ -51,10 +49,6 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
51
49
 
52
50
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
53
51
 
54
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
55
-
56
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
57
-
58
52
  function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }
59
53
 
60
54
  function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
@@ -250,14 +244,6 @@ var EmojiPickerVirtualList = /*#__PURE__*/function (_PureComponent) {
250
244
  }
251
245
 
252
246
  (0, _createClass2.default)(EmojiPickerVirtualList, [{
253
- key: "getChildContext",
254
- value: function getChildContext() {
255
- var emoji = this.context.emoji;
256
- return {
257
- emoji: _objectSpread({}, emoji)
258
- };
259
- }
260
- }, {
261
247
  key: "UNSAFE_componentWillUpdate",
262
248
  value: function UNSAFE_componentWillUpdate(nextProps, nextState) {
263
249
  if (this.props.emojis !== nextProps.emojis || this.props.selectedTone !== nextProps.selectedTone || this.props.loading !== nextProps.loading || this.props.query !== nextProps.query) {
@@ -345,12 +331,6 @@ var EmojiPickerVirtualList = /*#__PURE__*/function (_PureComponent) {
345
331
  }(_react.PureComponent);
346
332
 
347
333
  exports.default = EmojiPickerVirtualList;
348
- (0, _defineProperty2.default)(EmojiPickerVirtualList, "contextTypes", {
349
- emoji: _propTypes.default.object
350
- });
351
- (0, _defineProperty2.default)(EmojiPickerVirtualList, "childContextTypes", {
352
- emoji: _propTypes.default.object
353
- });
354
334
  (0, _defineProperty2.default)(EmojiPickerVirtualList, "defaultProps", {
355
335
  onEmojiSelected: function onEmojiSelected() {},
356
336
  onEmojiActive: function onEmojiActive() {},
@@ -25,8 +25,6 @@ var _core = require("@emotion/core");
25
25
 
26
26
  var _uuid = _interopRequireDefault(require("uuid"));
27
27
 
28
- var _propTypes = _interopRequireDefault(require("prop-types"));
29
-
30
28
  var _react = require("react");
31
29
 
32
30
  var _constants = require("../../util/constants");
@@ -45,6 +43,8 @@ var _EmojiTypeAheadList = _interopRequireDefault(require("./EmojiTypeAheadList")
45
43
 
46
44
  var _styles = require("./styles");
47
45
 
46
+ var _LegacyEmojiContextProvider = _interopRequireDefault(require("../../context/LegacyEmojiContextProvider"));
47
+
48
48
  function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }
49
49
 
50
50
  function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
@@ -205,15 +205,6 @@ var EmojiTypeAheadComponent = /*#__PURE__*/function (_PureComponent) {
205
205
  }
206
206
 
207
207
  (0, _createClass2.default)(EmojiTypeAheadComponent, [{
208
- key: "getChildContext",
209
- value: function getChildContext() {
210
- return {
211
- emoji: {
212
- emojiProvider: this.props.emojiProvider
213
- }
214
- };
215
- }
216
- }, {
217
208
  key: "componentDidMount",
218
209
  value: function componentDidMount() {
219
210
  var emojiProvider = this.props.emojiProvider;
@@ -324,7 +315,14 @@ var EmojiTypeAheadComponent = /*#__PURE__*/function (_PureComponent) {
324
315
  var style = {
325
316
  display: visible ? 'block' : 'none'
326
317
  };
327
- return (0, _core.jsx)("div", {
318
+ var emojiContextValue = {
319
+ emoji: {
320
+ emojiProvider: this.props.emojiProvider
321
+ }
322
+ };
323
+ return (0, _core.jsx)(_LegacyEmojiContextProvider.default, {
324
+ emojiContextValue: emojiContextValue
325
+ }, (0, _core.jsx)("div", {
328
326
  style: style,
329
327
  className: 'ak-emoji-typeahead',
330
328
  css: _styles.emojiTypeAhead
@@ -333,16 +331,13 @@ var EmojiTypeAheadComponent = /*#__PURE__*/function (_PureComponent) {
333
331
  onEmojiSelected: recordUsageOnSelection,
334
332
  ref: this.onEmojiListRef,
335
333
  loading: loading
336
- }));
334
+ })));
337
335
  }
338
336
  }]);
339
337
  return EmojiTypeAheadComponent;
340
338
  }(_react.PureComponent);
341
339
 
342
340
  exports.default = EmojiTypeAheadComponent;
343
- (0, _defineProperty2.default)(EmojiTypeAheadComponent, "childContextTypes", {
344
- emoji: _propTypes.default.object
345
- });
346
341
  (0, _defineProperty2.default)(EmojiTypeAheadComponent, "defaultProps", {
347
342
  onSelection: function onSelection() {},
348
343
  onOpen: function onOpen() {},
@@ -35,6 +35,8 @@ var _EmojiPreviewComponent = require("../common/EmojiPreviewComponent");
35
35
 
36
36
  var _styles = require("./styles");
37
37
 
38
+ var _LegacyEmojiContextProvider = _interopRequireDefault(require("../../context/LegacyEmojiContextProvider"));
39
+
38
40
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
39
41
 
40
42
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
@@ -87,7 +89,7 @@ var EmojiTypeAheadItem = /*#__PURE__*/function (_PureComponent) {
87
89
  selected = _this$props3.selected,
88
90
  emoji = _this$props3.emoji;
89
91
  var classes = [_styles.typeAheadItem, selected && _styles.selected];
90
- return (0, _core.jsx)("div", {
92
+ return (0, _core.jsx)(_LegacyEmojiContextProvider.default, null, (0, _core.jsx)("div", {
91
93
  className: "ak-emoji-typeahead-item ".concat(selected ? _styles.typeaheadSelected : ''),
92
94
  css: classes,
93
95
  onMouseDown: this.onEmojiSelected,
@@ -97,7 +99,7 @@ var EmojiTypeAheadItem = /*#__PURE__*/function (_PureComponent) {
97
99
  css: _styles.typeAheadItemRow
98
100
  }, emoji && (0, _core.jsx)(_EmojiPreviewComponent.EmojiPreviewComponent, {
99
101
  emoji: emoji
100
- })));
102
+ }))));
101
103
  }
102
104
  }]);
103
105
  return EmojiTypeAheadItem;
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.EmojiContext = void 0;
7
+
8
+ var _react = require("react");
9
+
10
+ var EmojiContext = /*#__PURE__*/(0, _react.createContext)(null);
11
+ exports.EmojiContext = EmojiContext;
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+
3
+ var _typeof = require("@babel/runtime/helpers/typeof");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.EmojiContextProvider = void 0;
9
+
10
+ var _react = _interopRequireWildcard(require("react"));
11
+
12
+ var _EmojiContext = require("./EmojiContext");
13
+
14
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
15
+
16
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
17
+
18
+ var EmojiContextProvider = function EmojiContextProvider(_ref) {
19
+ var children = _ref.children,
20
+ emojiContextValue = _ref.emojiContextValue;
21
+ var memoizedEmojiContextValue = (0, _react.useMemo)(function () {
22
+ return emojiContextValue;
23
+ }, [emojiContextValue]);
24
+ return /*#__PURE__*/_react.default.createElement(_EmojiContext.EmojiContext.Provider, {
25
+ value: memoizedEmojiContextValue
26
+ }, children);
27
+ };
28
+
29
+ exports.EmojiContextProvider = EmojiContextProvider;
@@ -0,0 +1,76 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ var _typeof = require("@babel/runtime/helpers/typeof");
6
+
7
+ Object.defineProperty(exports, "__esModule", {
8
+ value: true
9
+ });
10
+ exports.default = void 0;
11
+
12
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
13
+
14
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
15
+
16
+ var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
17
+
18
+ var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
19
+
20
+ var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
21
+
22
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
23
+
24
+ var _react = _interopRequireWildcard(require("react"));
25
+
26
+ var _propTypes = _interopRequireDefault(require("prop-types"));
27
+
28
+ var _EmojiContextProvider = require("./EmojiContextProvider");
29
+
30
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
31
+
32
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
33
+
34
+ function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }
35
+
36
+ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
37
+
38
+ /**
39
+ * Legacy Context Priority Passthrough ...
40
+ * If component finds legacy context, then use it, otherwise use the passed through context
41
+ */
42
+ var LegacyEmojiContextProvider = /*#__PURE__*/function (_Component) {
43
+ (0, _inherits2.default)(LegacyEmojiContextProvider, _Component);
44
+
45
+ var _super = _createSuper(LegacyEmojiContextProvider);
46
+
47
+ function LegacyEmojiContextProvider(props, context) {
48
+ var _this;
49
+
50
+ (0, _classCallCheck2.default)(this, LegacyEmojiContextProvider);
51
+ _this = _super.call(this, props, context);
52
+ _this.state = {
53
+ prioritisedContextValue: context.emoji ? context : _this.props.emojiContextValue
54
+ };
55
+ return _this;
56
+ }
57
+
58
+ (0, _createClass2.default)(LegacyEmojiContextProvider, [{
59
+ key: "render",
60
+ value: function render() {
61
+ if (this.state.prioritisedContextValue) {
62
+ return /*#__PURE__*/_react.default.createElement(_EmojiContextProvider.EmojiContextProvider, {
63
+ emojiContextValue: this.state.prioritisedContextValue
64
+ }, this.props.children);
65
+ }
66
+
67
+ return this.props.children;
68
+ }
69
+ }]);
70
+ return LegacyEmojiContextProvider;
71
+ }(_react.Component);
72
+
73
+ exports.default = LegacyEmojiContextProvider;
74
+ (0, _defineProperty2.default)(LegacyEmojiContextProvider, "contextTypes", {
75
+ emoji: _propTypes.default.object
76
+ });
@@ -1,5 +1,5 @@
1
1
  {
2
2
  "name": "@atlaskit/emoji",
3
- "version": "64.4.1",
3
+ "version": "64.5.2",
4
4
  "sideEffects": false
5
5
  }
@@ -15,14 +15,11 @@ import { ufoExperiences } from '../util/analytics';
15
15
  *
16
16
  * Follow this up with an isUploadSupported() check to see if the provider is actually
17
17
  * configured to support uploads.
18
+ * https://www.typescriptlang.org/docs/handbook/2/narrowing.html#using-type-predicates
18
19
  */
19
20
  export const supportsUploadFeature = emojiProvider => {
20
- const {
21
- isUploadSupported,
22
- prepareForUpload,
23
- uploadCustomEmoji
24
- } = emojiProvider;
25
- return !!(isUploadSupported && prepareForUpload && uploadCustomEmoji);
21
+ const emojiUploadProvider = emojiProvider;
22
+ return !!emojiUploadProvider.isUploadSupported && !!emojiUploadProvider.uploadCustomEmoji && !!emojiUploadProvider.prepareForUpload;
26
23
  };
27
24
  export class EmojiResource extends AbstractResource {
28
25
  constructor(config) {
@@ -1,6 +1,5 @@
1
1
  import _extends from "@babel/runtime/helpers/extends";
2
2
  import _defineProperty from "@babel/runtime/helpers/defineProperty";
3
- import PropTypes from 'prop-types';
4
3
  import React from 'react';
5
4
  import { PureComponent } from 'react';
6
5
  import { shouldUseAltRepresentation } from '../../api/EmojiUtils';
@@ -11,6 +10,7 @@ import EmojiPlaceholder from './EmojiPlaceholder';
11
10
  import { UfoErrorBoundary } from './UfoErrorBoundary';
12
11
  import { sampledUfoRenderedEmoji, ufoExperiences, useSampledUFOComponentExperience } from '../../util/analytics';
13
12
  import { SAMPLING_RATE_EMOJI_RENDERED_EXP } from '../../util/constants';
13
+ import { EmojiContext } from '../../context/EmojiContext';
14
14
 
15
15
  /**
16
16
  * Renders an emoji from a cached image, if required.
@@ -46,7 +46,7 @@ export const CachingEmoji = props => {
46
46
 
47
47
  export class CachingMediaEmoji extends PureComponent {
48
48
  constructor(props, context) {
49
- super(props, context);
49
+ super(props);
50
50
 
51
51
  _defineProperty(this, "mounted", false);
52
52
 
@@ -95,6 +95,10 @@ export class CachingMediaEmoji extends PureComponent {
95
95
  }
96
96
 
97
97
  loadEmoji(emoji, context, forceLoad) {
98
+ if (!context) {
99
+ return;
100
+ }
101
+
98
102
  if (!context.emoji) {
99
103
  return undefined;
100
104
  }
@@ -192,8 +196,6 @@ export class CachingMediaEmoji extends PureComponent {
192
196
 
193
197
  }
194
198
 
195
- _defineProperty(CachingMediaEmoji, "contextTypes", {
196
- emoji: PropTypes.object
197
- });
199
+ _defineProperty(CachingMediaEmoji, "contextType", EmojiContext);
198
200
 
199
201
  export default CachingEmoji;
@@ -1,5 +1,4 @@
1
1
  import _defineProperty from "@babel/runtime/helpers/defineProperty";
2
- import PropTypes from 'prop-types';
3
2
  import React from 'react';
4
3
  import { Component } from 'react';
5
4
  import { defaultEmojiHeight } from '../../util/constants';
@@ -7,6 +6,7 @@ import { isPromise } from '../../util/type-helpers';
7
6
  import CachingEmoji from './CachingEmoji';
8
7
  import EmojiPlaceholder from './EmojiPlaceholder';
9
8
  import { sampledUfoRenderedEmoji } from '../../util/analytics';
9
+ import LegacyEmojiContextProvider from '../../context/LegacyEmojiContextProvider';
10
10
  export default class ResourcedEmojiComponent extends Component {
11
11
  constructor(props) {
12
12
  super(props);
@@ -19,14 +19,6 @@ export default class ResourcedEmojiComponent extends Component {
19
19
  };
20
20
  }
21
21
 
22
- getChildContext() {
23
- return {
24
- emoji: {
25
- emojiProvider: this.props.emojiProvider
26
- }
27
- };
28
- }
29
-
30
22
  refreshEmoji(emojiProvider, emojiId) {
31
23
  const foundEmoji = emojiProvider.findByEmojiId(emojiId);
32
24
 
@@ -126,15 +118,18 @@ export default class ResourcedEmojiComponent extends Component {
126
118
  id,
127
119
  fallback
128
120
  } = this.props.emojiId;
129
- return /*#__PURE__*/React.createElement("span", {
121
+ const emojiContextValue = {
122
+ emoji: {
123
+ emojiProvider: this.props.emojiProvider
124
+ }
125
+ };
126
+ return /*#__PURE__*/React.createElement(LegacyEmojiContextProvider, {
127
+ emojiContextValue: emojiContextValue
128
+ }, /*#__PURE__*/React.createElement("span", {
130
129
  "data-emoji-id": id,
131
130
  "data-emoji-short-name": shortName,
132
131
  "data-emoji-text": fallback || shortName
133
- }, element);
132
+ }, element));
134
133
  }
135
134
 
136
- }
137
-
138
- _defineProperty(ResourcedEmojiComponent, "childContextTypes", {
139
- emoji: PropTypes.object
140
- });
135
+ }