@atlaskit/emoji 65.1.1 → 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 (95) hide show
  1. package/CHANGELOG.md +19 -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/RetryableButton.js +43 -64
  11. package/dist/cjs/components/common/ToneSelector.js +50 -89
  12. package/dist/cjs/components/common/styles.js +14 -16
  13. package/dist/cjs/components/hooks.js +16 -0
  14. package/dist/cjs/components/picker/EmojiPickerCategoryHeading.js +16 -48
  15. package/dist/cjs/components/picker/EmojiPickerComponent.js +496 -516
  16. package/dist/cjs/components/picker/EmojiPickerEmojiRow.js +33 -60
  17. package/dist/cjs/components/picker/EmojiPickerFooter.js +13 -48
  18. package/dist/cjs/components/uploader/EmojiUploadComponent.js +124 -109
  19. package/dist/cjs/hooks/useEmojiContext.js +16 -0
  20. package/dist/cjs/hooks/{index.js → usePrevious.js} +0 -0
  21. package/dist/cjs/index.js +16 -0
  22. package/dist/cjs/version.json +1 -1
  23. package/dist/es2019/components/common/CachingEmoji.js +65 -112
  24. package/dist/es2019/components/common/Emoji.js +2 -2
  25. package/dist/es2019/components/common/EmojiActions.js +124 -150
  26. package/dist/es2019/components/common/EmojiErrorMessage.js +22 -26
  27. package/dist/es2019/components/common/EmojiPreviewComponent.js +1 -0
  28. package/dist/es2019/components/common/EmojiUploadPicker.js +190 -253
  29. package/dist/es2019/components/common/FileChooser.js +37 -40
  30. package/dist/es2019/components/common/Popup.js +89 -109
  31. package/dist/es2019/components/common/RetryableButton.js +43 -34
  32. package/dist/es2019/components/common/ToneSelector.js +46 -59
  33. package/dist/es2019/components/common/styles.js +9 -9
  34. package/dist/es2019/components/hooks.js +8 -0
  35. package/dist/es2019/components/picker/EmojiPickerCategoryHeading.js +13 -17
  36. package/dist/es2019/components/picker/EmojiPickerComponent.js +417 -506
  37. package/dist/es2019/components/picker/EmojiPickerEmojiRow.js +32 -35
  38. package/dist/es2019/components/picker/EmojiPickerFooter.js +11 -21
  39. package/dist/es2019/components/uploader/EmojiUploadComponent.js +81 -91
  40. package/dist/es2019/hooks/useEmojiContext.js +3 -0
  41. package/dist/es2019/hooks/{index.js → usePrevious.js} +0 -0
  42. package/dist/es2019/index.js +4 -1
  43. package/dist/es2019/version.json +1 -1
  44. package/dist/esm/components/common/CachingEmoji.js +86 -156
  45. package/dist/esm/components/common/Emoji.js +2 -2
  46. package/dist/esm/components/common/EmojiActions.js +129 -176
  47. package/dist/esm/components/common/EmojiErrorMessage.js +21 -56
  48. package/dist/esm/components/common/EmojiPreviewComponent.js +1 -0
  49. package/dist/esm/components/common/EmojiUploadPicker.js +233 -299
  50. package/dist/esm/components/common/FileChooser.js +34 -70
  51. package/dist/esm/components/common/Popup.js +104 -155
  52. package/dist/esm/components/common/RetryableButton.js +40 -60
  53. package/dist/esm/components/common/ToneSelector.js +50 -87
  54. package/dist/esm/components/common/styles.js +10 -10
  55. package/dist/esm/components/hooks.js +8 -0
  56. package/dist/esm/components/picker/EmojiPickerCategoryHeading.js +14 -43
  57. package/dist/esm/components/picker/EmojiPickerComponent.js +486 -535
  58. package/dist/esm/components/picker/EmojiPickerEmojiRow.js +31 -59
  59. package/dist/esm/components/picker/EmojiPickerFooter.js +14 -49
  60. package/dist/esm/components/uploader/EmojiUploadComponent.js +119 -113
  61. package/dist/esm/hooks/useEmojiContext.js +5 -0
  62. package/dist/esm/hooks/{index.js → usePrevious.js} +0 -0
  63. package/dist/esm/index.js +4 -1
  64. package/dist/esm/version.json +1 -1
  65. package/dist/types/components/common/CachingEmoji.d.ts +3 -13
  66. package/dist/types/components/common/Emoji.d.ts +1 -1
  67. package/dist/types/components/common/EmojiActions.d.ts +6 -17
  68. package/dist/types/components/common/EmojiErrorMessage.d.ts +3 -6
  69. package/dist/types/components/common/EmojiPreviewComponent.d.ts +2 -2
  70. package/dist/types/components/common/EmojiUploadPicker.d.ts +3 -27
  71. package/dist/types/components/common/FileChooser.d.ts +3 -5
  72. package/dist/types/components/common/Popup.d.ts +3 -20
  73. package/dist/types/components/common/RetryableButton.d.ts +3 -7
  74. package/dist/types/components/common/ToneSelector.d.ts +4 -10
  75. package/dist/types/components/common/setSkinToneAriaLabelText.d.ts +1 -1
  76. package/dist/types/components/common/styles.d.ts +1 -3
  77. package/dist/types/components/hooks.d.ts +1 -0
  78. package/dist/types/components/picker/CategorySelector.d.ts +1 -1
  79. package/dist/types/components/picker/EmojiPicker.d.ts +3 -3
  80. package/dist/types/components/picker/EmojiPickerCategoryHeading.d.ts +3 -4
  81. package/dist/types/components/picker/EmojiPickerComponent.d.ts +4 -80
  82. package/dist/types/components/picker/EmojiPickerEmojiRow.d.ts +3 -4
  83. package/dist/types/components/picker/EmojiPickerFooter.d.ts +3 -6
  84. package/dist/types/components/uploader/EmojiUploadComponent.d.ts +3 -17
  85. package/dist/types/components/uploader/EmojiUploader.d.ts +5 -7
  86. package/dist/types/hooks/useEmojiContext.d.ts +1 -0
  87. package/dist/types/hooks/{index.d.ts → usePrevious.d.ts} +0 -0
  88. package/dist/types/index.d.ts +3 -1
  89. package/dist/types/types.d.ts +2 -1
  90. package/local-config-example.ts +3 -1
  91. package/package.json +17 -4
  92. package/dist/cjs/components/common/EmojiPreview.js +0 -194
  93. package/dist/es2019/components/common/EmojiPreview.js +0 -152
  94. package/dist/esm/components/common/EmojiPreview.js +0 -170
  95. package/dist/types/components/common/EmojiPreview.d.ts +0 -31
@@ -9,20 +9,6 @@ Object.defineProperty(exports, "__esModule", {
9
9
  });
10
10
  exports.default = void 0;
11
11
 
12
- var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
13
-
14
- var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
15
-
16
- var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
17
-
18
- var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
19
-
20
- var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
21
-
22
- var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
23
-
24
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
25
-
26
12
  var _react = _interopRequireWildcard(require("react"));
27
13
 
28
14
  var _customThemeButton = _interopRequireDefault(require("@atlaskit/button/custom-theme-button"));
@@ -31,65 +17,42 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
31
17
 
32
18
  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
19
 
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
- var FileChooser = /*#__PURE__*/function (_PureComponent) {
39
- (0, _inherits2.default)(FileChooser, _PureComponent);
40
-
41
- var _super = _createSuper(FileChooser);
42
-
43
- function FileChooser() {
44
- var _this;
45
-
46
- (0, _classCallCheck2.default)(this, FileChooser);
47
-
48
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
49
- args[_key] = arguments[_key];
20
+ var FileChooser = function FileChooser(props) {
21
+ var accept = props.accept,
22
+ ariaDescribedBy = props.ariaDescribedBy,
23
+ isDisabled = props.isDisabled,
24
+ label = props.label,
25
+ onChange = props.onChange,
26
+ onClick = props.onClick;
27
+ var filePickerRef = (0, _react.useRef)(null);
28
+
29
+ var handleOnChooseFile = function handleOnChooseFile() {
30
+ if (!filePickerRef.current) {
31
+ return;
50
32
  }
51
33
 
52
- _this = _super.call.apply(_super, [this].concat(args));
53
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "onChooseFile", function () {
54
- if (_this.props.onClick) {
55
- _this.props.onClick();
56
- }
57
-
58
- var chooseFile = _this.refs['chooseFile'];
59
-
60
- if (chooseFile) {
61
- chooseFile.click();
62
- }
63
- });
64
- return _this;
65
- }
34
+ if (onClick) {
35
+ onClick();
36
+ }
66
37
 
67
- (0, _createClass2.default)(FileChooser, [{
68
- key: "render",
69
- value: function render() {
70
- var _this$props = this.props,
71
- accept = _this$props.accept,
72
- ariaDescribedBy = _this$props.ariaDescribedBy,
73
- isDisabled = _this$props.isDisabled,
74
- label = _this$props.label,
75
- onChange = _this$props.onChange;
76
- return /*#__PURE__*/_react.default.createElement("span", null, /*#__PURE__*/_react.default.createElement(_customThemeButton.default, {
77
- onClick: this.onChooseFile,
78
- isDisabled: isDisabled,
79
- "aria-describedby": ariaDescribedBy
80
- }, label), /*#__PURE__*/_react.default.createElement("input", {
81
- className: "emojiUploadFileInput",
82
- ref: "chooseFile",
83
- onChange: onChange,
84
- type: "file",
85
- accept: accept,
86
- style: {
87
- display: 'none'
88
- }
89
- }));
38
+ filePickerRef.current.click();
39
+ };
40
+
41
+ return /*#__PURE__*/_react.default.createElement("span", null, /*#__PURE__*/_react.default.createElement(_customThemeButton.default, {
42
+ onClick: handleOnChooseFile,
43
+ isDisabled: isDisabled,
44
+ "aria-describedby": ariaDescribedBy
45
+ }, label), /*#__PURE__*/_react.default.createElement("input", {
46
+ className: "emojiUploadFileInput",
47
+ ref: filePickerRef,
48
+ onChange: onChange,
49
+ type: "file",
50
+ accept: accept,
51
+ style: {
52
+ display: 'none'
90
53
  }
91
- }]);
92
- return FileChooser;
93
- }(_react.PureComponent);
54
+ }));
55
+ };
94
56
 
95
- exports.default = FileChooser;
57
+ var _default = FileChooser;
58
+ exports.default = _default;
@@ -9,19 +9,7 @@ Object.defineProperty(exports, "__esModule", {
9
9
  });
10
10
  exports.default = void 0;
11
11
 
12
- var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
13
-
14
- var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
15
-
16
- var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
17
-
18
- var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
19
-
20
- var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
21
-
22
- var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
23
-
24
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
12
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
25
13
 
26
14
  var _react = _interopRequireWildcard(require("react"));
27
15
 
@@ -31,10 +19,6 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
31
19
 
32
20
  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
21
 
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
22
  var getTargetNode = function getTargetNode(target) {
39
23
  if (typeof target === 'string') {
40
24
  return document.querySelector(target);
@@ -44,164 +28,131 @@ var getTargetNode = function getTargetNode(target) {
44
28
  return target;
45
29
  };
46
30
 
47
- /*
48
- * Simple implementation of popup while waiting for ak-inline-dialog
49
- */
50
- var Popup = /*#__PURE__*/function (_PureComponent) {
51
- (0, _inherits2.default)(Popup, _PureComponent);
52
-
53
- var _super = _createSuper(Popup);
54
-
55
- function Popup() {
56
- var _this;
57
-
58
- (0, _classCallCheck2.default)(this, Popup);
59
-
60
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
61
- args[_key] = arguments[_key];
31
+ var Popup = function Popup(props) {
32
+ var _props$relativePositi = props.relativePosition,
33
+ relativePosition = _props$relativePositi === void 0 ? 'auto' : _props$relativePositi,
34
+ _props$offsetX = props.offsetX,
35
+ offsetX = _props$offsetX === void 0 ? 0 : _props$offsetX,
36
+ _props$offsetY = props.offsetY,
37
+ offsetY = _props$offsetY === void 0 ? 0 : _props$offsetY,
38
+ _props$zIndex = props.zIndex,
39
+ zIndex = _props$zIndex === void 0 ? 9 : _props$zIndex,
40
+ target = props.target,
41
+ children = props.children;
42
+ var popup = (0, _react.useRef)();
43
+
44
+ var _useState = (0, _react.useState)(null),
45
+ _useState2 = (0, _slicedToArray2.default)(_useState, 2),
46
+ debounced = _useState2[0],
47
+ setDebounced = _useState2[1];
48
+
49
+ var applyBelowPosition = (0, _react.useCallback)(function () {
50
+ var targetNode = getTargetNode(target);
51
+
52
+ if (targetNode && popup.current) {
53
+ var box = targetNode.getBoundingClientRect();
54
+ var top = box.bottom + (offsetY || 0);
55
+ var left = box.left + (offsetX || 0);
56
+ popup.current.style.top = "".concat(top, "px");
57
+ popup.current.style.bottom = '';
58
+ popup.current.style.left = "".concat(left, "px");
59
+ }
60
+ }, [offsetX, offsetY, target]);
61
+ var applyAbovePosition = (0, _react.useCallback)(function () {
62
+ if (typeof window === 'undefined') {
63
+ return;
62
64
  }
63
65
 
64
- _this = _super.call.apply(_super, [this].concat(args));
65
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "debounced", null);
66
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "handleResize", function () {
67
- if (_this.debounced) {
68
- clearTimeout(_this.debounced);
69
- _this.debounced = null;
70
- }
71
-
72
- if (typeof window === 'undefined') {
73
- return;
74
- } // Timeout set to 30ms as to not throttle IE11
75
-
66
+ var targetNode = getTargetNode(target);
76
67
 
77
- _this.debounced = window.setTimeout(function () {
78
- _this.applyAbsolutePosition();
68
+ if (targetNode && popup.current) {
69
+ var box = targetNode.getBoundingClientRect();
70
+ var bottom = window.innerHeight - box.top + (offsetY || 0);
71
+ var left = box.left + (offsetX || 0);
72
+ popup.current.style.top = '';
73
+ popup.current.style.bottom = "".concat(bottom, "px");
74
+ popup.current.style.left = "".concat(left, "px");
75
+ }
76
+ }, [offsetX, offsetY, target]);
77
+ var applyAbsolutePosition = (0, _react.useCallback)(function () {
78
+ if (typeof window === 'undefined') {
79
+ return;
80
+ }
79
81
 
80
- _this.debounced = null;
81
- }, 30);
82
- });
83
- return _this;
84
- }
82
+ if (relativePosition === 'above') {
83
+ applyAbovePosition();
84
+ } else if (relativePosition === 'below') {
85
+ applyBelowPosition();
86
+ } else {
87
+ var targetNode = getTargetNode(target);
85
88
 
86
- (0, _createClass2.default)(Popup, [{
87
- key: "componentDidMount",
88
- value: function componentDidMount() {
89
- this.popup = document.createElement('div');
90
- document.body.appendChild(this.popup);
91
- this.popup.style.position = 'absolute';
89
+ if (targetNode) {
90
+ var box = targetNode.getBoundingClientRect();
91
+ var viewPortHeight = window.innerHeight;
92
92
 
93
- if (typeof window !== 'undefined') {
94
- window.addEventListener('resize', this.handleResize);
93
+ if (box.top < viewPortHeight / 2) {
94
+ applyBelowPosition();
95
+ } else {
96
+ applyAbovePosition();
97
+ }
95
98
  }
99
+ }
96
100
 
97
- this.applyAbsolutePosition();
98
- this.renderContent();
101
+ if (zIndex && popup.current) {
102
+ popup.current.style.zIndex = "".concat(zIndex);
99
103
  }
100
- }, {
101
- key: "componentDidUpdate",
102
- value: function componentDidUpdate() {
103
- this.applyAbsolutePosition();
104
- this.renderContent();
104
+ }, [applyAbovePosition, applyBelowPosition, relativePosition, target, zIndex]);
105
+ var handleResize = (0, _react.useCallback)(function () {
106
+ if (debounced) {
107
+ clearTimeout(debounced);
108
+ setDebounced(null);
105
109
  }
106
- }, {
107
- key: "componentWillUnmount",
108
- value: function componentWillUnmount() {
109
- if (typeof window === 'undefined') {
110
- return;
111
- }
112
110
 
113
- window.removeEventListener('resize', this.handleResize);
111
+ if (typeof window === 'undefined') {
112
+ return;
113
+ } // Timeout set to 30ms as to not throttle IE11
114
114
 
115
- if (this.popup) {
116
- _reactDom.default.unmountComponentAtNode(this.popup);
117
115
 
118
- document.body.removeChild(this.popup);
119
- }
120
- } // Internal
116
+ var debounceId = window.setTimeout(function () {
117
+ applyAbsolutePosition();
118
+ setDebounced(null);
119
+ }, 30);
120
+ setDebounced(debounceId);
121
+ }, [applyAbsolutePosition, debounced]);
122
+ var renderPopup = (0, _react.useCallback)(function () {
123
+ if (!popup.current) {
124
+ return;
125
+ }
121
126
 
122
- }, {
123
- key: "applyBelowPosition",
124
- value: function applyBelowPosition() {
125
- var targetNode = getTargetNode(this.props.target);
127
+ _reactDom.default.render(children, popup.current);
128
+ }, [children]);
129
+ (0, _react.useEffect)(function () {
130
+ popup.current = document.createElement('div');
131
+ document.body.appendChild(popup.current);
132
+ popup.current.style.position = 'absolute';
126
133
 
127
- if (targetNode && this.popup) {
128
- var box = targetNode.getBoundingClientRect();
129
- var top = box.bottom + (this.props.offsetY || 0);
130
- var left = box.left + (this.props.offsetX || 0);
131
- this.popup.style.top = "".concat(top, "px");
132
- this.popup.style.bottom = '';
133
- this.popup.style.left = "".concat(left, "px");
134
- }
134
+ if (typeof window !== 'undefined') {
135
+ window.addEventListener('resize', handleResize);
135
136
  }
136
- }, {
137
- key: "applyAbovePosition",
138
- value: function applyAbovePosition() {
137
+
138
+ applyAbsolutePosition();
139
+ renderPopup();
140
+ return function () {
139
141
  if (typeof window === 'undefined') {
140
142
  return;
141
143
  }
142
144
 
143
- var targetNode = getTargetNode(this.props.target);
145
+ window.removeEventListener('resize', handleResize);
144
146
 
145
- if (targetNode && this.popup) {
146
- var box = targetNode.getBoundingClientRect();
147
- var bottom = window.innerHeight - box.top + (this.props.offsetY || 0);
148
- var left = box.left + (this.props.offsetX || 0);
149
- this.popup.style.top = '';
150
- this.popup.style.bottom = "".concat(bottom, "px");
151
- this.popup.style.left = "".concat(left, "px");
152
- }
153
- }
154
- }, {
155
- key: "applyAbsolutePosition",
156
- value: function applyAbsolutePosition() {
157
- if (typeof window === 'undefined') {
158
- return;
159
- }
147
+ if (popup.current) {
148
+ _reactDom.default.unmountComponentAtNode(popup.current);
160
149
 
161
- if (this.props.relativePosition === 'above') {
162
- this.applyAbovePosition();
163
- } else if (this.props.relativePosition === 'below') {
164
- this.applyBelowPosition();
165
- } else {
166
- var targetNode = getTargetNode(this.props.target);
167
-
168
- if (targetNode) {
169
- var box = targetNode.getBoundingClientRect();
170
- var viewPortHeight = window.innerHeight;
171
-
172
- if (box.top < viewPortHeight / 2) {
173
- this.applyBelowPosition();
174
- } else {
175
- this.applyAbovePosition();
176
- }
177
- }
150
+ document.body.removeChild(popup.current);
178
151
  }
152
+ };
153
+ }, [applyAbsolutePosition, handleResize, renderPopup]);
154
+ return /*#__PURE__*/_react.default.createElement("div", null);
155
+ };
179
156
 
180
- if (this.props.zIndex && this.popup) {
181
- this.popup.style.zIndex = "".concat(this.props.zIndex);
182
- }
183
- }
184
- }, {
185
- key: "renderContent",
186
- value: function renderContent() {
187
- if (this.popup) {
188
- _reactDom.default.render(this.props.children, this.popup);
189
- }
190
- }
191
- }, {
192
- key: "render",
193
- value: function render() {
194
- // inline placeholder element for react to render inplace
195
- return /*#__PURE__*/_react.default.createElement("div", null);
196
- }
197
- }]);
198
- return Popup;
199
- }(_react.PureComponent);
200
-
201
- exports.default = Popup;
202
- (0, _defineProperty2.default)(Popup, "defaultProps", {
203
- relativePosition: 'auto',
204
- offsetX: 0,
205
- offsetY: 0,
206
- zIndex: 0
207
- });
157
+ var _default = Popup;
158
+ exports.default = _default;
@@ -7,82 +7,61 @@ Object.defineProperty(exports, "__esModule", {
7
7
  });
8
8
  exports.default = void 0;
9
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
10
  var _core = require("@emotion/core");
21
11
 
22
12
  var _customThemeButton = _interopRequireDefault(require("@atlaskit/button/custom-theme-button"));
23
13
 
24
14
  var _spinner = _interopRequireDefault(require("@atlaskit/spinner"));
25
15
 
26
- var _react = require("react");
27
-
28
16
  var _reactIntlNext = require("react-intl-next");
29
17
 
30
18
  var _i18n = require("../i18n");
31
19
 
32
20
  var _styles = require("./styles");
33
21
 
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
- var RetryableButton = /*#__PURE__*/function (_Component) {
39
- (0, _inherits2.default)(RetryableButton, _Component);
40
-
41
- var _super = _createSuper(RetryableButton);
22
+ /** @jsx jsx */
23
+ var LoadingSpinner = function LoadingSpinner() {
24
+ return (0, _core.jsx)("span", {
25
+ css: _styles.buttonSpinner
26
+ }, (0, _core.jsx)(_spinner.default, null));
27
+ };
28
+
29
+ var RetryButton = function RetryButton(props) {
30
+ var onSubmit = props.onSubmit;
31
+ return (0, _core.jsx)(_reactIntlNext.FormattedMessage, _i18n.messages.retryLabel, function (retryLabel) {
32
+ return (0, _core.jsx)(_customThemeButton.default, {
33
+ css: _styles.uploadRetryButton,
34
+ appearance: "warning",
35
+ onClick: onSubmit
36
+ }, retryLabel);
37
+ });
38
+ };
39
+
40
+ var UploadButton = function UploadButton(props) {
41
+ var appearance = props.appearance,
42
+ onSubmit = props.onSubmit,
43
+ label = props.label;
44
+ return (0, _core.jsx)(_customThemeButton.default, {
45
+ css: _styles.uploadEmojiButton,
46
+ appearance: appearance,
47
+ onClick: onSubmit
48
+ }, label);
49
+ };
50
+
51
+ var RetryableButton = function RetryableButton(props) {
52
+ var loading = props.loading,
53
+ error = props.error;
54
+
55
+ if (loading) {
56
+ return (0, _core.jsx)(LoadingSpinner, null);
57
+ }
42
58
 
43
- function RetryableButton(props) {
44
- (0, _classCallCheck2.default)(this, RetryableButton);
45
- return _super.call(this, props);
59
+ if (error) {
60
+ return (0, _core.jsx)(RetryButton, props);
46
61
  }
47
62
 
48
- (0, _createClass2.default)(RetryableButton, [{
49
- key: "renderLoading",
50
- value: function renderLoading() {
51
- return (0, _core.jsx)("span", {
52
- css: _styles.buttonSpinner
53
- }, (0, _core.jsx)(_spinner.default, null));
54
- }
55
- }, {
56
- key: "renderRetry",
57
- value: function renderRetry() {
58
- var _this$props = this.props,
59
- loading = _this$props.loading,
60
- onSubmit = _this$props.onSubmit;
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,
64
- appearance: "warning",
65
- onClick: onSubmit
66
- }, retryLabel);
67
- });
68
- }
69
- }, {
70
- key: "render",
71
- value: function render() {
72
- var _this$props2 = this.props,
73
- loading = _this$props2.loading,
74
- error = _this$props2.error,
75
- appearance = _this$props2.appearance,
76
- onSubmit = _this$props2.onSubmit,
77
- label = _this$props2.label;
78
- return error ? this.renderRetry() : loading ? this.renderLoading() : (0, _core.jsx)(_customThemeButton.default, {
79
- css: _styles.uploadEmojiButton,
80
- appearance: appearance,
81
- onClick: onSubmit
82
- }, label);
83
- }
84
- }]);
85
- return RetryableButton;
86
- }(_react.Component);
87
-
88
- exports.default = RetryableButton;
63
+ return (0, _core.jsx)(UploadButton, props);
64
+ };
65
+
66
+ var _default = RetryableButton;
67
+ exports.default = _default;