@atlaskit/emoji 64.2.0 → 64.4.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 (184) hide show
  1. package/CHANGELOG.md +27 -0
  2. package/dist/cjs/api/EmojiResource.js +36 -1
  3. package/dist/cjs/api/media/SiteEmojiResource.js +10 -2
  4. package/dist/cjs/components/common/CachingEmoji.js +38 -12
  5. package/dist/cjs/components/common/DeleteButton.js +9 -13
  6. package/dist/cjs/components/common/Emoji.js +25 -36
  7. package/dist/cjs/components/common/EmojiActions.js +26 -31
  8. package/dist/cjs/components/common/EmojiButton.js +7 -7
  9. package/dist/cjs/components/common/EmojiDeletePreview.js +20 -26
  10. package/dist/cjs/components/common/EmojiErrorMessage.js +10 -14
  11. package/dist/cjs/components/common/EmojiPlaceholder.js +5 -12
  12. package/dist/cjs/components/common/EmojiPreview.js +20 -40
  13. package/dist/cjs/components/common/EmojiPreviewComponent.js +34 -0
  14. package/dist/cjs/components/common/EmojiUploadPicker.js +26 -24
  15. package/dist/cjs/components/common/EmojiUploadPreview.js +22 -28
  16. package/dist/cjs/components/common/RecordSelectionDefault.js +8 -2
  17. package/dist/cjs/components/common/ResourcedEmoji.js +25 -9
  18. package/dist/cjs/components/common/ResourcedEmojiComponent.js +33 -11
  19. package/dist/cjs/components/common/RetryableButton.js +12 -18
  20. package/dist/cjs/components/common/Scrollable.js +5 -10
  21. package/dist/cjs/components/common/UfoErrorBoundary.js +52 -0
  22. package/dist/cjs/components/common/UploadEmoji.js +8 -0
  23. package/dist/cjs/components/common/styles.js +210 -266
  24. package/dist/cjs/components/picker/CategorySelector.js +13 -12
  25. package/dist/cjs/components/picker/EmojiPicker.js +17 -6
  26. package/dist/cjs/components/picker/EmojiPickerCategoryHeading.js +8 -14
  27. package/dist/cjs/components/picker/EmojiPickerComponent.js +51 -30
  28. package/dist/cjs/components/picker/EmojiPickerEmojiRow.js +8 -12
  29. package/dist/cjs/components/picker/EmojiPickerFooter.js +8 -14
  30. package/dist/cjs/components/picker/EmojiPickerList.js +28 -9
  31. package/dist/cjs/components/picker/EmojiPickerListSearch.js +10 -8
  32. package/dist/cjs/components/picker/EmojiPickerVirtualItems.js +9 -15
  33. package/dist/cjs/components/picker/styles.js +113 -161
  34. package/dist/cjs/components/typeahead/EmojiTypeAheadComponent.js +40 -24
  35. package/dist/cjs/components/typeahead/EmojiTypeAheadItem.js +10 -13
  36. package/dist/cjs/components/typeahead/EmojiTypeAheadList.js +17 -22
  37. package/dist/cjs/components/typeahead/styles.js +17 -19
  38. package/dist/cjs/components/uploader/EmojiUploadComponent.js +22 -15
  39. package/dist/cjs/components/uploader/styles.js +4 -4
  40. package/dist/cjs/index.js +9 -3
  41. package/dist/cjs/types.js +12 -2
  42. package/dist/cjs/util/{analytics.js → analytics/analytics.js} +12 -10
  43. package/dist/cjs/util/analytics/index.js +205 -0
  44. package/dist/cjs/util/analytics/samplingUfo.js +278 -0
  45. package/dist/cjs/util/analytics/ufoExperiences.js +46 -0
  46. package/dist/cjs/util/analytics/useSampledUFOComponentExperience.js +49 -0
  47. package/dist/cjs/util/constants.js +10 -3
  48. package/dist/cjs/version.json +1 -1
  49. package/dist/es2019/api/EmojiResource.js +28 -1
  50. package/dist/es2019/api/media/SiteEmojiResource.js +10 -2
  51. package/dist/es2019/components/common/CachingEmoji.js +34 -12
  52. package/dist/es2019/components/common/DeleteButton.js +8 -6
  53. package/dist/es2019/components/common/Emoji.js +27 -36
  54. package/dist/es2019/components/common/EmojiActions.js +26 -24
  55. package/dist/es2019/components/common/EmojiButton.js +6 -6
  56. package/dist/es2019/components/common/EmojiDeletePreview.js +20 -20
  57. package/dist/es2019/components/common/EmojiErrorMessage.js +9 -8
  58. package/dist/es2019/components/common/EmojiPlaceholder.js +5 -8
  59. package/dist/es2019/components/common/EmojiPreview.js +19 -35
  60. package/dist/es2019/components/common/EmojiPreviewComponent.js +21 -0
  61. package/dist/es2019/components/common/EmojiUploadPicker.js +25 -22
  62. package/dist/es2019/components/common/EmojiUploadPreview.js +22 -22
  63. package/dist/es2019/components/common/RecordSelectionDefault.js +9 -2
  64. package/dist/es2019/components/common/ResourcedEmoji.js +22 -5
  65. package/dist/es2019/components/common/ResourcedEmojiComponent.js +32 -11
  66. package/dist/es2019/components/common/RetryableButton.js +10 -11
  67. package/dist/es2019/components/common/Scrollable.js +6 -10
  68. package/dist/es2019/components/common/UfoErrorBoundary.js +11 -0
  69. package/dist/es2019/components/common/UploadEmoji.js +4 -0
  70. package/dist/es2019/components/common/styles.js +195 -262
  71. package/dist/es2019/components/picker/CategorySelector.js +15 -12
  72. package/dist/es2019/components/picker/EmojiPicker.js +15 -6
  73. package/dist/es2019/components/picker/EmojiPickerCategoryHeading.js +8 -8
  74. package/dist/es2019/components/picker/EmojiPickerComponent.js +46 -22
  75. package/dist/es2019/components/picker/EmojiPickerEmojiRow.js +8 -7
  76. package/dist/es2019/components/picker/EmojiPickerFooter.js +8 -8
  77. package/dist/es2019/components/picker/EmojiPickerList.js +28 -8
  78. package/dist/es2019/components/picker/EmojiPickerListSearch.js +11 -8
  79. package/dist/es2019/components/picker/EmojiPickerVirtualItems.js +10 -8
  80. package/dist/es2019/components/picker/styles.js +112 -160
  81. package/dist/es2019/components/typeahead/EmojiTypeAheadComponent.js +35 -17
  82. package/dist/es2019/components/typeahead/EmojiTypeAheadItem.js +12 -13
  83. package/dist/es2019/components/typeahead/EmojiTypeAheadList.js +18 -19
  84. package/dist/es2019/components/typeahead/styles.js +14 -15
  85. package/dist/es2019/components/uploader/EmojiUploadComponent.js +19 -9
  86. package/dist/es2019/components/uploader/styles.js +4 -4
  87. package/dist/es2019/index.js +4 -3
  88. package/dist/es2019/types.js +10 -1
  89. package/dist/es2019/util/{analytics.js → analytics/analytics.js} +17 -11
  90. package/dist/es2019/util/analytics/index.js +4 -0
  91. package/dist/es2019/util/analytics/samplingUfo.js +147 -0
  92. package/dist/es2019/util/analytics/ufoExperiences.js +34 -0
  93. package/dist/es2019/util/analytics/useSampledUFOComponentExperience.js +39 -0
  94. package/dist/es2019/util/constants.js +5 -1
  95. package/dist/es2019/version.json +1 -1
  96. package/dist/esm/api/EmojiResource.js +32 -1
  97. package/dist/esm/api/media/SiteEmojiResource.js +10 -2
  98. package/dist/esm/components/common/CachingEmoji.js +36 -12
  99. package/dist/esm/components/common/DeleteButton.js +8 -6
  100. package/dist/esm/components/common/Emoji.js +26 -29
  101. package/dist/esm/components/common/EmojiActions.js +26 -25
  102. package/dist/esm/components/common/EmojiButton.js +6 -6
  103. package/dist/esm/components/common/EmojiDeletePreview.js +19 -20
  104. package/dist/esm/components/common/EmojiErrorMessage.js +9 -8
  105. package/dist/esm/components/common/EmojiPlaceholder.js +5 -8
  106. package/dist/esm/components/common/EmojiPreview.js +19 -33
  107. package/dist/esm/components/common/EmojiPreviewComponent.js +20 -0
  108. package/dist/esm/components/common/EmojiUploadPicker.js +27 -25
  109. package/dist/esm/components/common/EmojiUploadPreview.js +21 -22
  110. package/dist/esm/components/common/RecordSelectionDefault.js +6 -3
  111. package/dist/esm/components/common/ResourcedEmoji.js +22 -9
  112. package/dist/esm/components/common/ResourcedEmojiComponent.js +32 -10
  113. package/dist/esm/components/common/RetryableButton.js +11 -12
  114. package/dist/esm/components/common/Scrollable.js +6 -10
  115. package/dist/esm/components/common/UfoErrorBoundary.js +38 -0
  116. package/dist/esm/components/common/UploadEmoji.js +4 -0
  117. package/dist/esm/components/common/styles.js +192 -242
  118. package/dist/esm/components/picker/CategorySelector.js +14 -12
  119. package/dist/esm/components/picker/EmojiPicker.js +13 -6
  120. package/dist/esm/components/picker/EmojiPickerCategoryHeading.js +8 -8
  121. package/dist/esm/components/picker/EmojiPickerComponent.js +47 -22
  122. package/dist/esm/components/picker/EmojiPickerEmojiRow.js +8 -7
  123. package/dist/esm/components/picker/EmojiPickerFooter.js +8 -8
  124. package/dist/esm/components/picker/EmojiPickerList.js +29 -8
  125. package/dist/esm/components/picker/EmojiPickerListSearch.js +10 -8
  126. package/dist/esm/components/picker/EmojiPickerVirtualItems.js +9 -8
  127. package/dist/esm/components/picker/styles.js +108 -149
  128. package/dist/esm/components/typeahead/EmojiTypeAheadComponent.js +35 -17
  129. package/dist/esm/components/typeahead/EmojiTypeAheadItem.js +11 -13
  130. package/dist/esm/components/typeahead/EmojiTypeAheadList.js +17 -19
  131. package/dist/esm/components/typeahead/styles.js +14 -14
  132. package/dist/esm/components/uploader/EmojiUploadComponent.js +19 -9
  133. package/dist/esm/components/uploader/styles.js +4 -4
  134. package/dist/esm/index.js +4 -3
  135. package/dist/esm/types.js +10 -1
  136. package/dist/esm/util/{analytics.js → analytics/analytics.js} +9 -7
  137. package/dist/esm/util/analytics/index.js +4 -0
  138. package/dist/esm/util/analytics/samplingUfo.js +259 -0
  139. package/dist/esm/util/analytics/ufoExperiences.js +34 -0
  140. package/dist/esm/util/analytics/useSampledUFOComponentExperience.js +39 -0
  141. package/dist/esm/util/constants.js +5 -1
  142. package/dist/esm/version.json +1 -1
  143. package/dist/types/api/EmojiResource.d.ts +1 -0
  144. package/dist/types/components/common/CachingEmoji.d.ts +8 -6
  145. package/dist/types/components/common/EmojiActions.d.ts +2 -3
  146. package/dist/types/components/common/EmojiDeletePreview.d.ts +3 -3
  147. package/dist/types/components/common/EmojiErrorMessage.d.ts +2 -1
  148. package/dist/types/components/common/EmojiPreview.d.ts +2 -3
  149. package/dist/types/components/common/EmojiPreviewComponent.d.ts +7 -0
  150. package/dist/types/components/common/EmojiUploadPreview.d.ts +3 -3
  151. package/dist/types/components/common/ResourcedEmoji.d.ts +2 -0
  152. package/dist/types/components/common/ResourcedEmojiComponent.d.ts +6 -0
  153. package/dist/types/components/common/RetryableButton.d.ts +0 -2
  154. package/dist/types/components/common/UfoErrorBoundary.d.ts +8 -0
  155. package/dist/types/components/common/styles.d.ts +44 -44
  156. package/dist/types/components/picker/EmojiPicker.d.ts +2 -3
  157. package/dist/types/components/picker/EmojiPickerComponent.d.ts +6 -0
  158. package/dist/types/components/picker/EmojiPickerList.d.ts +10 -0
  159. package/dist/types/components/picker/styles.d.ts +17 -18
  160. package/dist/types/components/typeahead/EmojiTypeAheadComponent.d.ts +6 -0
  161. package/dist/types/components/typeahead/styles.d.ts +8 -7
  162. package/dist/types/components/uploader/EmojiUploadComponent.d.ts +1 -0
  163. package/dist/types/components/uploader/styles.d.ts +2 -2
  164. package/dist/types/index.d.ts +3 -3
  165. package/dist/types/types.d.ts +6 -0
  166. package/dist/types/util/{analytics.d.ts → analytics/analytics.d.ts} +7 -7
  167. package/dist/types/util/analytics/index.d.ts +6 -0
  168. package/dist/types/util/analytics/samplingUfo.d.ts +31 -0
  169. package/dist/types/util/analytics/ufoExperiences.d.ts +12 -0
  170. package/dist/types/util/analytics/useSampledUFOComponentExperience.d.ts +8 -0
  171. package/dist/types/util/constants.d.ts +2 -0
  172. package/package.json +10 -9
  173. package/dist/cjs/components/picker/EmojiPickerPreview.js +0 -87
  174. package/dist/cjs/context/EmojiContext.js +0 -11
  175. package/dist/cjs/context/EmojiContextProvider.js +0 -22
  176. package/dist/es2019/components/picker/EmojiPickerPreview.js +0 -43
  177. package/dist/es2019/context/EmojiContext.js +0 -2
  178. package/dist/es2019/context/EmojiContextProvider.js +0 -10
  179. package/dist/esm/components/picker/EmojiPickerPreview.js +0 -67
  180. package/dist/esm/context/EmojiContext.js +0 -2
  181. package/dist/esm/context/EmojiContextProvider.js +0 -9
  182. package/dist/types/components/picker/EmojiPickerPreview.d.ts +0 -9
  183. package/dist/types/context/EmojiContext.d.ts +0 -4
  184. package/dist/types/context/EmojiContextProvider.d.ts +0 -7
@@ -35,6 +35,10 @@ var _EmojiPlaceholder = _interopRequireDefault(require("./EmojiPlaceholder"));
35
35
 
36
36
  var _LoadingEmojiComponent = _interopRequireDefault(require("./LoadingEmojiComponent"));
37
37
 
38
+ var _analytics = require("../../util/analytics");
39
+
40
+ var _UfoErrorBoundary = require("./UfoErrorBoundary");
41
+
38
42
  var _excluded = ["emojiProvider"];
39
43
 
40
44
  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); }; }
@@ -62,23 +66,33 @@ var ResourcedEmoji = /*#__PURE__*/function (_LoadingEmojiComponen) {
62
66
 
63
67
  var _super = _createSuper(ResourcedEmoji);
64
68
 
65
- function ResourcedEmoji() {
69
+ // state initialised with static component to prevent
70
+ // rerender when the module has already been loaded
71
+ function ResourcedEmoji(props) {
66
72
  var _this;
67
73
 
68
74
  (0, _classCallCheck2.default)(this, ResourcedEmoji);
69
-
70
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
71
- args[_key] = arguments[_key];
72
- }
73
-
74
- _this = _super.call.apply(_super, [this].concat(args));
75
+ _this = _super.call(this, props, {});
75
76
  (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "state", {
76
77
  asyncLoadedComponent: ResourcedEmoji.AsyncLoadedComponent
77
78
  });
79
+ (0, _analytics.sampledUfoRenderedEmoji)(props.emojiId).start({
80
+ samplingRate: _constants.SAMPLING_RATE_EMOJI_RENDERED_EXP_RESOURCEEMOJI
81
+ });
82
+
83
+ _analytics.ufoExperiences['emoji-rendered'].getInstance(props.emojiId.id || props.emojiId.shortName).addMetadata({
84
+ source: 'resourced-emoji'
85
+ });
86
+
78
87
  return _this;
79
88
  }
80
89
 
81
90
  (0, _createClass2.default)(ResourcedEmoji, [{
91
+ key: "componentWillUnmount",
92
+ value: function componentWillUnmount() {
93
+ (0, _analytics.sampledUfoRenderedEmoji)(this.props.emojiId).abort();
94
+ }
95
+ }, {
82
96
  key: "asyncLoadComponent",
83
97
  value: function asyncLoadComponent() {
84
98
  var _this2 = this;
@@ -108,9 +122,11 @@ var ResourcedEmoji = /*#__PURE__*/function (_LoadingEmojiComponen) {
108
122
  var _this$props2 = this.props,
109
123
  emojiProvider = _this$props2.emojiProvider,
110
124
  otherProps = (0, _objectWithoutProperties2.default)(_this$props2, _excluded);
111
- return /*#__PURE__*/_react.default.createElement(ResourcedEmojiComponent, (0, _extends2.default)({}, otherProps, {
125
+ return /*#__PURE__*/_react.default.createElement(_UfoErrorBoundary.UfoErrorBoundary, {
126
+ experiences: [_analytics.ufoExperiences['emoji-rendered'].getInstance(this.props.emojiId.id || this.props.emojiId.shortName)]
127
+ }, /*#__PURE__*/_react.default.createElement(ResourcedEmojiComponent, (0, _extends2.default)({}, otherProps, {
112
128
  emojiProvider: loadedEmojiProvider
113
- }));
129
+ })));
114
130
  }
115
131
  }]);
116
132
  return ResourcedEmoji;
@@ -23,6 +23,8 @@ 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
+
26
28
  var _react = _interopRequireWildcard(require("react"));
27
29
 
28
30
  var _constants = require("../../util/constants");
@@ -33,7 +35,7 @@ var _CachingEmoji = _interopRequireDefault(require("./CachingEmoji"));
33
35
 
34
36
  var _EmojiPlaceholder = _interopRequireDefault(require("./EmojiPlaceholder"));
35
37
 
36
- var _EmojiContextProvider = require("../../context/EmojiContextProvider");
38
+ var _analytics = require("../../util/analytics");
37
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
 
@@ -62,6 +64,15 @@ var ResourcedEmojiComponent = /*#__PURE__*/function (_Component) {
62
64
  }
63
65
 
64
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
+ }, {
65
76
  key: "refreshEmoji",
66
77
  value: function refreshEmoji(emojiProvider, emojiId) {
67
78
  var _this2 = this;
@@ -79,7 +90,22 @@ var ResourcedEmojiComponent = /*#__PURE__*/function (_Component) {
79
90
  emoji: emoji,
80
91
  loaded: true
81
92
  });
93
+
94
+ if (!emoji) {
95
+ // emoji is undefined
96
+ (0, _analytics.sampledUfoRenderedEmoji)(emojiId).failure({
97
+ metadata: {
98
+ reason: 'failed to find'
99
+ }
100
+ });
101
+ }
82
102
  }
103
+ }).catch(function () {
104
+ (0, _analytics.sampledUfoRenderedEmoji)(emojiId).failure({
105
+ metadata: {
106
+ reason: 'failed to load'
107
+ }
108
+ });
83
109
  });
84
110
  } else {
85
111
  // loaded
@@ -150,21 +176,17 @@ var ResourcedEmojiComponent = /*#__PURE__*/function (_Component) {
150
176
  shortName = _this$props$emojiId.shortName,
151
177
  id = _this$props$emojiId.id,
152
178
  fallback = _this$props$emojiId.fallback;
153
- var emojiContextValue = {
154
- emoji: {
155
- emojiProvider: this.props.emojiProvider
156
- }
157
- };
158
- return /*#__PURE__*/_react.default.createElement(_EmojiContextProvider.EmojiContextProvider, {
159
- emojiContextValue: emojiContextValue
160
- }, /*#__PURE__*/_react.default.createElement("span", {
179
+ return /*#__PURE__*/_react.default.createElement("span", {
161
180
  "data-emoji-id": id,
162
181
  "data-emoji-short-name": shortName,
163
182
  "data-emoji-text": fallback || shortName
164
- }, element));
183
+ }, element);
165
184
  }
166
185
  }]);
167
186
  return ResourcedEmojiComponent;
168
187
  }(_react.Component);
169
188
 
170
- exports.default = ResourcedEmojiComponent;
189
+ exports.default = ResourcedEmojiComponent;
190
+ (0, _defineProperty2.default)(ResourcedEmojiComponent, "childContextTypes", {
191
+ emoji: _propTypes.default.object
192
+ });
@@ -2,8 +2,6 @@
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
4
 
5
- var _typeof = require("@babel/runtime/helpers/typeof");
6
-
7
5
  Object.defineProperty(exports, "__esModule", {
8
6
  value: true
9
7
  });
@@ -19,21 +17,19 @@ var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime
19
17
 
20
18
  var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
21
19
 
20
+ var _core = require("@emotion/core");
21
+
22
22
  var _customThemeButton = _interopRequireDefault(require("@atlaskit/button/custom-theme-button"));
23
23
 
24
24
  var _spinner = _interopRequireDefault(require("@atlaskit/spinner"));
25
25
 
26
- var _react = _interopRequireWildcard(require("react"));
26
+ var _react = require("react");
27
27
 
28
28
  var _reactIntlNext = require("react-intl-next");
29
29
 
30
30
  var _i18n = require("../i18n");
31
31
 
32
- var styles = _interopRequireWildcard(require("./styles"));
33
-
34
- 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); }
35
-
36
- 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; }
32
+ var _styles = require("./styles");
37
33
 
38
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); }; }
39
35
 
@@ -52,20 +48,19 @@ var RetryableButton = /*#__PURE__*/function (_Component) {
52
48
  (0, _createClass2.default)(RetryableButton, [{
53
49
  key: "renderLoading",
54
50
  value: function renderLoading() {
55
- return /*#__PURE__*/_react.default.createElement("span", {
56
- className: styles.buttonSpinner
57
- }, /*#__PURE__*/_react.default.createElement(_spinner.default, null));
51
+ return (0, _core.jsx)("span", {
52
+ css: _styles.buttonSpinner
53
+ }, (0, _core.jsx)(_spinner.default, null));
58
54
  }
59
55
  }, {
60
56
  key: "renderRetry",
61
57
  value: function renderRetry() {
62
58
  var _this$props = this.props,
63
59
  loading = _this$props.loading,
64
- retryClassName = _this$props.retryClassName,
65
60
  onSubmit = _this$props.onSubmit;
66
- return loading ? this.renderLoading() : /*#__PURE__*/_react.default.createElement(_reactIntlNext.FormattedMessage, _i18n.messages.retryLabel, function (retryLabel) {
67
- return /*#__PURE__*/_react.default.createElement(_customThemeButton.default, {
68
- className: retryClassName,
61
+ return loading ? this.renderLoading() : (0, _core.jsx)(_reactIntlNext.FormattedMessage, _i18n.messages.retryLabel, function (retryLabel) {
62
+ return (0, _core.jsx)(_customThemeButton.default, {
63
+ css: _styles.uploadRetryButton,
69
64
  appearance: "warning",
70
65
  onClick: onSubmit
71
66
  }, retryLabel);
@@ -77,12 +72,11 @@ var RetryableButton = /*#__PURE__*/function (_Component) {
77
72
  var _this$props2 = this.props,
78
73
  loading = _this$props2.loading,
79
74
  error = _this$props2.error,
80
- className = _this$props2.className,
81
75
  appearance = _this$props2.appearance,
82
76
  onSubmit = _this$props2.onSubmit,
83
77
  label = _this$props2.label;
84
- return error ? this.renderRetry() : loading ? this.renderLoading() : /*#__PURE__*/_react.default.createElement(_customThemeButton.default, {
85
- className: className,
78
+ return error ? this.renderRetry() : loading ? this.renderLoading() : (0, _core.jsx)(_customThemeButton.default, {
79
+ css: _styles.uploadEmojiButton,
86
80
  appearance: appearance,
87
81
  onClick: onSubmit
88
82
  }, label);
@@ -23,9 +23,9 @@ var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/ge
23
23
 
24
24
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
25
25
 
26
- var _classnames = _interopRequireDefault(require("classnames"));
26
+ var _core = require("@emotion/core");
27
27
 
28
- var _react = _interopRequireWildcard(require("react"));
28
+ var _react = require("react");
29
29
 
30
30
  var _reactDom = require("react-dom");
31
31
 
@@ -104,17 +104,12 @@ var Scrollable = /*#__PURE__*/function (_PureComponent) {
104
104
  className = _this$props.className,
105
105
  maxHeight = _this$props.maxHeight,
106
106
  onMouseLeave = _this$props.onMouseLeave;
107
- var scrollableClasses = ['emoji-scrollable', styles.emojiScrollable];
108
-
109
- if (className) {
110
- scrollableClasses.push(className);
111
- }
112
-
113
107
  var style = maxHeight ? {
114
108
  maxHeight: maxHeight
115
109
  } : {};
116
- return /*#__PURE__*/_react.default.createElement("div", {
117
- className: (0, _classnames.default)(scrollableClasses),
110
+ return (0, _core.jsx)("div", {
111
+ className: "emoji-scrollable ".concat(className),
112
+ css: styles.emojiScrollable,
118
113
  onMouseLeave: onMouseLeave,
119
114
  onScroll: this.handleScroll,
120
115
  ref: this.handleRef,
@@ -0,0 +1,52 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.UfoErrorBoundary = void 0;
9
+
10
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
11
+
12
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
13
+
14
+ var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
15
+
16
+ var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
17
+
18
+ var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
19
+
20
+ var _react = _interopRequireDefault(require("react"));
21
+
22
+ 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); }; }
23
+
24
+ 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; } }
25
+
26
+ var UfoErrorBoundary = /*#__PURE__*/function (_React$Component) {
27
+ (0, _inherits2.default)(UfoErrorBoundary, _React$Component);
28
+
29
+ var _super = _createSuper(UfoErrorBoundary);
30
+
31
+ function UfoErrorBoundary() {
32
+ (0, _classCallCheck2.default)(this, UfoErrorBoundary);
33
+ return _super.apply(this, arguments);
34
+ }
35
+
36
+ (0, _createClass2.default)(UfoErrorBoundary, [{
37
+ key: "componentDidCatch",
38
+ value: function componentDidCatch() {
39
+ this.props.experiences.forEach(function (e) {
40
+ return e.failure();
41
+ });
42
+ }
43
+ }, {
44
+ key: "render",
45
+ value: function render() {
46
+ return this.props.children;
47
+ }
48
+ }]);
49
+ return UfoErrorBoundary;
50
+ }(_react.default.Component);
51
+
52
+ exports.UfoErrorBoundary = UfoErrorBoundary;
@@ -11,16 +11,22 @@ var _analytics = require("../../util/analytics");
11
11
 
12
12
  var _i18n = require("../i18n");
13
13
 
14
+ var _ufoExperiences = require("../../util/analytics/ufoExperiences");
15
+
14
16
  var uploadEmoji = function uploadEmoji(upload, emojiProvider, errorSetter, onSuccess, fireAnalytics) {
15
17
  var startTime = Date.now();
16
18
  errorSetter(undefined);
17
19
 
18
20
  if ((0, _EmojiResource.supportsUploadFeature)(emojiProvider)) {
21
+ _ufoExperiences.ufoExperiences['emoji-uploaded'].start();
22
+
19
23
  emojiProvider.uploadCustomEmoji(upload).then(function (emojiDescription) {
20
24
  fireAnalytics((0, _analytics.uploadSucceededEvent)({
21
25
  duration: Date.now() - startTime
22
26
  }));
23
27
  onSuccess(emojiDescription);
28
+
29
+ _ufoExperiences.ufoExperiences['emoji-uploaded'].success();
24
30
  }).catch(function (err) {
25
31
  errorSetter(_i18n.messages.emojiUploadFailed); // eslint-disable-next-line no-console
26
32
 
@@ -29,6 +35,8 @@ var uploadEmoji = function uploadEmoji(upload, emojiProvider, errorSetter, onSuc
29
35
  duration: Date.now() - startTime,
30
36
  reason: _i18n.messages.emojiUploadFailed.defaultMessage
31
37
  }));
38
+
39
+ _ufoExperiences.ufoExperiences['emoji-uploaded'].failure();
32
40
  });
33
41
  }
34
42
  };