@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.
- package/CHANGELOG.md +27 -0
- package/dist/cjs/api/EmojiResource.js +36 -1
- package/dist/cjs/api/media/SiteEmojiResource.js +10 -2
- package/dist/cjs/components/common/CachingEmoji.js +38 -12
- package/dist/cjs/components/common/DeleteButton.js +9 -13
- package/dist/cjs/components/common/Emoji.js +25 -36
- package/dist/cjs/components/common/EmojiActions.js +26 -31
- package/dist/cjs/components/common/EmojiButton.js +7 -7
- package/dist/cjs/components/common/EmojiDeletePreview.js +20 -26
- package/dist/cjs/components/common/EmojiErrorMessage.js +10 -14
- package/dist/cjs/components/common/EmojiPlaceholder.js +5 -12
- package/dist/cjs/components/common/EmojiPreview.js +20 -40
- package/dist/cjs/components/common/EmojiPreviewComponent.js +34 -0
- package/dist/cjs/components/common/EmojiUploadPicker.js +26 -24
- package/dist/cjs/components/common/EmojiUploadPreview.js +22 -28
- package/dist/cjs/components/common/RecordSelectionDefault.js +8 -2
- package/dist/cjs/components/common/ResourcedEmoji.js +25 -9
- package/dist/cjs/components/common/ResourcedEmojiComponent.js +33 -11
- package/dist/cjs/components/common/RetryableButton.js +12 -18
- package/dist/cjs/components/common/Scrollable.js +5 -10
- package/dist/cjs/components/common/UfoErrorBoundary.js +52 -0
- package/dist/cjs/components/common/UploadEmoji.js +8 -0
- package/dist/cjs/components/common/styles.js +210 -266
- package/dist/cjs/components/picker/CategorySelector.js +13 -12
- package/dist/cjs/components/picker/EmojiPicker.js +17 -6
- package/dist/cjs/components/picker/EmojiPickerCategoryHeading.js +8 -14
- package/dist/cjs/components/picker/EmojiPickerComponent.js +51 -30
- package/dist/cjs/components/picker/EmojiPickerEmojiRow.js +8 -12
- package/dist/cjs/components/picker/EmojiPickerFooter.js +8 -14
- package/dist/cjs/components/picker/EmojiPickerList.js +28 -9
- package/dist/cjs/components/picker/EmojiPickerListSearch.js +10 -8
- package/dist/cjs/components/picker/EmojiPickerVirtualItems.js +9 -15
- package/dist/cjs/components/picker/styles.js +113 -161
- package/dist/cjs/components/typeahead/EmojiTypeAheadComponent.js +40 -24
- package/dist/cjs/components/typeahead/EmojiTypeAheadItem.js +10 -13
- package/dist/cjs/components/typeahead/EmojiTypeAheadList.js +17 -22
- package/dist/cjs/components/typeahead/styles.js +17 -19
- package/dist/cjs/components/uploader/EmojiUploadComponent.js +22 -15
- package/dist/cjs/components/uploader/styles.js +4 -4
- package/dist/cjs/index.js +9 -3
- package/dist/cjs/types.js +12 -2
- package/dist/cjs/util/{analytics.js → analytics/analytics.js} +12 -10
- package/dist/cjs/util/analytics/index.js +205 -0
- package/dist/cjs/util/analytics/samplingUfo.js +278 -0
- package/dist/cjs/util/analytics/ufoExperiences.js +46 -0
- package/dist/cjs/util/analytics/useSampledUFOComponentExperience.js +49 -0
- package/dist/cjs/util/constants.js +10 -3
- package/dist/cjs/version.json +1 -1
- package/dist/es2019/api/EmojiResource.js +28 -1
- package/dist/es2019/api/media/SiteEmojiResource.js +10 -2
- package/dist/es2019/components/common/CachingEmoji.js +34 -12
- package/dist/es2019/components/common/DeleteButton.js +8 -6
- package/dist/es2019/components/common/Emoji.js +27 -36
- package/dist/es2019/components/common/EmojiActions.js +26 -24
- package/dist/es2019/components/common/EmojiButton.js +6 -6
- package/dist/es2019/components/common/EmojiDeletePreview.js +20 -20
- package/dist/es2019/components/common/EmojiErrorMessage.js +9 -8
- package/dist/es2019/components/common/EmojiPlaceholder.js +5 -8
- package/dist/es2019/components/common/EmojiPreview.js +19 -35
- package/dist/es2019/components/common/EmojiPreviewComponent.js +21 -0
- package/dist/es2019/components/common/EmojiUploadPicker.js +25 -22
- package/dist/es2019/components/common/EmojiUploadPreview.js +22 -22
- package/dist/es2019/components/common/RecordSelectionDefault.js +9 -2
- package/dist/es2019/components/common/ResourcedEmoji.js +22 -5
- package/dist/es2019/components/common/ResourcedEmojiComponent.js +32 -11
- package/dist/es2019/components/common/RetryableButton.js +10 -11
- package/dist/es2019/components/common/Scrollable.js +6 -10
- package/dist/es2019/components/common/UfoErrorBoundary.js +11 -0
- package/dist/es2019/components/common/UploadEmoji.js +4 -0
- package/dist/es2019/components/common/styles.js +195 -262
- package/dist/es2019/components/picker/CategorySelector.js +15 -12
- package/dist/es2019/components/picker/EmojiPicker.js +15 -6
- package/dist/es2019/components/picker/EmojiPickerCategoryHeading.js +8 -8
- package/dist/es2019/components/picker/EmojiPickerComponent.js +46 -22
- package/dist/es2019/components/picker/EmojiPickerEmojiRow.js +8 -7
- package/dist/es2019/components/picker/EmojiPickerFooter.js +8 -8
- package/dist/es2019/components/picker/EmojiPickerList.js +28 -8
- package/dist/es2019/components/picker/EmojiPickerListSearch.js +11 -8
- package/dist/es2019/components/picker/EmojiPickerVirtualItems.js +10 -8
- package/dist/es2019/components/picker/styles.js +112 -160
- package/dist/es2019/components/typeahead/EmojiTypeAheadComponent.js +35 -17
- package/dist/es2019/components/typeahead/EmojiTypeAheadItem.js +12 -13
- package/dist/es2019/components/typeahead/EmojiTypeAheadList.js +18 -19
- package/dist/es2019/components/typeahead/styles.js +14 -15
- package/dist/es2019/components/uploader/EmojiUploadComponent.js +19 -9
- package/dist/es2019/components/uploader/styles.js +4 -4
- package/dist/es2019/index.js +4 -3
- package/dist/es2019/types.js +10 -1
- package/dist/es2019/util/{analytics.js → analytics/analytics.js} +17 -11
- package/dist/es2019/util/analytics/index.js +4 -0
- package/dist/es2019/util/analytics/samplingUfo.js +147 -0
- package/dist/es2019/util/analytics/ufoExperiences.js +34 -0
- package/dist/es2019/util/analytics/useSampledUFOComponentExperience.js +39 -0
- package/dist/es2019/util/constants.js +5 -1
- package/dist/es2019/version.json +1 -1
- package/dist/esm/api/EmojiResource.js +32 -1
- package/dist/esm/api/media/SiteEmojiResource.js +10 -2
- package/dist/esm/components/common/CachingEmoji.js +36 -12
- package/dist/esm/components/common/DeleteButton.js +8 -6
- package/dist/esm/components/common/Emoji.js +26 -29
- package/dist/esm/components/common/EmojiActions.js +26 -25
- package/dist/esm/components/common/EmojiButton.js +6 -6
- package/dist/esm/components/common/EmojiDeletePreview.js +19 -20
- package/dist/esm/components/common/EmojiErrorMessage.js +9 -8
- package/dist/esm/components/common/EmojiPlaceholder.js +5 -8
- package/dist/esm/components/common/EmojiPreview.js +19 -33
- package/dist/esm/components/common/EmojiPreviewComponent.js +20 -0
- package/dist/esm/components/common/EmojiUploadPicker.js +27 -25
- package/dist/esm/components/common/EmojiUploadPreview.js +21 -22
- package/dist/esm/components/common/RecordSelectionDefault.js +6 -3
- package/dist/esm/components/common/ResourcedEmoji.js +22 -9
- package/dist/esm/components/common/ResourcedEmojiComponent.js +32 -10
- package/dist/esm/components/common/RetryableButton.js +11 -12
- package/dist/esm/components/common/Scrollable.js +6 -10
- package/dist/esm/components/common/UfoErrorBoundary.js +38 -0
- package/dist/esm/components/common/UploadEmoji.js +4 -0
- package/dist/esm/components/common/styles.js +192 -242
- package/dist/esm/components/picker/CategorySelector.js +14 -12
- package/dist/esm/components/picker/EmojiPicker.js +13 -6
- package/dist/esm/components/picker/EmojiPickerCategoryHeading.js +8 -8
- package/dist/esm/components/picker/EmojiPickerComponent.js +47 -22
- package/dist/esm/components/picker/EmojiPickerEmojiRow.js +8 -7
- package/dist/esm/components/picker/EmojiPickerFooter.js +8 -8
- package/dist/esm/components/picker/EmojiPickerList.js +29 -8
- package/dist/esm/components/picker/EmojiPickerListSearch.js +10 -8
- package/dist/esm/components/picker/EmojiPickerVirtualItems.js +9 -8
- package/dist/esm/components/picker/styles.js +108 -149
- package/dist/esm/components/typeahead/EmojiTypeAheadComponent.js +35 -17
- package/dist/esm/components/typeahead/EmojiTypeAheadItem.js +11 -13
- package/dist/esm/components/typeahead/EmojiTypeAheadList.js +17 -19
- package/dist/esm/components/typeahead/styles.js +14 -14
- package/dist/esm/components/uploader/EmojiUploadComponent.js +19 -9
- package/dist/esm/components/uploader/styles.js +4 -4
- package/dist/esm/index.js +4 -3
- package/dist/esm/types.js +10 -1
- package/dist/esm/util/{analytics.js → analytics/analytics.js} +9 -7
- package/dist/esm/util/analytics/index.js +4 -0
- package/dist/esm/util/analytics/samplingUfo.js +259 -0
- package/dist/esm/util/analytics/ufoExperiences.js +34 -0
- package/dist/esm/util/analytics/useSampledUFOComponentExperience.js +39 -0
- package/dist/esm/util/constants.js +5 -1
- package/dist/esm/version.json +1 -1
- package/dist/types/api/EmojiResource.d.ts +1 -0
- package/dist/types/components/common/CachingEmoji.d.ts +8 -6
- package/dist/types/components/common/EmojiActions.d.ts +2 -3
- package/dist/types/components/common/EmojiDeletePreview.d.ts +3 -3
- package/dist/types/components/common/EmojiErrorMessage.d.ts +2 -1
- package/dist/types/components/common/EmojiPreview.d.ts +2 -3
- package/dist/types/components/common/EmojiPreviewComponent.d.ts +7 -0
- package/dist/types/components/common/EmojiUploadPreview.d.ts +3 -3
- package/dist/types/components/common/ResourcedEmoji.d.ts +2 -0
- package/dist/types/components/common/ResourcedEmojiComponent.d.ts +6 -0
- package/dist/types/components/common/RetryableButton.d.ts +0 -2
- package/dist/types/components/common/UfoErrorBoundary.d.ts +8 -0
- package/dist/types/components/common/styles.d.ts +44 -44
- package/dist/types/components/picker/EmojiPicker.d.ts +2 -3
- package/dist/types/components/picker/EmojiPickerComponent.d.ts +6 -0
- package/dist/types/components/picker/EmojiPickerList.d.ts +10 -0
- package/dist/types/components/picker/styles.d.ts +17 -18
- package/dist/types/components/typeahead/EmojiTypeAheadComponent.d.ts +6 -0
- package/dist/types/components/typeahead/styles.d.ts +8 -7
- package/dist/types/components/uploader/EmojiUploadComponent.d.ts +1 -0
- package/dist/types/components/uploader/styles.d.ts +2 -2
- package/dist/types/index.d.ts +3 -3
- package/dist/types/types.d.ts +6 -0
- package/dist/types/util/{analytics.d.ts → analytics/analytics.d.ts} +7 -7
- package/dist/types/util/analytics/index.d.ts +6 -0
- package/dist/types/util/analytics/samplingUfo.d.ts +31 -0
- package/dist/types/util/analytics/ufoExperiences.d.ts +12 -0
- package/dist/types/util/analytics/useSampledUFOComponentExperience.d.ts +8 -0
- package/dist/types/util/constants.d.ts +2 -0
- package/package.json +10 -9
- package/dist/cjs/components/picker/EmojiPickerPreview.js +0 -87
- package/dist/cjs/context/EmojiContext.js +0 -11
- package/dist/cjs/context/EmojiContextProvider.js +0 -22
- package/dist/es2019/components/picker/EmojiPickerPreview.js +0 -43
- package/dist/es2019/context/EmojiContext.js +0 -2
- package/dist/es2019/context/EmojiContextProvider.js +0 -10
- package/dist/esm/components/picker/EmojiPickerPreview.js +0 -67
- package/dist/esm/context/EmojiContext.js +0 -2
- package/dist/esm/context/EmojiContextProvider.js +0 -9
- package/dist/types/components/picker/EmojiPickerPreview.d.ts +0 -9
- package/dist/types/context/EmojiContext.d.ts +0 -4
- package/dist/types/context/EmojiContextProvider.d.ts +0 -7
|
@@ -10,15 +10,16 @@ function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflec
|
|
|
10
10
|
|
|
11
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; } }
|
|
12
12
|
|
|
13
|
-
|
|
13
|
+
/** @jsx jsx */
|
|
14
|
+
import { jsx } from '@emotion/core';
|
|
14
15
|
import { PureComponent } from 'react';
|
|
15
16
|
import { FormattedMessage } from 'react-intl-next';
|
|
16
|
-
import classNames from 'classnames';
|
|
17
|
-
import * as styles from './styles';
|
|
18
17
|
import { supportsUploadFeature } from '../../api/EmojiResource';
|
|
19
18
|
import EmojiUploadPickerWithIntl from '../common/EmojiUploadPicker';
|
|
20
19
|
import { uploadEmoji } from '../common/UploadEmoji';
|
|
21
20
|
import { createAndFireEventInElementsChannel, selectedFileEvent, uploadCancelButton, uploadConfirmButton } from '../../util/analytics';
|
|
21
|
+
import { emojiUploadFooter, emojiUploadWidget } from './styles';
|
|
22
|
+
import { ufoExperiences } from '../../util/analytics/ufoExperiences';
|
|
22
23
|
|
|
23
24
|
var EmojiUploadComponent = /*#__PURE__*/function (_PureComponent) {
|
|
24
25
|
_inherits(EmojiUploadComponent, _PureComponent);
|
|
@@ -34,6 +35,10 @@ var EmojiUploadComponent = /*#__PURE__*/function (_PureComponent) {
|
|
|
34
35
|
|
|
35
36
|
_defineProperty(_assertThisInitialized(_this), "onUploadEmoji", function (upload, retry) {
|
|
36
37
|
var emojiProvider = _this.props.emojiProvider;
|
|
38
|
+
ufoExperiences['emoji-uploaded'].start();
|
|
39
|
+
ufoExperiences['emoji-uploaded'].addMetadata({
|
|
40
|
+
retry: retry
|
|
41
|
+
});
|
|
37
42
|
|
|
38
43
|
_this.fireAnalytics(uploadConfirmButton({
|
|
39
44
|
retry: retry
|
|
@@ -95,16 +100,21 @@ var EmojiUploadComponent = /*#__PURE__*/function (_PureComponent) {
|
|
|
95
100
|
}
|
|
96
101
|
|
|
97
102
|
_createClass(EmojiUploadComponent, [{
|
|
103
|
+
key: "componentWillUnmount",
|
|
104
|
+
value: function componentWillUnmount() {
|
|
105
|
+
ufoExperiences['emoji-uploaded'].abort();
|
|
106
|
+
}
|
|
107
|
+
}, {
|
|
98
108
|
key: "render",
|
|
99
109
|
value: function render() {
|
|
100
110
|
var uploadErrorMessage = this.state.uploadErrorMessage;
|
|
101
|
-
var errorMessage = uploadErrorMessage ?
|
|
102
|
-
return
|
|
103
|
-
|
|
111
|
+
var errorMessage = uploadErrorMessage ? jsx(FormattedMessage, uploadErrorMessage) : null;
|
|
112
|
+
return jsx("div", {
|
|
113
|
+
css: emojiUploadWidget,
|
|
104
114
|
ref: this.props.onUploaderRef
|
|
105
|
-
},
|
|
106
|
-
|
|
107
|
-
},
|
|
115
|
+
}, jsx("div", {
|
|
116
|
+
css: emojiUploadFooter
|
|
117
|
+
}, jsx(EmojiUploadPickerWithIntl, {
|
|
108
118
|
ref: this.onUploaderRef,
|
|
109
119
|
onFileChooserClicked: this.onFileChooserClicked,
|
|
110
120
|
onUploadCancelled: this.onUploadCancelled,
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { style } from 'typestyle';
|
|
2
1
|
import { token } from '@atlaskit/tokens';
|
|
3
|
-
import { emojiPickerWidth } from '../../util/constants';
|
|
2
|
+
import { emojiPickerWidth } from '../../util/constants';
|
|
3
|
+
import { css } from '@emotion/core'; // Uploader
|
|
4
4
|
|
|
5
|
-
export var emojiUploadWidget =
|
|
5
|
+
export var emojiUploadWidget = css({
|
|
6
6
|
display: 'flex',
|
|
7
7
|
flexDirection: 'column',
|
|
8
8
|
justifyContent: 'center',
|
|
@@ -16,6 +16,6 @@ export var emojiUploadWidget = style({
|
|
|
16
16
|
marginTop: '-16px'
|
|
17
17
|
}); /// Footer
|
|
18
18
|
|
|
19
|
-
export var emojiUploadFooter =
|
|
19
|
+
export var emojiUploadFooter = css({
|
|
20
20
|
flex: '0 0 auto'
|
|
21
21
|
});
|
package/dist/esm/index.js
CHANGED
|
@@ -6,18 +6,19 @@ import EmojiPicker from './components/picker/EmojiPicker';
|
|
|
6
6
|
import EmojiUploader from './components/uploader/EmojiUploader';
|
|
7
7
|
import EmojiTypeAhead from './components/typeahead/EmojiTypeAhead';
|
|
8
8
|
import EmojiTypeAheadItem from './components/typeahead/EmojiTypeAheadItem';
|
|
9
|
-
export {
|
|
9
|
+
export { // renaming exports to prevent breaking changes due to renaming
|
|
10
|
+
commonSelectedStyles as selected, selectOnHoverStyles as selectOnHover, emojiSprite, emojiNodeStyles as emojiNode, emojiImage } from './components/common/styles';
|
|
10
11
|
import EmojiResource from './api/EmojiResource';
|
|
11
12
|
import EmojiRepository from './api/EmojiRepository';
|
|
12
13
|
import EmojiLoader from './api/EmojiLoader';
|
|
13
14
|
import { denormaliseEmojiServiceResponse } from './api/EmojiUtils';
|
|
14
15
|
import { toEmojiId, toOptionalEmojiId } from './util/type-helpers';
|
|
15
|
-
import { recordSelectionFailedSli, recordSelectionSucceededSli } from './util/analytics';
|
|
16
|
+
import { recordSelectionFailedSli, recordSelectionSucceededSli, ufoExperiences } from './util/analytics';
|
|
16
17
|
import { customCategory, defaultEmojiHeight, emojiPickerWidth, emojiPickerHeight } from './util/constants';
|
|
17
18
|
import { UsageFrequencyTracker } from './api/internal/UsageFrequencyTracker';
|
|
18
19
|
export { // Classes
|
|
19
20
|
AbstractResource, Emoji, EmojiPlaceholder, EmojiLoader, EmojiPicker, EmojiUploader, EmojiResource, EmojiRepository, EmojiTypeAhead, ResourcedEmoji, // functions
|
|
20
|
-
denormaliseEmojiServiceResponse, toEmojiId, toOptionalEmojiId, recordSelectionFailedSli, recordSelectionSucceededSli, // Constants
|
|
21
|
+
denormaliseEmojiServiceResponse, toEmojiId, toOptionalEmojiId, recordSelectionFailedSli, recordSelectionSucceededSli, ufoExperiences, // Constants
|
|
21
22
|
emojiPickerWidth, emojiPickerHeight, defaultEmojiHeight, customCategory, UsageFrequencyTracker, EmojiTypeAheadItem };
|
|
22
23
|
export { // Enums
|
|
23
24
|
SearchSort } from './types';
|
package/dist/esm/types.js
CHANGED
|
@@ -33,4 +33,13 @@ export var SearchSort;
|
|
|
33
33
|
SearchSort[SearchSort["None"] = 0] = "None";
|
|
34
34
|
SearchSort[SearchSort["Default"] = 1] = "Default";
|
|
35
35
|
SearchSort[SearchSort["UsageFrequency"] = 2] = "UsageFrequency";
|
|
36
|
-
})(SearchSort || (SearchSort = {}));
|
|
36
|
+
})(SearchSort || (SearchSort = {}));
|
|
37
|
+
|
|
38
|
+
export var ProviderTypes;
|
|
39
|
+
|
|
40
|
+
(function (ProviderTypes) {
|
|
41
|
+
ProviderTypes["SITE"] = "SITE";
|
|
42
|
+
ProviderTypes["STANDARD"] = "STANDARD";
|
|
43
|
+
ProviderTypes["ATLASSIAN"] = "ATLASSIAN";
|
|
44
|
+
ProviderTypes["UNKNOWN"] = "UNKNOWN";
|
|
45
|
+
})(ProviderTypes || (ProviderTypes = {}));
|
|
@@ -11,7 +11,7 @@ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (O
|
|
|
11
11
|
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
12
12
|
|
|
13
13
|
import { createAndFireEvent } from '@atlaskit/analytics-next';
|
|
14
|
-
import { name as packageName, version as packageVersion } from '
|
|
14
|
+
import { name as packageName, version as packageVersion } from '../../version.json';
|
|
15
15
|
export var createAndFireEventInElementsChannel = createAndFireEvent('fabric-elements');
|
|
16
16
|
|
|
17
17
|
var createEvent = function createEvent(eventType, action, actionSubject, actionSubjectId) {
|
|
@@ -28,12 +28,12 @@ var createEvent = function createEvent(eventType, action, actionSubject, actionS
|
|
|
28
28
|
};
|
|
29
29
|
};
|
|
30
30
|
|
|
31
|
-
export var
|
|
31
|
+
export var recordSucceeded = function recordSucceeded(source) {
|
|
32
32
|
return createEvent('operational', 'succeeded', 'recordEmojiSelection', undefined, {
|
|
33
33
|
source: source
|
|
34
34
|
});
|
|
35
35
|
};
|
|
36
|
-
export var
|
|
36
|
+
export var recordFailed = function recordFailed(source) {
|
|
37
37
|
return createEvent('operational', 'failed', 'recordEmojiSelection', undefined, {
|
|
38
38
|
source: source
|
|
39
39
|
});
|
|
@@ -195,18 +195,20 @@ export var typeaheadRenderedEvent = function typeaheadRenderedEvent(duration, qu
|
|
|
195
195
|
return createEvent('operational', 'rendered', 'emojiTypeahead', undefined, _objectSpread({
|
|
196
196
|
duration: duration
|
|
197
197
|
}, extractCommonAttributes(query, emojiList)));
|
|
198
|
-
};
|
|
198
|
+
}; // it's used in editor typeahead to fire success record analytics
|
|
199
|
+
|
|
199
200
|
export var recordSelectionSucceededSli = function recordSelectionSucceededSli(options) {
|
|
200
201
|
return function () {
|
|
201
202
|
if (options && options.createAnalyticsEvent) {
|
|
202
|
-
createAndFireEvent('editor')(
|
|
203
|
+
createAndFireEvent('editor')(recordSucceeded('typeahead'))(options.createAnalyticsEvent);
|
|
203
204
|
}
|
|
204
205
|
};
|
|
205
|
-
};
|
|
206
|
+
}; // it's used in editor typeahead to fire failure record analytics
|
|
207
|
+
|
|
206
208
|
export var recordSelectionFailedSli = function recordSelectionFailedSli(options) {
|
|
207
209
|
return function (err) {
|
|
208
210
|
if (options && options.createAnalyticsEvent) {
|
|
209
|
-
createAndFireEvent('editor')(
|
|
211
|
+
createAndFireEvent('editor')(recordFailed('typeahead'))(options.createAnalyticsEvent);
|
|
210
212
|
}
|
|
211
213
|
|
|
212
214
|
return Promise.reject(err);
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export { ufoExperiencesSampled, clearSampled, isExperienceSampled, withSampling } from './samplingUfo';
|
|
2
|
+
export { categoryClickedEvent, createAndFireEventInElementsChannel, closedPickerEvent, deleteBeginEvent, deleteCancelEvent, deleteConfirmEvent, recordFailed, recordSucceeded, openedPickerEvent, pickerClickedEvent, pickerSearchedEvent, recordSelectionFailedSli, recordSelectionSucceededSli, selectedFileEvent, toneSelectedEvent, toneSelectorClosedEvent, toneSelectorOpenedEvent, typeaheadCancelledEvent, typeaheadRenderedEvent, typeaheadSelectedEvent, uploadBeginButton, uploadCancelButton, uploadConfirmButton, uploadFailedEvent, uploadSucceededEvent } from './analytics';
|
|
3
|
+
export { sampledUfoRenderedEmoji, ufoExperiences } from './ufoExperiences';
|
|
4
|
+
export { useSampledUFOComponentExperience } from './useSampledUFOComponentExperience';
|
|
@@ -0,0 +1,259 @@
|
|
|
1
|
+
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
2
|
+
import _regeneratorRuntime from "@babel/runtime/regenerator";
|
|
3
|
+
import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
|
|
4
|
+
|
|
5
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
6
|
+
|
|
7
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
8
|
+
|
|
9
|
+
function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }
|
|
10
|
+
|
|
11
|
+
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
12
|
+
|
|
13
|
+
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
|
|
14
|
+
|
|
15
|
+
export var ufoExperiencesSampled = {};
|
|
16
|
+
|
|
17
|
+
var sampleChance = function sampleChance(min, max) {
|
|
18
|
+
// min and max included
|
|
19
|
+
return Math.floor(Math.random() * (max - min + 1) + min);
|
|
20
|
+
};
|
|
21
|
+
|
|
22
|
+
export var clearSampled = function clearSampled() {
|
|
23
|
+
var _iterator = _createForOfIteratorHelper(Object.getOwnPropertyNames(ufoExperiencesSampled)),
|
|
24
|
+
_step;
|
|
25
|
+
|
|
26
|
+
try {
|
|
27
|
+
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
28
|
+
var prop = _step.value;
|
|
29
|
+
delete ufoExperiencesSampled[prop];
|
|
30
|
+
}
|
|
31
|
+
} catch (err) {
|
|
32
|
+
_iterator.e(err);
|
|
33
|
+
} finally {
|
|
34
|
+
_iterator.f();
|
|
35
|
+
}
|
|
36
|
+
}; // default sampling function to determine which one to be sampled
|
|
37
|
+
|
|
38
|
+
export var isExperienceSampled = function isExperienceSampled(rate) {
|
|
39
|
+
// if invalid sampling rate provided, we sample it
|
|
40
|
+
if (rate > 1 || rate < 0) {
|
|
41
|
+
return true;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
if (rate === 1) {
|
|
45
|
+
return true;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
if (rate === 0) {
|
|
49
|
+
return false;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
var maxCount = Math.ceil(1 / rate);
|
|
53
|
+
var chance = sampleChance(1, maxCount);
|
|
54
|
+
return chance === maxCount;
|
|
55
|
+
};
|
|
56
|
+
|
|
57
|
+
var hasSampledFromStart = function hasSampledFromStart(experience) {
|
|
58
|
+
if (!ufoExperiencesSampled[experience.id]) {
|
|
59
|
+
return false;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
if (experience.instanceId) {
|
|
63
|
+
// if the instance of concurrent exp has been sampled from start, allow it.
|
|
64
|
+
return ufoExperiencesSampled[experience.id].sampledInstance[experience.instanceId];
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
return ufoExperiencesSampled[experience.id].sampled;
|
|
68
|
+
};
|
|
69
|
+
|
|
70
|
+
/**
|
|
71
|
+
* This function is a temp solution to reduce the event traffic, as UFO package does not support it.
|
|
72
|
+
*
|
|
73
|
+
* e.g. Emoji Picker contains thousands of emojis, which means will trigger a large number of renderred events without sampling
|
|
74
|
+
* @param ufoExperience
|
|
75
|
+
* @returns
|
|
76
|
+
*/
|
|
77
|
+
export var withSampling = function withSampling(ufoExperience) {
|
|
78
|
+
var init = function init() {
|
|
79
|
+
if (!ufoExperiencesSampled[ufoExperience.id]) {
|
|
80
|
+
ufoExperiencesSampled[ufoExperience.id] = {
|
|
81
|
+
sampled: false,
|
|
82
|
+
sampledInstance: {}
|
|
83
|
+
};
|
|
84
|
+
}
|
|
85
|
+
};
|
|
86
|
+
|
|
87
|
+
var start = /*#__PURE__*/function () {
|
|
88
|
+
var _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(options) {
|
|
89
|
+
var isSampled;
|
|
90
|
+
return _regeneratorRuntime.wrap(function _callee$(_context) {
|
|
91
|
+
while (1) {
|
|
92
|
+
switch (_context.prev = _context.next) {
|
|
93
|
+
case 0:
|
|
94
|
+
if (!hasSampledFromStart(ufoExperience)) {
|
|
95
|
+
_context.next = 2;
|
|
96
|
+
break;
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
return _context.abrupt("return");
|
|
100
|
+
|
|
101
|
+
case 2:
|
|
102
|
+
isSampled = options.samplingFunc || isExperienceSampled;
|
|
103
|
+
|
|
104
|
+
if (isSampled(options.samplingRate)) {
|
|
105
|
+
_context.next = 7;
|
|
106
|
+
break;
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
if (ufoExperience.instanceId) {
|
|
110
|
+
ufoExperiencesSampled[ufoExperience.id].sampledInstance[ufoExperience.instanceId] = false;
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
ufoExperiencesSampled[ufoExperience.id].sampled = false;
|
|
114
|
+
return _context.abrupt("return");
|
|
115
|
+
|
|
116
|
+
case 7:
|
|
117
|
+
// update sampled records
|
|
118
|
+
if (ufoExperience.instanceId) {
|
|
119
|
+
ufoExperiencesSampled[ufoExperience.id].sampledInstance[ufoExperience.instanceId] = true;
|
|
120
|
+
ufoExperiencesSampled[ufoExperience.id].sampled = true;
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
return _context.abrupt("return", ufoExperience.start(options.startTime));
|
|
124
|
+
|
|
125
|
+
case 9:
|
|
126
|
+
case "end":
|
|
127
|
+
return _context.stop();
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
}, _callee);
|
|
131
|
+
}));
|
|
132
|
+
|
|
133
|
+
return function start(_x) {
|
|
134
|
+
return _ref.apply(this, arguments);
|
|
135
|
+
};
|
|
136
|
+
}();
|
|
137
|
+
|
|
138
|
+
var success = /*#__PURE__*/function () {
|
|
139
|
+
var _ref2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2(config) {
|
|
140
|
+
return _regeneratorRuntime.wrap(function _callee2$(_context2) {
|
|
141
|
+
while (1) {
|
|
142
|
+
switch (_context2.prev = _context2.next) {
|
|
143
|
+
case 0:
|
|
144
|
+
if (hasSampledFromStart(ufoExperience)) {
|
|
145
|
+
_context2.next = 2;
|
|
146
|
+
break;
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
return _context2.abrupt("return", null);
|
|
150
|
+
|
|
151
|
+
case 2:
|
|
152
|
+
return _context2.abrupt("return", ufoExperience.success(config));
|
|
153
|
+
|
|
154
|
+
case 3:
|
|
155
|
+
case "end":
|
|
156
|
+
return _context2.stop();
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
}, _callee2);
|
|
160
|
+
}));
|
|
161
|
+
|
|
162
|
+
return function success(_x2) {
|
|
163
|
+
return _ref2.apply(this, arguments);
|
|
164
|
+
};
|
|
165
|
+
}();
|
|
166
|
+
|
|
167
|
+
var failure = /*#__PURE__*/function () {
|
|
168
|
+
var _ref3 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee3(config) {
|
|
169
|
+
return _regeneratorRuntime.wrap(function _callee3$(_context3) {
|
|
170
|
+
while (1) {
|
|
171
|
+
switch (_context3.prev = _context3.next) {
|
|
172
|
+
case 0:
|
|
173
|
+
if (hasSampledFromStart(ufoExperience)) {
|
|
174
|
+
_context3.next = 2;
|
|
175
|
+
break;
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
return _context3.abrupt("return", null);
|
|
179
|
+
|
|
180
|
+
case 2:
|
|
181
|
+
return _context3.abrupt("return", ufoExperience.failure(config));
|
|
182
|
+
|
|
183
|
+
case 3:
|
|
184
|
+
case "end":
|
|
185
|
+
return _context3.stop();
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
}, _callee3);
|
|
189
|
+
}));
|
|
190
|
+
|
|
191
|
+
return function failure(_x3) {
|
|
192
|
+
return _ref3.apply(this, arguments);
|
|
193
|
+
};
|
|
194
|
+
}();
|
|
195
|
+
|
|
196
|
+
var abort = /*#__PURE__*/function () {
|
|
197
|
+
var _ref4 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee4(config) {
|
|
198
|
+
return _regeneratorRuntime.wrap(function _callee4$(_context4) {
|
|
199
|
+
while (1) {
|
|
200
|
+
switch (_context4.prev = _context4.next) {
|
|
201
|
+
case 0:
|
|
202
|
+
if (hasSampledFromStart(ufoExperience)) {
|
|
203
|
+
_context4.next = 2;
|
|
204
|
+
break;
|
|
205
|
+
}
|
|
206
|
+
|
|
207
|
+
return _context4.abrupt("return", null);
|
|
208
|
+
|
|
209
|
+
case 2:
|
|
210
|
+
return _context4.abrupt("return", ufoExperience.abort(config));
|
|
211
|
+
|
|
212
|
+
case 3:
|
|
213
|
+
case "end":
|
|
214
|
+
return _context4.stop();
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
}, _callee4);
|
|
218
|
+
}));
|
|
219
|
+
|
|
220
|
+
return function abort(_x4) {
|
|
221
|
+
return _ref4.apply(this, arguments);
|
|
222
|
+
};
|
|
223
|
+
}();
|
|
224
|
+
|
|
225
|
+
var mark = function mark(name, timestamp) {
|
|
226
|
+
if (!hasSampledFromStart(ufoExperience)) {
|
|
227
|
+
return;
|
|
228
|
+
}
|
|
229
|
+
|
|
230
|
+
return ufoExperience.mark(name, timestamp);
|
|
231
|
+
};
|
|
232
|
+
|
|
233
|
+
var markFMP = function markFMP(timestamp) {
|
|
234
|
+
if (!hasSampledFromStart(ufoExperience)) {
|
|
235
|
+
return;
|
|
236
|
+
}
|
|
237
|
+
|
|
238
|
+
return ufoExperience.markFMP(timestamp);
|
|
239
|
+
};
|
|
240
|
+
|
|
241
|
+
var markInlineResponse = function markInlineResponse(timestamp) {
|
|
242
|
+
if (!hasSampledFromStart(ufoExperience)) {
|
|
243
|
+
return;
|
|
244
|
+
}
|
|
245
|
+
|
|
246
|
+
return ufoExperience.markInlineResponse(timestamp);
|
|
247
|
+
};
|
|
248
|
+
|
|
249
|
+
init();
|
|
250
|
+
return _objectSpread(_objectSpread({}, ufoExperience), {}, {
|
|
251
|
+
start: start,
|
|
252
|
+
success: success,
|
|
253
|
+
failure: failure,
|
|
254
|
+
abort: abort,
|
|
255
|
+
mark: mark,
|
|
256
|
+
markFMP: markFMP,
|
|
257
|
+
markInlineResponse: markInlineResponse
|
|
258
|
+
});
|
|
259
|
+
};
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { ExperiencePerformanceTypes, ExperienceTypes, ConcurrentExperience, UFOExperience } from '@atlaskit/ufo';
|
|
2
|
+
import { withSampling } from './samplingUfo'; // TODO: clean up as not needed
|
|
3
|
+
|
|
4
|
+
var createRenderExperience = function createRenderExperience(componentName) {
|
|
5
|
+
return {
|
|
6
|
+
platform: {
|
|
7
|
+
component: componentName
|
|
8
|
+
},
|
|
9
|
+
type: ExperienceTypes.Load,
|
|
10
|
+
performanceType: ExperiencePerformanceTypes.PageSegmentLoad
|
|
11
|
+
};
|
|
12
|
+
};
|
|
13
|
+
|
|
14
|
+
var createInlineExperience = function createInlineExperience(componentName) {
|
|
15
|
+
return {
|
|
16
|
+
platform: {
|
|
17
|
+
component: componentName
|
|
18
|
+
},
|
|
19
|
+
type: ExperienceTypes.Experience,
|
|
20
|
+
performanceType: ExperiencePerformanceTypes.InlineResult
|
|
21
|
+
};
|
|
22
|
+
};
|
|
23
|
+
|
|
24
|
+
export var ufoExperiences = {
|
|
25
|
+
'emoji-rendered': new ConcurrentExperience('emoji-rendered', createRenderExperience('emoji')),
|
|
26
|
+
'emoji-resource-fetched': new ConcurrentExperience('emoji-resource-fetched', createRenderExperience('emoji-provider')),
|
|
27
|
+
'emoji-picker-opened': new UFOExperience('emoji-picker-opened', createRenderExperience('emoji-picker')),
|
|
28
|
+
'emoji-selection-recorded': new UFOExperience('emoji-selection-recorded', createInlineExperience('emoji-picker')),
|
|
29
|
+
'emoji-uploaded': new UFOExperience('emoji-uploaded', createInlineExperience('emoji-picker')),
|
|
30
|
+
'emoji-searched': new UFOExperience('emoji-searched', createInlineExperience('emoji-picker'))
|
|
31
|
+
};
|
|
32
|
+
export var sampledUfoRenderedEmoji = function sampledUfoRenderedEmoji(emojiId) {
|
|
33
|
+
return withSampling(ufoExperiences['emoji-rendered'].getInstance(emojiId.id || emojiId.shortName));
|
|
34
|
+
};
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { useEffect, useRef } from 'react';
|
|
2
|
+
import { withSampling } from './samplingUfo';
|
|
3
|
+
|
|
4
|
+
var useConstructor = function useConstructor(callback) {
|
|
5
|
+
var hasBeenFired = useRef(false);
|
|
6
|
+
|
|
7
|
+
if (!hasBeenFired.current) {
|
|
8
|
+
callback();
|
|
9
|
+
hasBeenFired.current = true;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
return null;
|
|
13
|
+
};
|
|
14
|
+
/**
|
|
15
|
+
* A hook to start an experience and to auto abort the experience when the parent component is unmounted.
|
|
16
|
+
* Use this instead of a direct call to `experience.start`. If you need to restart the experience
|
|
17
|
+
* simply trigger an unmount and remount of the parent component.
|
|
18
|
+
* @param experience the experience to start and abort
|
|
19
|
+
*/
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
export var useSampledUFOComponentExperience = function useSampledUFOComponentExperience(experience, samplingRate, metadata) {
|
|
23
|
+
useEffect(function () {
|
|
24
|
+
return function () {
|
|
25
|
+
withSampling(experience).abort();
|
|
26
|
+
}; // we want this cleanup to only happen on unmount so this is a legit use of empty array
|
|
27
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
28
|
+
}, []);
|
|
29
|
+
useConstructor(function () {
|
|
30
|
+
withSampling(experience).start({
|
|
31
|
+
samplingRate: samplingRate
|
|
32
|
+
});
|
|
33
|
+
|
|
34
|
+
if (metadata) {
|
|
35
|
+
experience.addMetadata(metadata);
|
|
36
|
+
}
|
|
37
|
+
});
|
|
38
|
+
return null;
|
|
39
|
+
};
|
|
@@ -19,4 +19,8 @@ export var selectedToneStorageKey = "".concat(localStoragePrefix, ".selectedTone
|
|
|
19
19
|
export var defaultCategories = ['PEOPLE', 'NATURE', 'FOODS', 'ACTIVITY', 'PLACES', 'OBJECTS', 'SYMBOLS', 'FLAGS'];
|
|
20
20
|
export var defaultListLimit = 50;
|
|
21
21
|
export var migrationUserId = 'hipchat_migration_emoticons';
|
|
22
|
-
export var analyticsEmojiPrefix = 'atlassian.fabric.emoji.picker';
|
|
22
|
+
export var analyticsEmojiPrefix = 'atlassian.fabric.emoji.picker'; // This is the base sampling rate in Emoji
|
|
23
|
+
|
|
24
|
+
export var SAMPLING_RATE_EMOJI_RENDERED_EXP = 0.05; // This rate is used in ResourceEmoji which will be used in stead of base sampling rate above
|
|
25
|
+
|
|
26
|
+
export var SAMPLING_RATE_EMOJI_RENDERED_EXP_RESOURCEEMOJI = 0.1; // add more sampling rate in parent components like EmojiTypeAheadItem.
|
package/dist/esm/version.json
CHANGED
|
@@ -59,6 +59,7 @@ export declare class EmojiResource extends AbstractResource<string, EmojiSearchR
|
|
|
59
59
|
protected selectedTone: ToneSelection;
|
|
60
60
|
protected currentUser?: User;
|
|
61
61
|
constructor(config: EmojiResourceConfig);
|
|
62
|
+
private getProviderType;
|
|
62
63
|
protected initEmojiRepository(emojiResponses: EmojiResponse[]): void;
|
|
63
64
|
protected initSiteEmojiResource(emojiResponse: EmojiResponse, provider: ServiceConfig): Promise<void>;
|
|
64
65
|
private performRetries;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import
|
|
1
|
+
import PropTypes from 'prop-types';
|
|
2
2
|
import { PureComponent } from 'react';
|
|
3
3
|
import { EmojiDescription } from '../../types';
|
|
4
4
|
import { Props as EmojiProps } from './Emoji';
|
|
5
|
-
import { EmojiContext
|
|
5
|
+
import { EmojiContext } from './internal-types';
|
|
6
6
|
export interface State {
|
|
7
7
|
cachedEmoji?: EmojiDescription;
|
|
8
8
|
invalidImage?: boolean;
|
|
@@ -19,13 +19,15 @@ export declare const CachingEmoji: (props: CachingEmojiProps) => JSX.Element;
|
|
|
19
19
|
* rendering paths depending on caching strategy.
|
|
20
20
|
*/
|
|
21
21
|
export declare class CachingMediaEmoji extends PureComponent<CachingEmojiProps, State> {
|
|
22
|
+
static contextTypes: {
|
|
23
|
+
emoji: PropTypes.Requireable<any>;
|
|
24
|
+
};
|
|
22
25
|
private mounted;
|
|
23
|
-
|
|
24
|
-
context:
|
|
25
|
-
constructor(props: EmojiProps, context: ContextType<typeof EmojiContext>);
|
|
26
|
+
context: EmojiContext;
|
|
27
|
+
constructor(props: EmojiProps, context: EmojiContext);
|
|
26
28
|
componentDidMount(): void;
|
|
27
29
|
componentWillUnmount(): void;
|
|
28
|
-
UNSAFE_componentWillReceiveProps(nextProps: EmojiProps, nextContext:
|
|
30
|
+
UNSAFE_componentWillReceiveProps(nextProps: EmojiProps, nextContext: EmojiContext): void;
|
|
29
31
|
private loadEmoji;
|
|
30
32
|
private handleLoadError;
|
|
31
33
|
render(): JSX.Element;
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
1
|
import { PureComponent } from 'react';
|
|
3
2
|
import { WrappedComponentProps } from 'react-intl-next';
|
|
4
3
|
import { EmojiDescription, EmojiDescriptionWithVariations, Message, OnToneSelected, OnToneSelectorCancelled, ToneSelection } from '../../types';
|
|
@@ -37,7 +36,7 @@ export declare class EmojiActions extends PureComponent<Props & WrappedComponent
|
|
|
37
36
|
renderAddOwnEmoji(): JSX.Element | null;
|
|
38
37
|
render(): JSX.Element;
|
|
39
38
|
}
|
|
40
|
-
declare const _default:
|
|
41
|
-
WrappedComponent:
|
|
39
|
+
declare const _default: import("react").FC<import("react-intl-next").WithIntlProps<Props & WrappedComponentProps<"intl">>> & {
|
|
40
|
+
WrappedComponent: import("react").ComponentType<Props & WrappedComponentProps<"intl">>;
|
|
42
41
|
};
|
|
43
42
|
export default _default;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
|
|
1
|
+
/// <reference types="react" />
|
|
2
2
|
import { WrappedComponentProps } from 'react-intl-next';
|
|
3
3
|
import { EmojiDescription } from '../../types';
|
|
4
4
|
export interface OnDeleteEmoji {
|
|
@@ -14,7 +14,7 @@ export interface State {
|
|
|
14
14
|
loading: boolean;
|
|
15
15
|
error: boolean;
|
|
16
16
|
}
|
|
17
|
-
declare const _default:
|
|
18
|
-
WrappedComponent:
|
|
17
|
+
declare const _default: import("react").FC<import("react-intl-next").WithIntlProps<Props & WrappedComponentProps<"intl">>> & {
|
|
18
|
+
WrappedComponent: import("react").ComponentType<Props & WrappedComponentProps<"intl">>;
|
|
19
19
|
};
|
|
20
20
|
export default _default;
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import { PureComponent } from 'react';
|
|
2
2
|
import { Message } from '../../types';
|
|
3
|
+
import { SerializedStyles } from '@emotion/core';
|
|
3
4
|
export interface Props {
|
|
4
5
|
message: Message;
|
|
5
|
-
className: string;
|
|
6
6
|
tooltip?: boolean;
|
|
7
|
+
messageStyles: SerializedStyles;
|
|
7
8
|
}
|
|
8
9
|
export default class EmojiErrorMessage extends PureComponent<Props> {
|
|
9
10
|
renderWithTooltip(): JSX.Element;
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
1
|
import { PureComponent } from 'react';
|
|
3
2
|
import { WrappedComponentProps } from 'react-intl-next';
|
|
4
3
|
import { EmojiDescription, EmojiDescriptionWithVariations, OnToneSelected, OnToneSelectorCancelled, ToneSelection } from '../../types';
|
|
@@ -26,7 +25,7 @@ export declare class EmojiPreview extends PureComponent<Props & WrappedComponent
|
|
|
26
25
|
renderAddOwnEmoji(): JSX.Element | null;
|
|
27
26
|
render(): JSX.Element;
|
|
28
27
|
}
|
|
29
|
-
declare const _default:
|
|
30
|
-
WrappedComponent:
|
|
28
|
+
declare const _default: import("react").FC<import("react-intl-next").WithIntlProps<Props & WrappedComponentProps<"intl">>> & {
|
|
29
|
+
WrappedComponent: import("react").ComponentType<Props & WrappedComponentProps<"intl">>;
|
|
31
30
|
};
|
|
32
31
|
export default _default;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
|
|
1
|
+
/// <reference types="react" />
|
|
2
2
|
import { WrappedComponentProps } from 'react-intl-next';
|
|
3
3
|
import { Message } from '../../types';
|
|
4
4
|
import { UploadStatus } from './internal-types';
|
|
@@ -10,7 +10,7 @@ export interface EmojiUploadPreviewProps {
|
|
|
10
10
|
onUploadCancelled: () => void;
|
|
11
11
|
onAddEmoji: () => void;
|
|
12
12
|
}
|
|
13
|
-
declare const _default:
|
|
14
|
-
WrappedComponent:
|
|
13
|
+
declare const _default: import("react").FC<import("react-intl-next").WithIntlProps<EmojiUploadPreviewProps & WrappedComponentProps<"intl">>> & {
|
|
14
|
+
WrappedComponent: import("react").ComponentType<EmojiUploadPreviewProps & WrappedComponentProps<"intl">>;
|
|
15
15
|
};
|
|
16
16
|
export default _default;
|