@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.
- package/CHANGELOG.md +36 -0
- package/dist/cjs/components/common/CachingEmoji.js +84 -151
- package/dist/cjs/components/common/Emoji.js +2 -2
- package/dist/cjs/components/common/EmojiActions.js +129 -175
- package/dist/cjs/components/common/EmojiErrorMessage.js +23 -59
- package/dist/cjs/components/common/EmojiPreviewComponent.js +1 -0
- package/dist/cjs/components/common/EmojiUploadPicker.js +235 -293
- package/dist/cjs/components/common/FileChooser.js +34 -71
- package/dist/cjs/components/common/Popup.js +105 -154
- package/dist/cjs/components/common/ResourcedEmojiComponent.js +10 -5
- package/dist/cjs/components/common/RetryableButton.js +43 -64
- package/dist/cjs/components/common/ToneSelector.js +50 -89
- package/dist/cjs/components/common/styles.js +14 -16
- package/dist/cjs/components/hooks.js +16 -0
- package/dist/cjs/components/picker/EmojiPickerCategoryHeading.js +16 -48
- package/dist/cjs/components/picker/EmojiPickerComponent.js +496 -508
- package/dist/cjs/components/picker/EmojiPickerEmojiRow.js +33 -60
- package/dist/cjs/components/picker/EmojiPickerFooter.js +13 -46
- package/dist/cjs/components/picker/styles.js +16 -13
- package/dist/cjs/components/uploader/EmojiUploadComponent.js +124 -109
- package/dist/cjs/hooks/useEmojiContext.js +16 -0
- package/dist/cjs/hooks/usePrevious.js +16 -0
- package/dist/cjs/index.js +16 -0
- package/dist/cjs/util/constants.js +3 -1
- package/dist/cjs/version.json +1 -1
- package/dist/es2019/components/common/CachingEmoji.js +65 -112
- package/dist/es2019/components/common/Emoji.js +2 -2
- package/dist/es2019/components/common/EmojiActions.js +124 -150
- package/dist/es2019/components/common/EmojiErrorMessage.js +22 -26
- package/dist/es2019/components/common/EmojiPreviewComponent.js +1 -0
- package/dist/es2019/components/common/EmojiUploadPicker.js +190 -253
- package/dist/es2019/components/common/FileChooser.js +37 -40
- package/dist/es2019/components/common/Popup.js +89 -109
- package/dist/es2019/components/common/ResourcedEmojiComponent.js +5 -4
- package/dist/es2019/components/common/RetryableButton.js +43 -34
- package/dist/es2019/components/common/ToneSelector.js +46 -59
- package/dist/es2019/components/common/styles.js +9 -9
- package/dist/es2019/components/hooks.js +8 -0
- package/dist/es2019/components/picker/EmojiPickerCategoryHeading.js +13 -17
- package/dist/es2019/components/picker/EmojiPickerComponent.js +417 -497
- package/dist/es2019/components/picker/EmojiPickerEmojiRow.js +32 -35
- package/dist/es2019/components/picker/EmojiPickerFooter.js +11 -19
- package/dist/es2019/components/picker/styles.js +16 -14
- package/dist/es2019/components/uploader/EmojiUploadComponent.js +81 -91
- package/dist/es2019/hooks/useEmojiContext.js +3 -0
- package/dist/es2019/hooks/usePrevious.js +8 -0
- package/dist/es2019/index.js +4 -1
- package/dist/es2019/util/constants.js +1 -0
- package/dist/es2019/version.json +1 -1
- package/dist/esm/components/common/CachingEmoji.js +86 -156
- package/dist/esm/components/common/Emoji.js +2 -2
- package/dist/esm/components/common/EmojiActions.js +129 -176
- package/dist/esm/components/common/EmojiErrorMessage.js +21 -56
- package/dist/esm/components/common/EmojiPreviewComponent.js +1 -0
- package/dist/esm/components/common/EmojiUploadPicker.js +233 -299
- package/dist/esm/components/common/FileChooser.js +34 -70
- package/dist/esm/components/common/Popup.js +104 -155
- package/dist/esm/components/common/ResourcedEmojiComponent.js +8 -4
- package/dist/esm/components/common/RetryableButton.js +40 -60
- package/dist/esm/components/common/ToneSelector.js +50 -87
- package/dist/esm/components/common/styles.js +10 -10
- package/dist/esm/components/hooks.js +8 -0
- package/dist/esm/components/picker/EmojiPickerCategoryHeading.js +14 -43
- package/dist/esm/components/picker/EmojiPickerComponent.js +486 -526
- package/dist/esm/components/picker/EmojiPickerEmojiRow.js +31 -59
- package/dist/esm/components/picker/EmojiPickerFooter.js +14 -47
- package/dist/esm/components/picker/styles.js +16 -14
- package/dist/esm/components/uploader/EmojiUploadComponent.js +119 -113
- package/dist/esm/hooks/useEmojiContext.js +5 -0
- package/dist/esm/hooks/usePrevious.js +8 -0
- package/dist/esm/index.js +4 -1
- package/dist/esm/util/constants.js +1 -0
- package/dist/esm/version.json +1 -1
- package/dist/types/api/EmojiResource.d.ts +2 -3
- package/dist/types/components/common/CachingEmoji.d.ts +3 -13
- package/dist/types/components/common/Emoji.d.ts +1 -2
- package/dist/types/components/common/EmojiActions.d.ts +6 -17
- package/dist/types/components/common/EmojiErrorMessage.d.ts +3 -6
- package/dist/types/components/common/EmojiPreviewComponent.d.ts +2 -2
- package/dist/types/components/common/EmojiUploadPicker.d.ts +3 -27
- package/dist/types/components/common/FileChooser.d.ts +3 -5
- package/dist/types/components/common/LoadingEmojiComponent.d.ts +3 -0
- package/dist/types/components/common/Popup.d.ts +3 -20
- package/dist/types/components/common/ResourcedEmojiComponent.d.ts +23 -11
- package/dist/types/components/common/RetryableButton.d.ts +3 -7
- package/dist/types/components/common/ToneSelector.d.ts +4 -10
- package/dist/types/components/common/setSkinToneAriaLabelText.d.ts +1 -1
- package/dist/types/components/common/styles.d.ts +1 -3
- package/dist/types/components/hooks.d.ts +1 -0
- package/dist/types/components/picker/CategorySelector.d.ts +1 -1
- package/dist/types/components/picker/EmojiPicker.d.ts +12 -3
- package/dist/types/components/picker/EmojiPickerCategoryHeading.d.ts +3 -4
- package/dist/types/components/picker/EmojiPickerComponent.d.ts +14 -76
- package/dist/types/components/picker/EmojiPickerEmojiRow.d.ts +3 -4
- package/dist/types/components/picker/EmojiPickerFooter.d.ts +3 -5
- package/dist/types/components/picker/styles.d.ts +1 -1
- package/dist/types/components/typeahead/EmojiTypeAheadComponent.d.ts +18 -0
- package/dist/types/components/uploader/EmojiUploadComponent.d.ts +3 -17
- package/dist/types/components/uploader/EmojiUploader.d.ts +5 -7
- package/dist/types/hooks/useEmojiContext.d.ts +1 -0
- package/dist/types/hooks/usePrevious.d.ts +1 -0
- package/dist/types/index.d.ts +3 -1
- package/dist/types/types.d.ts +2 -1
- package/dist/types/util/constants.d.ts +1 -0
- package/docs/0-intro.tsx +35 -27
- package/docs/1-resourced-emoji.tsx +74 -0
- package/docs/2-emoji-picker.tsx +56 -0
- package/docs/3-typeahead.tsx +20 -0
- package/docs/4-emoji-provider.tsx +98 -0
- package/local-config-example.ts +3 -1
- package/package.json +19 -6
- package/dist/cjs/components/common/EmojiPreview.js +0 -194
- package/dist/es2019/components/common/EmojiPreview.js +0 -152
- package/dist/esm/components/common/EmojiPreview.js +0 -170
- package/dist/types/components/common/EmojiPreview.d.ts +0 -31
|
@@ -1,64 +1,36 @@
|
|
|
1
|
-
import _classCallCheck from "@babel/runtime/helpers/classCallCheck";
|
|
2
|
-
import _createClass from "@babel/runtime/helpers/createClass";
|
|
3
|
-
import _inherits from "@babel/runtime/helpers/inherits";
|
|
4
|
-
import _possibleConstructorReturn from "@babel/runtime/helpers/possibleConstructorReturn";
|
|
5
|
-
import _getPrototypeOf from "@babel/runtime/helpers/getPrototypeOf";
|
|
6
|
-
|
|
7
|
-
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
|
|
8
|
-
|
|
9
|
-
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; } }
|
|
10
|
-
|
|
11
1
|
/** @jsx jsx */
|
|
12
2
|
import { jsx } from '@emotion/core';
|
|
13
|
-
import {
|
|
3
|
+
import { memo } from 'react';
|
|
14
4
|
import CachingEmoji from '../common/CachingEmoji';
|
|
15
5
|
import { emojiItem, emojiPickerRow } from './styles';
|
|
16
6
|
|
|
17
|
-
var EmojiPickerEmojiRow =
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
key: "
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
}, jsx(CachingEmoji, {
|
|
48
|
-
emoji: emoji,
|
|
49
|
-
selectOnHover: true,
|
|
50
|
-
onSelected: onSelected,
|
|
51
|
-
onMouseMove: onMouseMove,
|
|
52
|
-
showDelete: showDelete,
|
|
53
|
-
onDelete: onDelete,
|
|
54
|
-
placeholderSize: 24,
|
|
55
|
-
shouldBeInteractive: true
|
|
56
|
-
}));
|
|
57
|
-
}));
|
|
58
|
-
}
|
|
59
|
-
}]);
|
|
60
|
-
|
|
61
|
-
return EmojiPickerEmojiRow;
|
|
62
|
-
}(PureComponent);
|
|
63
|
-
|
|
64
|
-
export { EmojiPickerEmojiRow as default };
|
|
7
|
+
var EmojiPickerEmojiRow = function EmojiPickerEmojiRow(_ref) {
|
|
8
|
+
var emojis = _ref.emojis,
|
|
9
|
+
onSelected = _ref.onSelected,
|
|
10
|
+
onMouseMove = _ref.onMouseMove,
|
|
11
|
+
title = _ref.title,
|
|
12
|
+
showDelete = _ref.showDelete,
|
|
13
|
+
onDelete = _ref.onDelete;
|
|
14
|
+
return jsx("div", {
|
|
15
|
+
css: emojiPickerRow
|
|
16
|
+
}, emojis.map(function (emoji) {
|
|
17
|
+
var shortName = emoji.shortName,
|
|
18
|
+
id = emoji.id;
|
|
19
|
+
var key = id ? "".concat(id, "-").concat(title) : "".concat(shortName, "-").concat(title);
|
|
20
|
+
return jsx("span", {
|
|
21
|
+
css: emojiItem,
|
|
22
|
+
key: key
|
|
23
|
+
}, jsx(CachingEmoji, {
|
|
24
|
+
emoji: emoji,
|
|
25
|
+
selectOnHover: true,
|
|
26
|
+
onSelected: onSelected,
|
|
27
|
+
onMouseMove: onMouseMove,
|
|
28
|
+
showDelete: showDelete,
|
|
29
|
+
onDelete: onDelete,
|
|
30
|
+
placeholderSize: 24,
|
|
31
|
+
shouldBeInteractive: true
|
|
32
|
+
}));
|
|
33
|
+
}));
|
|
34
|
+
};
|
|
35
|
+
|
|
36
|
+
export default /*#__PURE__*/memo(EmojiPickerEmojiRow);
|
|
@@ -1,51 +1,18 @@
|
|
|
1
|
-
import _classCallCheck from "@babel/runtime/helpers/classCallCheck";
|
|
2
|
-
import _createClass from "@babel/runtime/helpers/createClass";
|
|
3
|
-
import _inherits from "@babel/runtime/helpers/inherits";
|
|
4
|
-
import _possibleConstructorReturn from "@babel/runtime/helpers/possibleConstructorReturn";
|
|
5
|
-
import _getPrototypeOf from "@babel/runtime/helpers/getPrototypeOf";
|
|
6
|
-
|
|
7
|
-
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
|
|
8
|
-
|
|
9
|
-
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; } }
|
|
10
|
-
|
|
11
1
|
/** @jsx jsx */
|
|
12
2
|
import { jsx } from '@emotion/core';
|
|
13
|
-
import {
|
|
3
|
+
import { memo } from 'react';
|
|
14
4
|
import { EmojiPreviewComponent } from '../common/EmojiPreviewComponent';
|
|
15
5
|
import { emojiPickerFooter, emojiPickerFooterWithTopShadow } from './styles';
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
key: "render",
|
|
30
|
-
value: function render() {
|
|
31
|
-
var _this$props = this.props,
|
|
32
|
-
selectedEmoji = _this$props.selectedEmoji,
|
|
33
|
-
isUploading = _this$props.isUploading;
|
|
34
|
-
var previewFooterClassnames = [emojiPickerFooter, emojiPickerFooterWithTopShadow];
|
|
35
|
-
|
|
36
|
-
if (!selectedEmoji || isUploading) {
|
|
37
|
-
return null;
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
return jsx("div", {
|
|
41
|
-
css: previewFooterClassnames
|
|
42
|
-
}, selectedEmoji && jsx(EmojiPreviewComponent, {
|
|
43
|
-
emoji: selectedEmoji
|
|
44
|
-
}));
|
|
45
|
-
}
|
|
46
|
-
}]);
|
|
47
|
-
|
|
48
|
-
return EmojiPickerFooter;
|
|
49
|
-
}(PureComponent);
|
|
50
|
-
|
|
51
|
-
export { EmojiPickerFooter as default };
|
|
6
|
+
var previewFooterClassnames = [emojiPickerFooter, emojiPickerFooterWithTopShadow];
|
|
7
|
+
|
|
8
|
+
var EmojiPickerFooter = function EmojiPickerFooter(_ref) {
|
|
9
|
+
var selectedEmoji = _ref.selectedEmoji;
|
|
10
|
+
return jsx("div", {
|
|
11
|
+
css: previewFooterClassnames,
|
|
12
|
+
"data-testid": "emoji-picker-footer"
|
|
13
|
+
}, selectedEmoji && jsx(EmojiPreviewComponent, {
|
|
14
|
+
emoji: selectedEmoji
|
|
15
|
+
}));
|
|
16
|
+
};
|
|
17
|
+
|
|
18
|
+
export default /*#__PURE__*/memo(EmojiPickerFooter);
|
|
@@ -7,22 +7,24 @@ import { token } from '@atlaskit/tokens';
|
|
|
7
7
|
import { borderRadius } from '@atlaskit/theme/constants';
|
|
8
8
|
import { emojiPickerBorderColor, emojiPickerBoxShadow } from '../../util/shared-styles';
|
|
9
9
|
import { emojiSprite, placeholder, emojiNodeStyles } from '../common/styles';
|
|
10
|
-
import { emojiPickerHeight, emojiPickerWidth } from '../../util/constants';
|
|
10
|
+
import { emojiPickerHeight, emojiPickerHeightWithPreview, emojiPickerWidth } from '../../util/constants';
|
|
11
11
|
import { B200, B300, N100A, N200, N30, N30A, N50, N900 } from '@atlaskit/theme/colors'; // Level 1 - picker
|
|
12
12
|
|
|
13
|
-
export var emojiPicker =
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
13
|
+
export var emojiPicker = function emojiPicker(hasPreview) {
|
|
14
|
+
return css({
|
|
15
|
+
display: 'flex',
|
|
16
|
+
flexDirection: 'column',
|
|
17
|
+
justifyContent: 'space-between',
|
|
18
|
+
background: token('elevation.surface.overlay', 'white'),
|
|
19
|
+
border: "".concat(emojiPickerBorderColor, " 1px solid"),
|
|
20
|
+
borderRadius: "".concat(borderRadius(), "px"),
|
|
21
|
+
boxShadow: emojiPickerBoxShadow,
|
|
22
|
+
height: "".concat(hasPreview ? emojiPickerHeightWithPreview : emojiPickerHeight, "px"),
|
|
23
|
+
width: "".concat(emojiPickerWidth, "px"),
|
|
24
|
+
marginBottom: '8px',
|
|
25
|
+
minWidth: "".concat(emojiPickerWidth, "px")
|
|
26
|
+
});
|
|
27
|
+
}; // Level 2
|
|
26
28
|
/// Category Selector
|
|
27
29
|
|
|
28
30
|
export var addButton = 'emoji-picker-add-button';
|
|
@@ -1,18 +1,10 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
3
|
-
import
|
|
4
|
-
import _inherits from "@babel/runtime/helpers/inherits";
|
|
5
|
-
import _possibleConstructorReturn from "@babel/runtime/helpers/possibleConstructorReturn";
|
|
6
|
-
import _getPrototypeOf from "@babel/runtime/helpers/getPrototypeOf";
|
|
7
|
-
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
8
|
-
|
|
9
|
-
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
|
|
10
|
-
|
|
11
|
-
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; } }
|
|
1
|
+
import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
|
|
2
|
+
import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
|
|
3
|
+
import _regeneratorRuntime from "@babel/runtime/regenerator";
|
|
12
4
|
|
|
13
5
|
/** @jsx jsx */
|
|
14
6
|
import { jsx } from '@emotion/core';
|
|
15
|
-
import {
|
|
7
|
+
import { useState, memo, useEffect } from 'react';
|
|
16
8
|
import { FormattedMessage } from 'react-intl-next';
|
|
17
9
|
import { supportsUploadFeature } from '../../api/EmojiResource';
|
|
18
10
|
import EmojiUploadPickerWithIntl from '../common/EmojiUploadPicker';
|
|
@@ -20,116 +12,130 @@ import { uploadEmoji } from '../common/UploadEmoji';
|
|
|
20
12
|
import { createAndFireEventInElementsChannel, selectedFileEvent, uploadCancelButton, uploadConfirmButton } from '../../util/analytics';
|
|
21
13
|
import { emojiUploadFooter, emojiUploadWidget } from './styles';
|
|
22
14
|
import { ufoExperiences } from '../../util/analytics/ufoExperiences';
|
|
15
|
+
import { messages } from '../i18n';
|
|
23
16
|
|
|
24
|
-
var EmojiUploadComponent =
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
function EmojiUploadComponent(props) {
|
|
30
|
-
var _this;
|
|
31
|
-
|
|
32
|
-
_classCallCheck(this, EmojiUploadComponent);
|
|
33
|
-
|
|
34
|
-
_this = _super.call(this, props);
|
|
35
|
-
|
|
36
|
-
_defineProperty(_assertThisInitialized(_this), "onUploadEmoji", function (upload, retry) {
|
|
37
|
-
var emojiProvider = _this.props.emojiProvider;
|
|
38
|
-
ufoExperiences['emoji-uploaded'].start();
|
|
39
|
-
ufoExperiences['emoji-uploaded'].addMetadata({
|
|
40
|
-
retry: retry
|
|
41
|
-
});
|
|
42
|
-
|
|
43
|
-
_this.fireAnalytics(uploadConfirmButton({
|
|
44
|
-
retry: retry
|
|
45
|
-
}));
|
|
46
|
-
|
|
47
|
-
var errorSetter = function errorSetter(message) {
|
|
48
|
-
_this.setState({
|
|
49
|
-
uploadErrorMessage: message
|
|
50
|
-
});
|
|
51
|
-
};
|
|
52
|
-
|
|
53
|
-
uploadEmoji(upload, emojiProvider, errorSetter, _this.prepareForUpload, _this.fireAnalytics, retry);
|
|
54
|
-
});
|
|
55
|
-
|
|
56
|
-
_defineProperty(_assertThisInitialized(_this), "prepareForUpload", function () {
|
|
57
|
-
var emojiProvider = _this.props.emojiProvider;
|
|
58
|
-
|
|
59
|
-
if (supportsUploadFeature(emojiProvider)) {
|
|
60
|
-
emojiProvider.prepareForUpload();
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
_this.setState({
|
|
64
|
-
uploadErrorMessage: undefined
|
|
65
|
-
});
|
|
66
|
-
|
|
67
|
-
if (_this.ref) {
|
|
68
|
-
_this.ref.clearUploadPicker();
|
|
69
|
-
}
|
|
70
|
-
});
|
|
17
|
+
var EmojiUploadComponent = function EmojiUploadComponent(props) {
|
|
18
|
+
var emojiProvider = props.emojiProvider,
|
|
19
|
+
createAnalyticsEvent = props.createAnalyticsEvent,
|
|
20
|
+
onUploaderRef = props.onUploaderRef;
|
|
71
21
|
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
22
|
+
var _useState = useState(),
|
|
23
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
24
|
+
uploadErrorMessage = _useState2[0],
|
|
25
|
+
setUploadErrorMessage = _useState2[1];
|
|
75
26
|
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
_this.prepareForUpload();
|
|
80
|
-
});
|
|
81
|
-
|
|
82
|
-
_defineProperty(_assertThisInitialized(_this), "onUploaderRef", function (emojiUploadPicker) {
|
|
83
|
-
_this.ref = emojiUploadPicker;
|
|
84
|
-
});
|
|
85
|
-
|
|
86
|
-
_defineProperty(_assertThisInitialized(_this), "fireAnalytics", function (analyticsEvent) {
|
|
87
|
-
var createAnalyticsEvent = _this.props.createAnalyticsEvent;
|
|
88
|
-
|
|
89
|
-
if (createAnalyticsEvent) {
|
|
90
|
-
createAndFireEventInElementsChannel(analyticsEvent)(createAnalyticsEvent);
|
|
91
|
-
}
|
|
92
|
-
});
|
|
93
|
-
|
|
94
|
-
if (supportsUploadFeature(props.emojiProvider)) {
|
|
95
|
-
props.emojiProvider.prepareForUpload();
|
|
27
|
+
useEffect(function () {
|
|
28
|
+
if (supportsUploadFeature(emojiProvider)) {
|
|
29
|
+
emojiProvider.prepareForUpload();
|
|
96
30
|
}
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
return
|
|
100
|
-
}
|
|
101
|
-
|
|
102
|
-
_createClass(EmojiUploadComponent, [{
|
|
103
|
-
key: "componentWillUnmount",
|
|
104
|
-
value: function componentWillUnmount() {
|
|
31
|
+
}, [emojiProvider]);
|
|
32
|
+
useEffect(function () {
|
|
33
|
+
return function () {
|
|
105
34
|
ufoExperiences['emoji-uploaded'].abort({
|
|
106
35
|
metadata: {
|
|
107
36
|
source: 'EmojiUploadComponent',
|
|
108
37
|
reason: 'unmount'
|
|
109
38
|
}
|
|
110
39
|
});
|
|
111
|
-
}
|
|
112
|
-
},
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
var
|
|
117
|
-
return
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
40
|
+
};
|
|
41
|
+
}, []);
|
|
42
|
+
|
|
43
|
+
var onUploadEmoji = /*#__PURE__*/function () {
|
|
44
|
+
var _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(upload, retry, onSuccessHandler) {
|
|
45
|
+
var errorSetter, message;
|
|
46
|
+
return _regeneratorRuntime.wrap(function _callee$(_context) {
|
|
47
|
+
while (1) {
|
|
48
|
+
switch (_context.prev = _context.next) {
|
|
49
|
+
case 0:
|
|
50
|
+
ufoExperiences['emoji-uploaded'].start();
|
|
51
|
+
ufoExperiences['emoji-uploaded'].addMetadata({
|
|
52
|
+
retry: retry
|
|
53
|
+
});
|
|
54
|
+
|
|
55
|
+
if (!supportsUploadFeature(emojiProvider)) {
|
|
56
|
+
_context.next = 16;
|
|
57
|
+
break;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
fireAnalytics(uploadConfirmButton({
|
|
61
|
+
retry: retry
|
|
62
|
+
}));
|
|
63
|
+
_context.prev = 4;
|
|
64
|
+
_context.next = 7;
|
|
65
|
+
return emojiProvider.prepareForUpload();
|
|
66
|
+
|
|
67
|
+
case 7:
|
|
68
|
+
errorSetter = function errorSetter(message) {
|
|
69
|
+
setUploadErrorMessage(message);
|
|
70
|
+
}; // internally handled error from upload callback
|
|
71
|
+
|
|
72
|
+
|
|
73
|
+
uploadEmoji(upload, emojiProvider, errorSetter, onUploaded(onSuccessHandler), fireAnalytics, retry);
|
|
74
|
+
_context.next = 16;
|
|
75
|
+
break;
|
|
76
|
+
|
|
77
|
+
case 11:
|
|
78
|
+
_context.prev = 11;
|
|
79
|
+
_context.t0 = _context["catch"](4);
|
|
80
|
+
// error from upload token generation
|
|
81
|
+
message = _context.t0 instanceof Error ? _context.t0.message : 'Issue with generating upload token';
|
|
82
|
+
ufoExperiences['emoji-uploaded'].failure({
|
|
83
|
+
metadata: {
|
|
84
|
+
source: 'EmojiUploadComponent',
|
|
85
|
+
error: message
|
|
86
|
+
}
|
|
87
|
+
});
|
|
88
|
+
setUploadErrorMessage(messages.emojiUploadFailed);
|
|
89
|
+
|
|
90
|
+
case 16:
|
|
91
|
+
case "end":
|
|
92
|
+
return _context.stop();
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
}, _callee, null, [[4, 11]]);
|
|
96
|
+
}));
|
|
97
|
+
|
|
98
|
+
return function onUploadEmoji(_x, _x2, _x3) {
|
|
99
|
+
return _ref.apply(this, arguments);
|
|
100
|
+
};
|
|
101
|
+
}();
|
|
102
|
+
|
|
103
|
+
var onUploaded = function onUploaded(onSuccessHandler) {
|
|
104
|
+
return function () {
|
|
105
|
+
setUploadErrorMessage(undefined);
|
|
131
106
|
|
|
132
|
-
|
|
133
|
-
|
|
107
|
+
if (onSuccessHandler) {
|
|
108
|
+
onSuccessHandler();
|
|
109
|
+
}
|
|
110
|
+
};
|
|
111
|
+
};
|
|
112
|
+
|
|
113
|
+
var onFileChooserClicked = function onFileChooserClicked() {
|
|
114
|
+
fireAnalytics(selectedFileEvent());
|
|
115
|
+
};
|
|
134
116
|
|
|
135
|
-
|
|
117
|
+
var onUploadCancelled = function onUploadCancelled() {
|
|
118
|
+
fireAnalytics(uploadCancelButton());
|
|
119
|
+
onUploaded();
|
|
120
|
+
};
|
|
121
|
+
|
|
122
|
+
var fireAnalytics = function fireAnalytics(analyticsEvent) {
|
|
123
|
+
if (createAnalyticsEvent) {
|
|
124
|
+
createAndFireEventInElementsChannel(analyticsEvent)(createAnalyticsEvent);
|
|
125
|
+
}
|
|
126
|
+
};
|
|
127
|
+
|
|
128
|
+
return jsx("div", {
|
|
129
|
+
css: emojiUploadWidget,
|
|
130
|
+
ref: onUploaderRef
|
|
131
|
+
}, jsx("div", {
|
|
132
|
+
css: emojiUploadFooter
|
|
133
|
+
}, jsx(EmojiUploadPickerWithIntl, {
|
|
134
|
+
onFileChooserClicked: onFileChooserClicked,
|
|
135
|
+
onUploadCancelled: onUploadCancelled,
|
|
136
|
+
onUploadEmoji: onUploadEmoji,
|
|
137
|
+
errorMessage: uploadErrorMessage ? jsx(FormattedMessage, uploadErrorMessage) : null
|
|
138
|
+
})));
|
|
139
|
+
};
|
|
140
|
+
|
|
141
|
+
export default /*#__PURE__*/memo(EmojiUploadComponent);
|
package/dist/esm/index.js
CHANGED
|
@@ -17,8 +17,11 @@ import { toEmojiId, toOptionalEmojiId } from './util/type-helpers';
|
|
|
17
17
|
import { recordSelectionFailedSli, recordSelectionSucceededSli, ufoExperiences, withSampling } from './util/analytics';
|
|
18
18
|
import { customCategory, defaultEmojiHeight, emojiPickerWidth, emojiPickerHeight } from './util/constants';
|
|
19
19
|
import { UsageFrequencyTracker } from './api/internal/UsageFrequencyTracker';
|
|
20
|
+
import { useEmojiContext } from './hooks/useEmojiContext';
|
|
21
|
+
import { EmojiContextProvider } from './context/EmojiContextProvider';
|
|
20
22
|
export { // Classes
|
|
21
|
-
AbstractResource, Emoji, EmojiPlaceholder, EmojiLoader, EmojiPicker, EmojiUploader, EmojiResource, EmojiRepository, EmojiTypeAhead, EmojiImage, ResourcedEmoji, //
|
|
23
|
+
AbstractResource, Emoji, EmojiPlaceholder, EmojiLoader, EmojiPicker, EmojiUploader, EmojiResource, EmojiRepository, EmojiTypeAhead, EmojiImage, ResourcedEmoji, EmojiContextProvider, // hooks,
|
|
24
|
+
useEmojiContext, // functions
|
|
22
25
|
denormaliseEmojiServiceResponse, toEmojiId, toOptionalEmojiId, recordSelectionFailedSli, recordSelectionSucceededSli, ufoExperiences, withSampling, // Constants
|
|
23
26
|
emojiPickerWidth, emojiPickerHeight, defaultEmojiHeight, customCategory, UsageFrequencyTracker, EmojiTypeAheadItem };
|
|
24
27
|
export { // Enums
|
|
@@ -14,6 +14,7 @@ export var MAX_ORDINAL = 100000;
|
|
|
14
14
|
export var defaultEmojiHeight = 20;
|
|
15
15
|
export var emojiPickerWidth = 350;
|
|
16
16
|
export var emojiPickerHeight = 295;
|
|
17
|
+
export var emojiPickerHeightWithPreview = 348;
|
|
17
18
|
export var localStoragePrefix = 'fabric.emoji';
|
|
18
19
|
export var selectedToneStorageKey = "".concat(localStoragePrefix, ".selectedTone");
|
|
19
20
|
export var defaultCategories = ['PEOPLE', 'NATURE', 'FOODS', 'ACTIVITY', 'PLACES', 'OBJECTS', 'SYMBOLS', 'FLAGS'];
|
package/dist/esm/version.json
CHANGED
|
@@ -36,9 +36,8 @@ export interface EmojiResourceConfig {
|
|
|
36
36
|
*/
|
|
37
37
|
singleEmojiApi?: SingleEmojiApiLoaderConfig;
|
|
38
38
|
/**
|
|
39
|
-
*
|
|
40
|
-
*
|
|
41
|
-
* while downloading the emoji meta data
|
|
39
|
+
* Renders an image while the provider is being downloaded to reduce the time
|
|
40
|
+
* the user is being presented with a placeholder
|
|
42
41
|
*/
|
|
43
42
|
optimisticImageApi?: OptimisticImageApiLoaderConfig;
|
|
44
43
|
}
|
|
@@ -1,8 +1,6 @@
|
|
|
1
|
-
import
|
|
2
|
-
import { PureComponent } from 'react';
|
|
1
|
+
import { FC } from 'react';
|
|
3
2
|
import { EmojiDescription } from '../../types';
|
|
4
3
|
import { Props as EmojiProps } from './Emoji';
|
|
5
|
-
import { EmojiContext, EmojiContextType } from '../../context/EmojiContext';
|
|
6
4
|
export interface State {
|
|
7
5
|
cachedEmoji?: EmojiDescription;
|
|
8
6
|
invalidImage?: boolean;
|
|
@@ -13,18 +11,10 @@ export interface CachingEmojiProps extends EmojiProps {
|
|
|
13
11
|
/**
|
|
14
12
|
* Renders an emoji from a cached image, if required.
|
|
15
13
|
*/
|
|
16
|
-
export declare const CachingEmoji:
|
|
14
|
+
export declare const CachingEmoji: FC<CachingEmojiProps>;
|
|
17
15
|
/**
|
|
18
16
|
* Rendering a media emoji image from a cache for media emoji, with different
|
|
19
17
|
* rendering paths depending on caching strategy.
|
|
20
18
|
*/
|
|
21
|
-
export declare
|
|
22
|
-
static contextType: React.Context<EmojiContextType>;
|
|
23
|
-
context: ContextType<typeof EmojiContext>;
|
|
24
|
-
constructor(props: EmojiProps, context: ContextType<typeof EmojiContext>);
|
|
25
|
-
componentDidUpdate(): void;
|
|
26
|
-
private loadEmoji;
|
|
27
|
-
private handleLoadError;
|
|
28
|
-
render(): JSX.Element;
|
|
29
|
-
}
|
|
19
|
+
export declare const CachingMediaEmoji: FC<CachingEmojiProps>;
|
|
30
20
|
export default CachingEmoji;
|
|
@@ -11,7 +11,6 @@ export interface Props {
|
|
|
11
11
|
selected?: boolean;
|
|
12
12
|
/**
|
|
13
13
|
* Automatically show the emoji as selected based on mouse hover.
|
|
14
|
-
*
|
|
15
14
|
* CSS, fast, does not require a re-render, but selected state not
|
|
16
15
|
* externally controlled via props.
|
|
17
16
|
*/
|
|
@@ -21,7 +20,7 @@ export interface Props {
|
|
|
21
20
|
*/
|
|
22
21
|
onSelected?: OnEmojiEvent;
|
|
23
22
|
/**
|
|
24
|
-
* Called when the mouse
|
|
23
|
+
* Called when the mouse moves over the emoji.
|
|
25
24
|
*/
|
|
26
25
|
onMouseMove?: OnEmojiEvent;
|
|
27
26
|
/**
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { FC } from 'react';
|
|
2
2
|
import { WrappedComponentProps } from 'react-intl-next';
|
|
3
3
|
import { EmojiDescription, EmojiDescriptionWithVariations, Message, OnToneSelected, OnToneSelectorCancelled, ToneSelection } from '../../types';
|
|
4
4
|
import { OnDeleteEmoji } from '../common/EmojiDeletePreview';
|
|
@@ -22,21 +22,10 @@ export interface Props {
|
|
|
22
22
|
query?: string;
|
|
23
23
|
onChange: any;
|
|
24
24
|
}
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
selectingTone: boolean;
|
|
31
|
-
};
|
|
32
|
-
onToneButtonClick: () => void;
|
|
33
|
-
onToneSelected: (toneValue: number) => void;
|
|
34
|
-
onMouseLeave: () => void;
|
|
35
|
-
renderTones(): JSX.Element | null;
|
|
36
|
-
renderAddOwnEmoji(): JSX.Element | null;
|
|
37
|
-
render(): JSX.Element;
|
|
38
|
-
}
|
|
39
|
-
declare const _default: import("react").FC<import("react-intl-next").WithIntlProps<Props & WrappedComponentProps<"intl">>> & {
|
|
40
|
-
WrappedComponent: import("react").ComponentType<Props & WrappedComponentProps<"intl">>;
|
|
25
|
+
declare type PropsWithWrappedComponentPropsType = Props & WrappedComponentProps;
|
|
26
|
+
declare type EmojiActionsProps = PropsWithWrappedComponentPropsType;
|
|
27
|
+
export declare const EmojiActions: FC<EmojiActionsProps>;
|
|
28
|
+
declare const _default: FC<import("react-intl-next").WithIntlProps<PropsWithWrappedComponentPropsType>> & {
|
|
29
|
+
WrappedComponent: import("react").ComponentType<PropsWithWrappedComponentPropsType>;
|
|
41
30
|
};
|
|
42
31
|
export default _default;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { FC } from 'react';
|
|
2
2
|
import { Message } from '../../types';
|
|
3
3
|
import { SerializedStyles } from '@emotion/core';
|
|
4
4
|
export interface Props {
|
|
@@ -6,8 +6,5 @@ export interface Props {
|
|
|
6
6
|
tooltip?: boolean;
|
|
7
7
|
messageStyles: SerializedStyles;
|
|
8
8
|
}
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
renderInline(): JSX.Element;
|
|
12
|
-
render(): JSX.Element;
|
|
13
|
-
}
|
|
9
|
+
declare const EmojiErrorMessage: FC<Props>;
|
|
10
|
+
export default EmojiErrorMessage;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
/// <reference types="react" />
|
|
2
1
|
import { EmojiDescription } from '../../types';
|
|
2
|
+
import { FC } from 'react';
|
|
3
3
|
declare type Props = {
|
|
4
4
|
emoji: EmojiDescription;
|
|
5
5
|
};
|
|
6
|
-
export declare const EmojiPreviewComponent:
|
|
6
|
+
export declare const EmojiPreviewComponent: FC<Props>;
|
|
7
7
|
export {};
|