@atlaskit/emoji 65.0.0 → 65.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (115) hide show
  1. package/CHANGELOG.md +36 -0
  2. package/dist/cjs/components/common/CachingEmoji.js +84 -151
  3. package/dist/cjs/components/common/Emoji.js +2 -2
  4. package/dist/cjs/components/common/EmojiActions.js +129 -175
  5. package/dist/cjs/components/common/EmojiErrorMessage.js +23 -59
  6. package/dist/cjs/components/common/EmojiPreviewComponent.js +1 -0
  7. package/dist/cjs/components/common/EmojiUploadPicker.js +235 -293
  8. package/dist/cjs/components/common/FileChooser.js +34 -71
  9. package/dist/cjs/components/common/Popup.js +105 -154
  10. package/dist/cjs/components/common/ResourcedEmojiComponent.js +10 -5
  11. package/dist/cjs/components/common/RetryableButton.js +43 -64
  12. package/dist/cjs/components/common/ToneSelector.js +50 -89
  13. package/dist/cjs/components/common/styles.js +14 -16
  14. package/dist/cjs/components/hooks.js +16 -0
  15. package/dist/cjs/components/picker/EmojiPickerCategoryHeading.js +16 -48
  16. package/dist/cjs/components/picker/EmojiPickerComponent.js +496 -508
  17. package/dist/cjs/components/picker/EmojiPickerEmojiRow.js +33 -60
  18. package/dist/cjs/components/picker/EmojiPickerFooter.js +13 -46
  19. package/dist/cjs/components/picker/styles.js +16 -13
  20. package/dist/cjs/components/uploader/EmojiUploadComponent.js +124 -109
  21. package/dist/cjs/hooks/useEmojiContext.js +16 -0
  22. package/dist/cjs/hooks/usePrevious.js +16 -0
  23. package/dist/cjs/index.js +16 -0
  24. package/dist/cjs/util/constants.js +3 -1
  25. package/dist/cjs/version.json +1 -1
  26. package/dist/es2019/components/common/CachingEmoji.js +65 -112
  27. package/dist/es2019/components/common/Emoji.js +2 -2
  28. package/dist/es2019/components/common/EmojiActions.js +124 -150
  29. package/dist/es2019/components/common/EmojiErrorMessage.js +22 -26
  30. package/dist/es2019/components/common/EmojiPreviewComponent.js +1 -0
  31. package/dist/es2019/components/common/EmojiUploadPicker.js +190 -253
  32. package/dist/es2019/components/common/FileChooser.js +37 -40
  33. package/dist/es2019/components/common/Popup.js +89 -109
  34. package/dist/es2019/components/common/ResourcedEmojiComponent.js +5 -4
  35. package/dist/es2019/components/common/RetryableButton.js +43 -34
  36. package/dist/es2019/components/common/ToneSelector.js +46 -59
  37. package/dist/es2019/components/common/styles.js +9 -9
  38. package/dist/es2019/components/hooks.js +8 -0
  39. package/dist/es2019/components/picker/EmojiPickerCategoryHeading.js +13 -17
  40. package/dist/es2019/components/picker/EmojiPickerComponent.js +417 -497
  41. package/dist/es2019/components/picker/EmojiPickerEmojiRow.js +32 -35
  42. package/dist/es2019/components/picker/EmojiPickerFooter.js +11 -19
  43. package/dist/es2019/components/picker/styles.js +16 -14
  44. package/dist/es2019/components/uploader/EmojiUploadComponent.js +81 -91
  45. package/dist/es2019/hooks/useEmojiContext.js +3 -0
  46. package/dist/es2019/hooks/usePrevious.js +8 -0
  47. package/dist/es2019/index.js +4 -1
  48. package/dist/es2019/util/constants.js +1 -0
  49. package/dist/es2019/version.json +1 -1
  50. package/dist/esm/components/common/CachingEmoji.js +86 -156
  51. package/dist/esm/components/common/Emoji.js +2 -2
  52. package/dist/esm/components/common/EmojiActions.js +129 -176
  53. package/dist/esm/components/common/EmojiErrorMessage.js +21 -56
  54. package/dist/esm/components/common/EmojiPreviewComponent.js +1 -0
  55. package/dist/esm/components/common/EmojiUploadPicker.js +233 -299
  56. package/dist/esm/components/common/FileChooser.js +34 -70
  57. package/dist/esm/components/common/Popup.js +104 -155
  58. package/dist/esm/components/common/ResourcedEmojiComponent.js +8 -4
  59. package/dist/esm/components/common/RetryableButton.js +40 -60
  60. package/dist/esm/components/common/ToneSelector.js +50 -87
  61. package/dist/esm/components/common/styles.js +10 -10
  62. package/dist/esm/components/hooks.js +8 -0
  63. package/dist/esm/components/picker/EmojiPickerCategoryHeading.js +14 -43
  64. package/dist/esm/components/picker/EmojiPickerComponent.js +486 -526
  65. package/dist/esm/components/picker/EmojiPickerEmojiRow.js +31 -59
  66. package/dist/esm/components/picker/EmojiPickerFooter.js +14 -47
  67. package/dist/esm/components/picker/styles.js +16 -14
  68. package/dist/esm/components/uploader/EmojiUploadComponent.js +119 -113
  69. package/dist/esm/hooks/useEmojiContext.js +5 -0
  70. package/dist/esm/hooks/usePrevious.js +8 -0
  71. package/dist/esm/index.js +4 -1
  72. package/dist/esm/util/constants.js +1 -0
  73. package/dist/esm/version.json +1 -1
  74. package/dist/types/api/EmojiResource.d.ts +2 -3
  75. package/dist/types/components/common/CachingEmoji.d.ts +3 -13
  76. package/dist/types/components/common/Emoji.d.ts +1 -2
  77. package/dist/types/components/common/EmojiActions.d.ts +6 -17
  78. package/dist/types/components/common/EmojiErrorMessage.d.ts +3 -6
  79. package/dist/types/components/common/EmojiPreviewComponent.d.ts +2 -2
  80. package/dist/types/components/common/EmojiUploadPicker.d.ts +3 -27
  81. package/dist/types/components/common/FileChooser.d.ts +3 -5
  82. package/dist/types/components/common/LoadingEmojiComponent.d.ts +3 -0
  83. package/dist/types/components/common/Popup.d.ts +3 -20
  84. package/dist/types/components/common/ResourcedEmojiComponent.d.ts +23 -11
  85. package/dist/types/components/common/RetryableButton.d.ts +3 -7
  86. package/dist/types/components/common/ToneSelector.d.ts +4 -10
  87. package/dist/types/components/common/setSkinToneAriaLabelText.d.ts +1 -1
  88. package/dist/types/components/common/styles.d.ts +1 -3
  89. package/dist/types/components/hooks.d.ts +1 -0
  90. package/dist/types/components/picker/CategorySelector.d.ts +1 -1
  91. package/dist/types/components/picker/EmojiPicker.d.ts +12 -3
  92. package/dist/types/components/picker/EmojiPickerCategoryHeading.d.ts +3 -4
  93. package/dist/types/components/picker/EmojiPickerComponent.d.ts +14 -76
  94. package/dist/types/components/picker/EmojiPickerEmojiRow.d.ts +3 -4
  95. package/dist/types/components/picker/EmojiPickerFooter.d.ts +3 -5
  96. package/dist/types/components/picker/styles.d.ts +1 -1
  97. package/dist/types/components/typeahead/EmojiTypeAheadComponent.d.ts +18 -0
  98. package/dist/types/components/uploader/EmojiUploadComponent.d.ts +3 -17
  99. package/dist/types/components/uploader/EmojiUploader.d.ts +5 -7
  100. package/dist/types/hooks/useEmojiContext.d.ts +1 -0
  101. package/dist/types/hooks/usePrevious.d.ts +1 -0
  102. package/dist/types/index.d.ts +3 -1
  103. package/dist/types/types.d.ts +2 -1
  104. package/dist/types/util/constants.d.ts +1 -0
  105. package/docs/0-intro.tsx +35 -27
  106. package/docs/1-resourced-emoji.tsx +74 -0
  107. package/docs/2-emoji-picker.tsx +56 -0
  108. package/docs/3-typeahead.tsx +20 -0
  109. package/docs/4-emoji-provider.tsx +98 -0
  110. package/local-config-example.ts +3 -1
  111. package/package.json +19 -6
  112. package/dist/cjs/components/common/EmojiPreview.js +0 -194
  113. package/dist/es2019/components/common/EmojiPreview.js +0 -152
  114. package/dist/esm/components/common/EmojiPreview.js +0 -170
  115. package/dist/types/components/common/EmojiPreview.d.ts +0 -31
package/CHANGELOG.md CHANGED
@@ -1,5 +1,41 @@
1
1
  # @atlaskit/emoji
2
2
 
3
+ ## 65.2.0
4
+
5
+ ### Minor Changes
6
+
7
+ - [`dc70b6076fb`](https://bitbucket.org/atlassian/atlassian-frontend/commits/dc70b6076fb) - Converted emoji picker component children to functional components.
8
+ - [`f397ebff733`](https://bitbucket.org/atlassian/atlassian-frontend/commits/f397ebff733) - Emoji Upload Component refactor to functional
9
+ - [`f39be18203b`](https://bitbucket.org/atlassian/atlassian-frontend/commits/f39be18203b) - ToneSelector and EmojiActions functional component conversion
10
+ - [`2a233390245`](https://bitbucket.org/atlassian/atlassian-frontend/commits/2a233390245) - Emoji Upload Picker and File Chooser functional component refactor
11
+ - [`02b3743e97a`](https://bitbucket.org/atlassian/atlassian-frontend/commits/02b3743e97a) - Converted emoji picker component to functional and fixed emoji preview bugs
12
+ - [`16b6d3503f3`](https://bitbucket.org/atlassian/atlassian-frontend/commits/16b6d3503f3) - EmojiErrorMessage, RetryableButton and Popup refactor to functional components
13
+ - [`8a79098bcca`](https://bitbucket.org/atlassian/atlassian-frontend/commits/8a79098bcca) - CachiningEmoji and EmojiPreviewComponent functional component conversion
14
+ - [`7f5cfd05d71`](https://bitbucket.org/atlassian/atlassian-frontend/commits/7f5cfd05d71) - Revert changes that causing the emoji picker emoji preview to jump
15
+
16
+ ### Patch Changes
17
+
18
+ - [`fa52e2a1ffd`](https://bitbucket.org/atlassian/atlassian-frontend/commits/fa52e2a1ffd) - Convert the 04, 13, 19 and 03 emoji examples to function components
19
+ - [`277d88799b0`](https://bitbucket.org/atlassian/atlassian-frontend/commits/277d88799b0) - Convert emoji example from class to functional
20
+ - Updated dependencies
21
+
22
+ ## 65.1.1
23
+
24
+ ### Patch Changes
25
+
26
+ - [`8d4228767b0`](https://bitbucket.org/atlassian/atlassian-frontend/commits/8d4228767b0) - Upgrade Typescript from `4.2.4` to `4.3.5`.
27
+
28
+ ## 65.1.0
29
+
30
+ ### Minor Changes
31
+
32
+ - [`cceb3262363`](https://bitbucket.org/atlassian/atlassian-frontend/commits/cceb3262363) - [ux] Show preview below the scrollable emoji box
33
+
34
+ ### Patch Changes
35
+
36
+ - [`641bf010d2a`](https://bitbucket.org/atlassian/atlassian-frontend/commits/641bf010d2a) - Added JSDoc comments for exposing props
37
+ - [`c47218c565a`](https://bitbucket.org/atlassian/atlassian-frontend/commits/c47218c565a) - Convert the demo resource control to functional componment
38
+
3
39
  ## 65.0.0
4
40
 
5
41
  ### Major Changes
@@ -11,19 +11,7 @@ exports.default = exports.CachingMediaEmoji = exports.CachingEmoji = void 0;
11
11
 
12
12
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
13
13
 
14
- var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
15
-
16
- var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
17
-
18
- var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
19
-
20
- var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
21
-
22
- var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
23
-
24
- var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
25
-
26
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
14
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
27
15
 
28
16
  var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
29
17
 
@@ -45,47 +33,41 @@ var _analytics = require("../../util/analytics");
45
33
 
46
34
  var _constants = require("../../util/constants");
47
35
 
48
- var _EmojiContext = require("../../context/EmojiContext");
49
-
50
36
  var _ufoExperiences = require("../../util/analytics/ufoExperiences");
51
37
 
52
- var _excluded = ["placeholderSize"],
53
- _excluded2 = ["children"];
38
+ var _useEmojiContext = require("../../hooks/useEmojiContext");
39
+
40
+ var _excluded = ["emoji", "placeholderSize", "showTooltip", "fitToHeight", "children"];
54
41
 
55
42
  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); }
56
43
 
57
44
  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; }
58
45
 
59
- 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); }; }
60
-
61
- 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; } }
62
-
63
46
  /**
64
47
  * Renders an emoji from a cached image, if required.
65
48
  */
66
49
  var CachingEmoji = function CachingEmoji(props) {
67
- // Optimisation to only render the class based CachingMediaEmoji if necessary
50
+ // Optimisation to only render CachingMediaEmoji if necessary
68
51
  // slight performance hit, which accumulates for a large number of emoji.
69
- var placeholderSize = props.placeholderSize,
70
- emojiProps = (0, _objectWithoutProperties2.default)(props, _excluded); // start emoji rendered experience, it may have already started earlier in ResourcedEmoji
52
+ var emoji = props.emoji; // start emoji rendered experience, it may have already started earlier in ResourcedEmoji
71
53
 
72
- (0, _analytics.useSampledUFOComponentExperience)(_analytics.ufoExperiences['emoji-rendered'].getInstance(emojiProps.emoji.id || emojiProps.emoji.shortName), _constants.SAMPLING_RATE_EMOJI_RENDERED_EXP, {
54
+ (0, _analytics.useSampledUFOComponentExperience)(_analytics.ufoExperiences['emoji-rendered'].getInstance(emoji.id || emoji.shortName), _constants.SAMPLING_RATE_EMOJI_RENDERED_EXP, {
73
55
  source: 'caching-emoji',
74
- emoji: emojiProps.emoji.shortName
56
+ emoji: emoji.shortName
75
57
  });
76
58
  (0, _react.useEffect)(function () {
77
- if (!(0, _ufoExperiences.hasUfoMarked)((0, _analytics.sampledUfoRenderedEmoji)(emojiProps.emoji), 'fmp')) {
78
- (0, _analytics.sampledUfoRenderedEmoji)(emojiProps.emoji).markFMP();
59
+ if (!(0, _ufoExperiences.hasUfoMarked)((0, _analytics.sampledUfoRenderedEmoji)(emoji), 'fmp')) {
60
+ (0, _analytics.sampledUfoRenderedEmoji)(emoji).markFMP();
79
61
  } // eslint-disable-next-line react-hooks/exhaustive-deps
80
62
 
81
63
  }, []);
82
64
 
83
65
  var emojiNode = function emojiNode() {
84
- if ((0, _typeHelpers.isMediaEmoji)(props.emoji)) {
66
+ if ((0, _typeHelpers.isMediaEmoji)(emoji)) {
85
67
  return /*#__PURE__*/_react.default.createElement(CachingMediaEmoji, props);
86
68
  }
87
69
 
88
- return /*#__PURE__*/_react.default.createElement(_Emoji.default, emojiProps);
70
+ return /*#__PURE__*/_react.default.createElement(_Emoji.default, props);
89
71
  };
90
72
 
91
73
  return /*#__PURE__*/_react.default.createElement(_UfoErrorBoundary.UfoErrorBoundary, {
@@ -100,138 +82,89 @@ var CachingEmoji = function CachingEmoji(props) {
100
82
 
101
83
  exports.CachingEmoji = CachingEmoji;
102
84
 
103
- var CachingMediaEmoji = /*#__PURE__*/function (_PureComponent) {
104
- (0, _inherits2.default)(CachingMediaEmoji, _PureComponent);
105
-
106
- var _super = _createSuper(CachingMediaEmoji);
107
-
108
- function CachingMediaEmoji(props, context) {
109
- var _this;
110
-
111
- (0, _classCallCheck2.default)(this, CachingMediaEmoji);
112
- _this = _super.call(this, props);
113
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "handleLoadError", function (_emojiId) {
114
- (0, _analytics.sampledUfoRenderedEmoji)(_emojiId).failure({
85
+ var CachingMediaEmoji = function CachingMediaEmoji(props) {
86
+ var emoji = props.emoji,
87
+ placeholderSize = props.placeholderSize,
88
+ showTooltip = props.showTooltip,
89
+ fitToHeight = props.fitToHeight,
90
+ children = props.children,
91
+ restProps = (0, _objectWithoutProperties2.default)(props, _excluded);
92
+ var shortName = emoji.shortName,
93
+ representation = emoji.representation;
94
+
95
+ var _useState = (0, _react.useState)(),
96
+ _useState2 = (0, _slicedToArray2.default)(_useState, 2),
97
+ cachedEmoji = _useState2[0],
98
+ setCachedEmoji = _useState2[1];
99
+
100
+ var _useState3 = (0, _react.useState)(false),
101
+ _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
102
+ inValidImage = _useState4[0],
103
+ setInvalidImage = _useState4[1];
104
+
105
+ var context = (0, _useEmojiContext.useEmojiContext)();
106
+ var loadEmoji = (0, _react.useCallback)(function (emojiProvider) {
107
+ (0, _logger.default)('Loading image via media cache', emoji.shortName);
108
+ (0, _analytics.sampledUfoRenderedEmoji)(emoji).mark(_types.UfoEmojiTimings.MEDIA_START);
109
+ emojiProvider.getMediaEmojiDescriptionURLWithInlineToken(emoji).then(function (cachedEmoji) {
110
+ setCachedEmoji(cachedEmoji);
111
+ setInvalidImage(false);
112
+ (0, _analytics.sampledUfoRenderedEmoji)(emoji).mark(_types.UfoEmojiTimings.MEDIA_END);
113
+ }).catch(function () {
114
+ setCachedEmoji(undefined);
115
+ setInvalidImage(true);
116
+ (0, _analytics.sampledUfoRenderedEmoji)(emoji).failure({
115
117
  metadata: {
116
- reason: 'load error',
118
+ reason: 'failed to load media emoji',
117
119
  source: 'CachingMediaEmoji',
118
- emoji: {
119
- id: _emojiId.id,
120
- shortName: _emojiId.shortName
120
+ data: {
121
+ emoji: {
122
+ id: emoji.id,
123
+ shortName: emoji.shortName,
124
+ name: emoji.name
125
+ }
121
126
  }
122
127
  }
123
128
  });
124
-
125
- _this.setState({
126
- invalidImage: true
127
- });
128
129
  });
129
- _this.state = {
130
- cachedEmoji: undefined
131
- };
132
-
133
- _this.loadEmoji(props.emoji, context);
134
-
135
- return _this;
136
- }
137
-
138
- (0, _createClass2.default)(CachingMediaEmoji, [{
139
- key: "componentDidUpdate",
140
- value: function componentDidUpdate() {
141
- var _this$state$cachedEmo;
142
-
143
- if (this.props.emoji.shortName !== ((_this$state$cachedEmo = this.state.cachedEmoji) === null || _this$state$cachedEmo === void 0 ? void 0 : _this$state$cachedEmo.shortName)) {
144
- this.loadEmoji(this.props.emoji, this.context);
145
- }
130
+ }, [emoji]);
131
+ (0, _react.useEffect)(function () {
132
+ if (context && context.emoji.emojiProvider) {
133
+ loadEmoji(context.emoji.emojiProvider);
146
134
  }
147
- }, {
148
- key: "loadEmoji",
149
- value: function loadEmoji(emoji, context) {
150
- var _this2 = this;
151
-
152
- if (!context) {
153
- return;
154
- }
155
-
156
- if (!context.emoji) {
157
- return undefined;
158
- }
159
-
160
- var emojiProvider = context.emoji.emojiProvider;
161
-
162
- if (!emojiProvider) {
163
- return undefined;
135
+ }, [context, loadEmoji]);
136
+
137
+ var handleLoadError = function handleLoadError(_emojiId) {
138
+ (0, _analytics.sampledUfoRenderedEmoji)(_emojiId).failure({
139
+ metadata: {
140
+ reason: 'load error',
141
+ source: 'CachingMediaEmoji',
142
+ emoji: {
143
+ id: _emojiId.id,
144
+ shortName: _emojiId.shortName
145
+ }
164
146
  }
147
+ });
148
+ setInvalidImage(true);
149
+ };
165
150
 
166
- (0, _logger.default)('Loading image via media cache', emoji.shortName);
167
- (0, _analytics.sampledUfoRenderedEmoji)(emoji).mark(_types.UfoEmojiTimings.MEDIA_START);
168
- emojiProvider.getMediaEmojiDescriptionURLWithInlineToken(emoji).then(function (cachedEmoji) {
169
- _this2.setState({
170
- cachedEmoji: cachedEmoji,
171
- invalidImage: false
172
- });
173
-
174
- (0, _analytics.sampledUfoRenderedEmoji)(emoji).mark(_types.UfoEmojiTimings.MEDIA_END);
175
- }).catch(function () {
176
- _this2.setState({
177
- cachedEmoji: undefined,
178
- invalidImage: true
179
- });
180
-
181
- (0, _analytics.sampledUfoRenderedEmoji)(emoji).failure({
182
- metadata: {
183
- reason: 'failed to load media emoji',
184
- source: 'CachingMediaEmoji',
185
- data: {
186
- emoji: {
187
- id: emoji.id,
188
- shortName: emoji.shortName,
189
- name: emoji.name
190
- }
191
- }
192
- }
193
- });
194
- });
195
- }
196
- }, {
197
- key: "render",
198
- value: function render() {
199
- var _this$state = this.state,
200
- cachedEmoji = _this$state.cachedEmoji,
201
- invalidImage = _this$state.invalidImage;
202
- var _this$props = this.props,
203
- children = _this$props.children,
204
- otherProps = (0, _objectWithoutProperties2.default)(_this$props, _excluded2);
205
- var emojiComponent;
206
-
207
- if (cachedEmoji && !invalidImage) {
208
- emojiComponent = /*#__PURE__*/_react.default.createElement(_Emoji.default, (0, _extends2.default)({}, otherProps, {
209
- emoji: cachedEmoji,
210
- onLoadError: this.handleLoadError
211
- }));
212
- } else {
213
- var _this$props2 = this.props,
214
- emoji = _this$props2.emoji,
215
- placeholderSize = _this$props2.placeholderSize,
216
- showTooltip = _this$props2.showTooltip,
217
- fitToHeight = _this$props2.fitToHeight;
218
- var shortName = emoji.shortName,
219
- representation = emoji.representation;
220
- emojiComponent = /*#__PURE__*/_react.default.createElement(_EmojiPlaceholder.default, {
221
- size: fitToHeight || placeholderSize,
222
- shortName: shortName,
223
- showTooltip: showTooltip,
224
- representation: representation
225
- });
226
- }
151
+ if (cachedEmoji && !inValidImage) {
152
+ return /*#__PURE__*/_react.default.createElement(_Emoji.default, (0, _extends2.default)({}, restProps, {
153
+ showTooltip: showTooltip,
154
+ fitToHeight: fitToHeight,
155
+ emoji: cachedEmoji,
156
+ onLoadError: handleLoadError
157
+ }));
158
+ }
227
159
 
228
- return emojiComponent;
229
- }
230
- }]);
231
- return CachingMediaEmoji;
232
- }(_react.PureComponent);
160
+ return /*#__PURE__*/_react.default.createElement(_EmojiPlaceholder.default, {
161
+ size: fitToHeight || placeholderSize,
162
+ shortName: shortName,
163
+ showTooltip: showTooltip,
164
+ representation: representation
165
+ });
166
+ };
233
167
 
234
168
  exports.CachingMediaEmoji = CachingMediaEmoji;
235
- (0, _defineProperty2.default)(CachingMediaEmoji, "contextType", _EmojiContext.EmojiContext);
236
169
  var _default = CachingEmoji;
237
170
  exports.default = _default;
@@ -158,7 +158,7 @@ var SpriteEmoji = function SpriteEmoji(props) {
158
158
  onMouseDown: function onMouseDown(event) {
159
159
  handleMouseDown(props, event);
160
160
  },
161
- onMouseMove: function onMouseMove(event) {
161
+ onMouseEnter: function onMouseEnter(event) {
162
162
  handleMouseMove(props, event);
163
163
  },
164
164
  "aria-label": emoji.shortName,
@@ -294,7 +294,7 @@ var ImageEmoji = function ImageEmoji(props) {
294
294
  onMouseDown: function onMouseDown(event) {
295
295
  handleMouseDown(props, event);
296
296
  },
297
- onMouseMove: function onMouseMove(event) {
297
+ onMouseEnter: function onMouseEnter(event) {
298
298
  handleMouseMove(props, event);
299
299
  },
300
300
  "aria-label": emoji.shortName,