@atlaskit/emoji 64.4.0 → 64.5.1
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 +23 -0
- package/dist/cjs/api/EmojiResource.js +3 -5
- package/dist/cjs/components/common/CachingEmoji.js +8 -6
- package/dist/cjs/components/common/ResourcedEmojiComponent.js +12 -17
- package/dist/cjs/components/picker/EmojiPickerComponent.js +11 -16
- package/dist/cjs/components/picker/EmojiPickerList.js +0 -20
- package/dist/cjs/components/typeahead/EmojiTypeAheadComponent.js +11 -16
- package/dist/cjs/components/typeahead/EmojiTypeAheadItem.js +4 -2
- package/dist/cjs/context/EmojiContext.js +11 -0
- package/dist/cjs/context/EmojiContextProvider.js +29 -0
- package/dist/cjs/context/LegacyEmojiContextProvider.js +76 -0
- package/dist/cjs/index.js +12 -0
- package/dist/cjs/types.js +23 -2
- package/dist/cjs/util/analytics/ufoExperiences.js +8 -6
- package/dist/cjs/version.json +1 -1
- package/dist/es2019/api/EmojiResource.js +3 -6
- package/dist/es2019/components/common/CachingEmoji.js +7 -5
- package/dist/es2019/components/common/ResourcedEmojiComponent.js +11 -16
- package/dist/es2019/components/picker/EmojiPickerComponent.js +10 -15
- package/dist/es2019/components/picker/EmojiPickerList.js +0 -19
- package/dist/es2019/components/typeahead/EmojiTypeAheadComponent.js +10 -15
- package/dist/es2019/components/typeahead/EmojiTypeAheadItem.js +3 -2
- package/dist/es2019/context/EmojiContext.js +2 -0
- package/dist/es2019/context/EmojiContextProvider.js +11 -0
- package/dist/es2019/context/LegacyEmojiContextProvider.js +32 -0
- package/dist/es2019/index.js +1 -1
- package/dist/es2019/types.js +20 -1
- package/dist/es2019/util/analytics/ufoExperiences.js +8 -7
- package/dist/es2019/version.json +1 -1
- package/dist/esm/api/EmojiResource.js +3 -5
- package/dist/esm/components/common/CachingEmoji.js +7 -5
- package/dist/esm/components/common/ResourcedEmojiComponent.js +10 -16
- package/dist/esm/components/picker/EmojiPickerComponent.js +10 -16
- package/dist/esm/components/picker/EmojiPickerList.js +0 -21
- package/dist/esm/components/typeahead/EmojiTypeAheadComponent.js +10 -16
- package/dist/esm/components/typeahead/EmojiTypeAheadItem.js +3 -2
- package/dist/esm/context/EmojiContext.js +2 -0
- package/dist/esm/context/EmojiContextProvider.js +12 -0
- package/dist/esm/context/LegacyEmojiContextProvider.js +57 -0
- package/dist/esm/index.js +1 -1
- package/dist/esm/types.js +20 -1
- package/dist/esm/util/analytics/ufoExperiences.js +8 -7
- package/dist/esm/version.json +1 -1
- package/dist/types/api/EmojiResource.d.ts +1 -0
- package/dist/types/api/EmojiUtils.d.ts +1 -1
- package/dist/types/components/common/CachingEmoji.d.ts +6 -8
- package/dist/types/components/common/EmojiUploadPicker.d.ts +2 -2
- package/dist/types/components/common/ResourcedEmojiComponent.d.ts +0 -6
- package/dist/types/components/common/ToneSelector.d.ts +1 -1
- package/dist/types/components/picker/EmojiPicker.d.ts +1 -1
- package/dist/types/components/picker/EmojiPickerComponent.d.ts +2 -8
- package/dist/types/components/picker/EmojiPickerList.d.ts +0 -10
- package/dist/types/components/typeahead/EmojiTypeAheadComponent.d.ts +2 -8
- package/dist/types/components/uploader/EmojiUploader.d.ts +1 -1
- package/dist/types/context/EmojiContext.d.ts +4 -0
- package/dist/types/context/EmojiContextProvider.d.ts +7 -0
- package/dist/types/context/LegacyEmojiContextProvider.d.ts +22 -0
- package/dist/types/index.d.ts +1 -1
- package/dist/types/types.d.ts +13 -0
- package/dist/types/util/analytics/analytics.d.ts +21 -21
- package/dist/types/util/analytics/ufoExperiences.d.ts +0 -1
- package/package.json +6 -5
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
2
|
-
import PropTypes from 'prop-types';
|
|
3
2
|
import React from 'react';
|
|
4
3
|
import { Component } from 'react';
|
|
5
4
|
import { defaultEmojiHeight } from '../../util/constants';
|
|
@@ -7,6 +6,7 @@ import { isPromise } from '../../util/type-helpers';
|
|
|
7
6
|
import CachingEmoji from './CachingEmoji';
|
|
8
7
|
import EmojiPlaceholder from './EmojiPlaceholder';
|
|
9
8
|
import { sampledUfoRenderedEmoji } from '../../util/analytics';
|
|
9
|
+
import LegacyEmojiContextProvider from '../../context/LegacyEmojiContextProvider';
|
|
10
10
|
export default class ResourcedEmojiComponent extends Component {
|
|
11
11
|
constructor(props) {
|
|
12
12
|
super(props);
|
|
@@ -19,14 +19,6 @@ export default class ResourcedEmojiComponent extends Component {
|
|
|
19
19
|
};
|
|
20
20
|
}
|
|
21
21
|
|
|
22
|
-
getChildContext() {
|
|
23
|
-
return {
|
|
24
|
-
emoji: {
|
|
25
|
-
emojiProvider: this.props.emojiProvider
|
|
26
|
-
}
|
|
27
|
-
};
|
|
28
|
-
}
|
|
29
|
-
|
|
30
22
|
refreshEmoji(emojiProvider, emojiId) {
|
|
31
23
|
const foundEmoji = emojiProvider.findByEmojiId(emojiId);
|
|
32
24
|
|
|
@@ -126,15 +118,18 @@ export default class ResourcedEmojiComponent extends Component {
|
|
|
126
118
|
id,
|
|
127
119
|
fallback
|
|
128
120
|
} = this.props.emojiId;
|
|
129
|
-
|
|
121
|
+
const emojiContextValue = {
|
|
122
|
+
emoji: {
|
|
123
|
+
emojiProvider: this.props.emojiProvider
|
|
124
|
+
}
|
|
125
|
+
};
|
|
126
|
+
return /*#__PURE__*/React.createElement(LegacyEmojiContextProvider, {
|
|
127
|
+
emojiContextValue: emojiContextValue
|
|
128
|
+
}, /*#__PURE__*/React.createElement("span", {
|
|
130
129
|
"data-emoji-id": id,
|
|
131
130
|
"data-emoji-short-name": shortName,
|
|
132
131
|
"data-emoji-text": fallback || shortName
|
|
133
|
-
}, element);
|
|
132
|
+
}, element));
|
|
134
133
|
}
|
|
135
134
|
|
|
136
|
-
}
|
|
137
|
-
|
|
138
|
-
_defineProperty(ResourcedEmojiComponent, "childContextTypes", {
|
|
139
|
-
emoji: PropTypes.object
|
|
140
|
-
});
|
|
135
|
+
}
|
|
@@ -2,7 +2,6 @@ import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
|
2
2
|
|
|
3
3
|
/** @jsx jsx */
|
|
4
4
|
import { jsx } from '@emotion/core';
|
|
5
|
-
import PropTypes from 'prop-types';
|
|
6
5
|
import { PureComponent } from 'react';
|
|
7
6
|
import { FormattedMessage } from 'react-intl-next';
|
|
8
7
|
import { getEmojiVariation } from '../../api/EmojiRepository';
|
|
@@ -20,6 +19,7 @@ import EmojiPickerFooter from './EmojiPickerFooter';
|
|
|
20
19
|
import EmojiPickerList from './EmojiPickerList';
|
|
21
20
|
import { createAndFireEventInElementsChannel, categoryClickedEvent, closedPickerEvent, deleteBeginEvent, deleteCancelEvent, deleteConfirmEvent, openedPickerEvent, pickerClickedEvent, pickerSearchedEvent, selectedFileEvent, uploadBeginButton, uploadCancelButton, uploadConfirmButton, toneSelectorClosedEvent, ufoExperiences } from '../../util/analytics';
|
|
22
21
|
import { emojiPicker } from './styles';
|
|
22
|
+
import LegacyEmojiContextProvider from '../../context/LegacyEmojiContextProvider';
|
|
23
23
|
const FREQUENTLY_USED_MAX = 16;
|
|
24
24
|
export default class EmojiPickerComponent extends PureComponent {
|
|
25
25
|
constructor(props) {
|
|
@@ -354,14 +354,6 @@ export default class EmojiPickerComponent extends PureComponent {
|
|
|
354
354
|
this.openTime = 0;
|
|
355
355
|
}
|
|
356
356
|
|
|
357
|
-
getChildContext() {
|
|
358
|
-
return {
|
|
359
|
-
emoji: {
|
|
360
|
-
emojiProvider: this.props.emojiProvider
|
|
361
|
-
}
|
|
362
|
-
};
|
|
363
|
-
}
|
|
364
|
-
|
|
365
357
|
UNSAFE_componentWillMount() {
|
|
366
358
|
this.openTime = Date.now();
|
|
367
359
|
this.fireAnalytics(openedPickerEvent());
|
|
@@ -524,7 +516,14 @@ export default class EmojiPickerComponent extends PureComponent {
|
|
|
524
516
|
} = this.state;
|
|
525
517
|
const recordUsageOnSelection = createRecordSelectionDefault(emojiProvider, this.onSelectWrapper, analytic => this.fireAnalytics(analytic('picker')));
|
|
526
518
|
const formattedErrorMessage = uploadErrorMessage ? jsx(FormattedMessage, uploadErrorMessage) : null;
|
|
527
|
-
const
|
|
519
|
+
const emojiContextValue = {
|
|
520
|
+
emoji: {
|
|
521
|
+
emojiProvider: this.props.emojiProvider
|
|
522
|
+
}
|
|
523
|
+
};
|
|
524
|
+
const picker = jsx(LegacyEmojiContextProvider, {
|
|
525
|
+
emojiContextValue: emojiContextValue
|
|
526
|
+
}, jsx("div", {
|
|
528
527
|
css: emojiPicker,
|
|
529
528
|
ref: this.handlePickerRef,
|
|
530
529
|
"data-emoji-picker-container": true
|
|
@@ -562,16 +561,12 @@ export default class EmojiPickerComponent extends PureComponent {
|
|
|
562
561
|
}), jsx(EmojiPickerFooter, {
|
|
563
562
|
selectedEmoji: selectedEmoji,
|
|
564
563
|
isUploading: uploading
|
|
565
|
-
}));
|
|
564
|
+
})));
|
|
566
565
|
return picker;
|
|
567
566
|
}
|
|
568
567
|
|
|
569
568
|
}
|
|
570
569
|
|
|
571
|
-
_defineProperty(EmojiPickerComponent, "childContextTypes", {
|
|
572
|
-
emoji: PropTypes.object
|
|
573
|
-
});
|
|
574
|
-
|
|
575
570
|
_defineProperty(EmojiPickerComponent, "defaultProps", {
|
|
576
571
|
onSelection: () => {}
|
|
577
572
|
});
|
|
@@ -2,7 +2,6 @@ import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
|
2
2
|
|
|
3
3
|
/** @jsx jsx */
|
|
4
4
|
import { jsx } from '@emotion/core';
|
|
5
|
-
import PropTypes from 'prop-types';
|
|
6
5
|
import React from 'react';
|
|
7
6
|
import { PureComponent } from 'react';
|
|
8
7
|
import { List as VirtualList } from 'react-virtualized/dist/commonjs/List';
|
|
@@ -198,16 +197,6 @@ export default class EmojiPickerVirtualList extends PureComponent {
|
|
|
198
197
|
this.buildVirtualItems(_props, this.state);
|
|
199
198
|
}
|
|
200
199
|
|
|
201
|
-
getChildContext() {
|
|
202
|
-
const {
|
|
203
|
-
emoji
|
|
204
|
-
} = this.context;
|
|
205
|
-
return {
|
|
206
|
-
emoji: { ...emoji
|
|
207
|
-
}
|
|
208
|
-
};
|
|
209
|
-
}
|
|
210
|
-
|
|
211
200
|
UNSAFE_componentWillUpdate(nextProps, nextState) {
|
|
212
201
|
if (this.props.emojis !== nextProps.emojis || this.props.selectedTone !== nextProps.selectedTone || this.props.loading !== nextProps.loading || this.props.query !== nextProps.query) {
|
|
213
202
|
if (!nextProps.query) {
|
|
@@ -289,14 +278,6 @@ export default class EmojiPickerVirtualList extends PureComponent {
|
|
|
289
278
|
|
|
290
279
|
}
|
|
291
280
|
|
|
292
|
-
_defineProperty(EmojiPickerVirtualList, "contextTypes", {
|
|
293
|
-
emoji: PropTypes.object
|
|
294
|
-
});
|
|
295
|
-
|
|
296
|
-
_defineProperty(EmojiPickerVirtualList, "childContextTypes", {
|
|
297
|
-
emoji: PropTypes.object
|
|
298
|
-
});
|
|
299
|
-
|
|
300
281
|
_defineProperty(EmojiPickerVirtualList, "defaultProps", {
|
|
301
282
|
onEmojiSelected: () => {},
|
|
302
283
|
onEmojiActive: () => {},
|
|
@@ -3,7 +3,6 @@ import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
|
3
3
|
/** @jsx jsx */
|
|
4
4
|
import { jsx } from '@emotion/core';
|
|
5
5
|
import uuid from 'uuid';
|
|
6
|
-
import PropTypes from 'prop-types';
|
|
7
6
|
import { PureComponent } from 'react';
|
|
8
7
|
import { defaultListLimit } from '../../util/constants';
|
|
9
8
|
import { toEmojiId } from '../../util/type-helpers';
|
|
@@ -13,6 +12,7 @@ import { typeaheadCancelledEvent, typeaheadSelectedEvent, typeaheadRenderedEvent
|
|
|
13
12
|
import { createRecordSelectionDefault } from '../common/RecordSelectionDefault';
|
|
14
13
|
import EmojiList from './EmojiTypeAheadList';
|
|
15
14
|
import { emojiTypeAhead } from './styles';
|
|
15
|
+
import LegacyEmojiContextProvider from '../../context/LegacyEmojiContextProvider';
|
|
16
16
|
|
|
17
17
|
const isFullShortName = query => query && query.length > 1 && query.charAt(0) === ':' && query.charAt(query.length - 1) === ':';
|
|
18
18
|
|
|
@@ -150,14 +150,6 @@ export default class EmojiTypeAheadComponent extends PureComponent {
|
|
|
150
150
|
this.selected = false;
|
|
151
151
|
}
|
|
152
152
|
|
|
153
|
-
getChildContext() {
|
|
154
|
-
return {
|
|
155
|
-
emoji: {
|
|
156
|
-
emojiProvider: this.props.emojiProvider
|
|
157
|
-
}
|
|
158
|
-
};
|
|
159
|
-
}
|
|
160
|
-
|
|
161
153
|
componentDidMount() {
|
|
162
154
|
const {
|
|
163
155
|
emojiProvider
|
|
@@ -265,7 +257,14 @@ export default class EmojiTypeAheadComponent extends PureComponent {
|
|
|
265
257
|
const style = {
|
|
266
258
|
display: visible ? 'block' : 'none'
|
|
267
259
|
};
|
|
268
|
-
|
|
260
|
+
const emojiContextValue = {
|
|
261
|
+
emoji: {
|
|
262
|
+
emojiProvider: this.props.emojiProvider
|
|
263
|
+
}
|
|
264
|
+
};
|
|
265
|
+
return jsx(LegacyEmojiContextProvider, {
|
|
266
|
+
emojiContextValue: emojiContextValue
|
|
267
|
+
}, jsx("div", {
|
|
269
268
|
style: style,
|
|
270
269
|
className: 'ak-emoji-typeahead',
|
|
271
270
|
css: emojiTypeAhead
|
|
@@ -274,15 +273,11 @@ export default class EmojiTypeAheadComponent extends PureComponent {
|
|
|
274
273
|
onEmojiSelected: recordUsageOnSelection,
|
|
275
274
|
ref: this.onEmojiListRef,
|
|
276
275
|
loading: loading
|
|
277
|
-
}));
|
|
276
|
+
})));
|
|
278
277
|
}
|
|
279
278
|
|
|
280
279
|
}
|
|
281
280
|
|
|
282
|
-
_defineProperty(EmojiTypeAheadComponent, "childContextTypes", {
|
|
283
|
-
emoji: PropTypes.object
|
|
284
|
-
});
|
|
285
|
-
|
|
286
281
|
_defineProperty(EmojiTypeAheadComponent, "defaultProps", {
|
|
287
282
|
onSelection: () => {},
|
|
288
283
|
onOpen: () => {},
|
|
@@ -8,6 +8,7 @@ import { toEmojiId } from '../../util/type-helpers';
|
|
|
8
8
|
import { leftClick } from '../../util/mouse';
|
|
9
9
|
import { EmojiPreviewComponent } from '../common/EmojiPreviewComponent';
|
|
10
10
|
import { typeAheadItem, selected as selectedStyles, typeAheadItemRow, typeaheadSelected } from './styles';
|
|
11
|
+
import LegacyEmojiContextProvider from '../../context/LegacyEmojiContextProvider';
|
|
11
12
|
export default class EmojiTypeAheadItem extends PureComponent {
|
|
12
13
|
constructor(...args) {
|
|
13
14
|
super(...args);
|
|
@@ -42,7 +43,7 @@ export default class EmojiTypeAheadItem extends PureComponent {
|
|
|
42
43
|
emoji
|
|
43
44
|
} = this.props;
|
|
44
45
|
const classes = [typeAheadItem, selected && selectedStyles];
|
|
45
|
-
return jsx("div", {
|
|
46
|
+
return jsx(LegacyEmojiContextProvider, null, jsx("div", {
|
|
46
47
|
className: `ak-emoji-typeahead-item ${selected ? typeaheadSelected : ''}`,
|
|
47
48
|
css: classes,
|
|
48
49
|
onMouseDown: this.onEmojiSelected,
|
|
@@ -52,7 +53,7 @@ export default class EmojiTypeAheadItem extends PureComponent {
|
|
|
52
53
|
css: typeAheadItemRow
|
|
53
54
|
}, emoji && jsx(EmojiPreviewComponent, {
|
|
54
55
|
emoji: emoji
|
|
55
|
-
})));
|
|
56
|
+
}))));
|
|
56
57
|
}
|
|
57
58
|
|
|
58
59
|
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import React, { useMemo } from 'react';
|
|
2
|
+
import { EmojiContext } from './EmojiContext';
|
|
3
|
+
export const EmojiContextProvider = ({
|
|
4
|
+
children,
|
|
5
|
+
emojiContextValue
|
|
6
|
+
}) => {
|
|
7
|
+
const memoizedEmojiContextValue = useMemo(() => emojiContextValue, [emojiContextValue]);
|
|
8
|
+
return /*#__PURE__*/React.createElement(EmojiContext.Provider, {
|
|
9
|
+
value: memoizedEmojiContextValue
|
|
10
|
+
}, children);
|
|
11
|
+
};
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
2
|
+
import React, { Component } from 'react';
|
|
3
|
+
import PropTypes from 'prop-types';
|
|
4
|
+
import { EmojiContextProvider } from './EmojiContextProvider';
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Legacy Context Priority Passthrough ...
|
|
8
|
+
* If component finds legacy context, then use it, otherwise use the passed through context
|
|
9
|
+
*/
|
|
10
|
+
export default class LegacyEmojiContextProvider extends Component {
|
|
11
|
+
constructor(props, context) {
|
|
12
|
+
super(props, context);
|
|
13
|
+
this.state = {
|
|
14
|
+
prioritisedContextValue: context.emoji ? context : this.props.emojiContextValue
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
render() {
|
|
19
|
+
if (this.state.prioritisedContextValue) {
|
|
20
|
+
return /*#__PURE__*/React.createElement(EmojiContextProvider, {
|
|
21
|
+
emojiContextValue: this.state.prioritisedContextValue
|
|
22
|
+
}, this.props.children);
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
return this.props.children;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
_defineProperty(LegacyEmojiContextProvider, "contextTypes", {
|
|
31
|
+
emoji: PropTypes.object
|
|
32
|
+
});
|
package/dist/es2019/index.js
CHANGED
|
@@ -21,5 +21,5 @@ AbstractResource, Emoji, EmojiPlaceholder, EmojiLoader, EmojiPicker, EmojiUpload
|
|
|
21
21
|
denormaliseEmojiServiceResponse, toEmojiId, toOptionalEmojiId, recordSelectionFailedSli, recordSelectionSucceededSli, ufoExperiences, // Constants
|
|
22
22
|
emojiPickerWidth, emojiPickerHeight, defaultEmojiHeight, customCategory, UsageFrequencyTracker, EmojiTypeAheadItem };
|
|
23
23
|
export { // Enums
|
|
24
|
-
SearchSort } from './types';
|
|
24
|
+
SearchSort, UfoExperienceName, UfoComponentName } from './types';
|
|
25
25
|
export default EmojiPicker;
|
package/dist/es2019/types.js
CHANGED
|
@@ -42,4 +42,23 @@ export let ProviderTypes;
|
|
|
42
42
|
ProviderTypes["STANDARD"] = "STANDARD";
|
|
43
43
|
ProviderTypes["ATLASSIAN"] = "ATLASSIAN";
|
|
44
44
|
ProviderTypes["UNKNOWN"] = "UNKNOWN";
|
|
45
|
-
})(ProviderTypes || (ProviderTypes = {}));
|
|
45
|
+
})(ProviderTypes || (ProviderTypes = {}));
|
|
46
|
+
|
|
47
|
+
export let UfoExperienceName;
|
|
48
|
+
|
|
49
|
+
(function (UfoExperienceName) {
|
|
50
|
+
UfoExperienceName["EMOJI_RENDERED"] = "emoji-rendered";
|
|
51
|
+
UfoExperienceName["EMOJI_RESOURCE_FETCHED"] = "emoji-resource-fetched";
|
|
52
|
+
UfoExperienceName["EMOJI_PICKER_OPENED"] = "emoji-picker-opened";
|
|
53
|
+
UfoExperienceName["EMOJI_SELECTION_RECORDED"] = "emoji-selection-recorded";
|
|
54
|
+
UfoExperienceName["EMOJI_UPLOADED"] = "emoji-uploaded";
|
|
55
|
+
UfoExperienceName["EMOJI_SEARCHED"] = "emoji-searched";
|
|
56
|
+
})(UfoExperienceName || (UfoExperienceName = {}));
|
|
57
|
+
|
|
58
|
+
export let UfoComponentName;
|
|
59
|
+
|
|
60
|
+
(function (UfoComponentName) {
|
|
61
|
+
UfoComponentName["EMOJI"] = "emoji";
|
|
62
|
+
UfoComponentName["EMOJI_PICKER"] = "emoji-picker";
|
|
63
|
+
UfoComponentName["EMOJI_PROVIDER"] = "emoji-provider";
|
|
64
|
+
})(UfoComponentName || (UfoComponentName = {}));
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
+
import { UfoComponentName, UfoExperienceName } from '../../types';
|
|
1
2
|
import { ExperiencePerformanceTypes, ExperienceTypes, ConcurrentExperience, UFOExperience } from '@atlaskit/ufo';
|
|
2
|
-
import { withSampling } from './samplingUfo';
|
|
3
|
+
import { withSampling } from './samplingUfo';
|
|
3
4
|
|
|
4
5
|
const createRenderExperience = componentName => {
|
|
5
6
|
return {
|
|
@@ -22,12 +23,12 @@ const createInlineExperience = componentName => {
|
|
|
22
23
|
};
|
|
23
24
|
|
|
24
25
|
export const ufoExperiences = {
|
|
25
|
-
'emoji-rendered': new ConcurrentExperience(
|
|
26
|
-
'emoji-resource-fetched': new ConcurrentExperience(
|
|
27
|
-
'emoji-picker-opened': new UFOExperience(
|
|
28
|
-
'emoji-selection-recorded': new UFOExperience(
|
|
29
|
-
'emoji-uploaded': new UFOExperience(
|
|
30
|
-
'emoji-searched': new UFOExperience(
|
|
26
|
+
'emoji-rendered': new ConcurrentExperience(UfoExperienceName.EMOJI_RENDERED, createRenderExperience(UfoComponentName.EMOJI)),
|
|
27
|
+
'emoji-resource-fetched': new ConcurrentExperience(UfoExperienceName.EMOJI_RESOURCE_FETCHED, createRenderExperience(UfoComponentName.EMOJI_PROVIDER)),
|
|
28
|
+
'emoji-picker-opened': new UFOExperience(UfoExperienceName.EMOJI_PICKER_OPENED, createRenderExperience(UfoComponentName.EMOJI_PICKER)),
|
|
29
|
+
'emoji-selection-recorded': new UFOExperience(UfoExperienceName.EMOJI_SELECTION_RECORDED, createInlineExperience(UfoComponentName.EMOJI_PROVIDER)),
|
|
30
|
+
'emoji-uploaded': new UFOExperience(UfoExperienceName.EMOJI_UPLOADED, createInlineExperience(UfoComponentName.EMOJI_PICKER)),
|
|
31
|
+
'emoji-searched': new UFOExperience(UfoExperienceName.EMOJI_SEARCHED, createInlineExperience(UfoComponentName.EMOJI_PICKER))
|
|
31
32
|
};
|
|
32
33
|
export const sampledUfoRenderedEmoji = emojiId => {
|
|
33
34
|
return withSampling(ufoExperiences['emoji-rendered'].getInstance(emojiId.id || emojiId.shortName));
|
package/dist/es2019/version.json
CHANGED
|
@@ -27,13 +27,11 @@ import { ufoExperiences } from '../util/analytics';
|
|
|
27
27
|
*
|
|
28
28
|
* Follow this up with an isUploadSupported() check to see if the provider is actually
|
|
29
29
|
* configured to support uploads.
|
|
30
|
+
* https://www.typescriptlang.org/docs/handbook/2/narrowing.html#using-type-predicates
|
|
30
31
|
*/
|
|
31
32
|
export var supportsUploadFeature = function supportsUploadFeature(emojiProvider) {
|
|
32
|
-
var
|
|
33
|
-
|
|
34
|
-
prepareForUpload = _ref.prepareForUpload,
|
|
35
|
-
uploadCustomEmoji = _ref.uploadCustomEmoji;
|
|
36
|
-
return !!(isUploadSupported && prepareForUpload && uploadCustomEmoji);
|
|
33
|
+
var emojiUploadProvider = emojiProvider;
|
|
34
|
+
return !!emojiUploadProvider.isUploadSupported && !!emojiUploadProvider.uploadCustomEmoji && !!emojiUploadProvider.prepareForUpload;
|
|
37
35
|
};
|
|
38
36
|
export var EmojiResource = /*#__PURE__*/function (_AbstractResource) {
|
|
39
37
|
_inherits(EmojiResource, _AbstractResource);
|
|
@@ -14,7 +14,6 @@ function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflec
|
|
|
14
14
|
|
|
15
15
|
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; } }
|
|
16
16
|
|
|
17
|
-
import PropTypes from 'prop-types';
|
|
18
17
|
import React from 'react';
|
|
19
18
|
import { PureComponent } from 'react';
|
|
20
19
|
import { shouldUseAltRepresentation } from '../../api/EmojiUtils';
|
|
@@ -25,6 +24,7 @@ import EmojiPlaceholder from './EmojiPlaceholder';
|
|
|
25
24
|
import { UfoErrorBoundary } from './UfoErrorBoundary';
|
|
26
25
|
import { sampledUfoRenderedEmoji, ufoExperiences, useSampledUFOComponentExperience } from '../../util/analytics';
|
|
27
26
|
import { SAMPLING_RATE_EMOJI_RENDERED_EXP } from '../../util/constants';
|
|
27
|
+
import { EmojiContext } from '../../context/EmojiContext';
|
|
28
28
|
|
|
29
29
|
/**
|
|
30
30
|
* Renders an emoji from a cached image, if required.
|
|
@@ -67,7 +67,7 @@ export var CachingMediaEmoji = /*#__PURE__*/function (_PureComponent) {
|
|
|
67
67
|
|
|
68
68
|
_classCallCheck(this, CachingMediaEmoji);
|
|
69
69
|
|
|
70
|
-
_this = _super.call(this, props
|
|
70
|
+
_this = _super.call(this, props);
|
|
71
71
|
|
|
72
72
|
_defineProperty(_assertThisInitialized(_this), "mounted", false);
|
|
73
73
|
|
|
@@ -122,6 +122,10 @@ export var CachingMediaEmoji = /*#__PURE__*/function (_PureComponent) {
|
|
|
122
122
|
value: function loadEmoji(emoji, context, forceLoad) {
|
|
123
123
|
var _this2 = this;
|
|
124
124
|
|
|
125
|
+
if (!context) {
|
|
126
|
+
return;
|
|
127
|
+
}
|
|
128
|
+
|
|
125
129
|
if (!context.emoji) {
|
|
126
130
|
return undefined;
|
|
127
131
|
}
|
|
@@ -215,8 +219,6 @@ export var CachingMediaEmoji = /*#__PURE__*/function (_PureComponent) {
|
|
|
215
219
|
return CachingMediaEmoji;
|
|
216
220
|
}(PureComponent);
|
|
217
221
|
|
|
218
|
-
_defineProperty(CachingMediaEmoji, "
|
|
219
|
-
emoji: PropTypes.object
|
|
220
|
-
});
|
|
222
|
+
_defineProperty(CachingMediaEmoji, "contextType", EmojiContext);
|
|
221
223
|
|
|
222
224
|
export default CachingEmoji;
|
|
@@ -10,7 +10,6 @@ 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
|
-
import PropTypes from 'prop-types';
|
|
14
13
|
import React from 'react';
|
|
15
14
|
import { Component } from 'react';
|
|
16
15
|
import { defaultEmojiHeight } from '../../util/constants';
|
|
@@ -18,6 +17,7 @@ import { isPromise } from '../../util/type-helpers';
|
|
|
18
17
|
import CachingEmoji from './CachingEmoji';
|
|
19
18
|
import EmojiPlaceholder from './EmojiPlaceholder';
|
|
20
19
|
import { sampledUfoRenderedEmoji } from '../../util/analytics';
|
|
20
|
+
import LegacyEmojiContextProvider from '../../context/LegacyEmojiContextProvider';
|
|
21
21
|
|
|
22
22
|
var ResourcedEmojiComponent = /*#__PURE__*/function (_Component) {
|
|
23
23
|
_inherits(ResourcedEmojiComponent, _Component);
|
|
@@ -41,15 +41,6 @@ var ResourcedEmojiComponent = /*#__PURE__*/function (_Component) {
|
|
|
41
41
|
}
|
|
42
42
|
|
|
43
43
|
_createClass(ResourcedEmojiComponent, [{
|
|
44
|
-
key: "getChildContext",
|
|
45
|
-
value: function getChildContext() {
|
|
46
|
-
return {
|
|
47
|
-
emoji: {
|
|
48
|
-
emojiProvider: this.props.emojiProvider
|
|
49
|
-
}
|
|
50
|
-
};
|
|
51
|
-
}
|
|
52
|
-
}, {
|
|
53
44
|
key: "refreshEmoji",
|
|
54
45
|
value: function refreshEmoji(emojiProvider, emojiId) {
|
|
55
46
|
var _this2 = this;
|
|
@@ -153,19 +144,22 @@ var ResourcedEmojiComponent = /*#__PURE__*/function (_Component) {
|
|
|
153
144
|
shortName = _this$props$emojiId.shortName,
|
|
154
145
|
id = _this$props$emojiId.id,
|
|
155
146
|
fallback = _this$props$emojiId.fallback;
|
|
156
|
-
|
|
147
|
+
var emojiContextValue = {
|
|
148
|
+
emoji: {
|
|
149
|
+
emojiProvider: this.props.emojiProvider
|
|
150
|
+
}
|
|
151
|
+
};
|
|
152
|
+
return /*#__PURE__*/React.createElement(LegacyEmojiContextProvider, {
|
|
153
|
+
emojiContextValue: emojiContextValue
|
|
154
|
+
}, /*#__PURE__*/React.createElement("span", {
|
|
157
155
|
"data-emoji-id": id,
|
|
158
156
|
"data-emoji-short-name": shortName,
|
|
159
157
|
"data-emoji-text": fallback || shortName
|
|
160
|
-
}, element);
|
|
158
|
+
}, element));
|
|
161
159
|
}
|
|
162
160
|
}]);
|
|
163
161
|
|
|
164
162
|
return ResourcedEmojiComponent;
|
|
165
163
|
}(Component);
|
|
166
164
|
|
|
167
|
-
_defineProperty(ResourcedEmojiComponent, "childContextTypes", {
|
|
168
|
-
emoji: PropTypes.object
|
|
169
|
-
});
|
|
170
|
-
|
|
171
165
|
export { ResourcedEmojiComponent as default };
|
|
@@ -17,7 +17,6 @@ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Re
|
|
|
17
17
|
|
|
18
18
|
/** @jsx jsx */
|
|
19
19
|
import { jsx } from '@emotion/core';
|
|
20
|
-
import PropTypes from 'prop-types';
|
|
21
20
|
import { PureComponent } from 'react';
|
|
22
21
|
import { FormattedMessage } from 'react-intl-next';
|
|
23
22
|
import { getEmojiVariation } from '../../api/EmojiRepository';
|
|
@@ -35,6 +34,7 @@ import EmojiPickerFooter from './EmojiPickerFooter';
|
|
|
35
34
|
import EmojiPickerList from './EmojiPickerList';
|
|
36
35
|
import { createAndFireEventInElementsChannel, categoryClickedEvent, closedPickerEvent, deleteBeginEvent, deleteCancelEvent, deleteConfirmEvent, openedPickerEvent, pickerClickedEvent, pickerSearchedEvent, selectedFileEvent, uploadBeginButton, uploadCancelButton, uploadConfirmButton, toneSelectorClosedEvent, ufoExperiences } from '../../util/analytics';
|
|
37
36
|
import { emojiPicker } from './styles';
|
|
37
|
+
import LegacyEmojiContextProvider from '../../context/LegacyEmojiContextProvider';
|
|
38
38
|
var FREQUENTLY_USED_MAX = 16;
|
|
39
39
|
|
|
40
40
|
var EmojiPickerComponent = /*#__PURE__*/function (_PureComponent) {
|
|
@@ -378,15 +378,6 @@ var EmojiPickerComponent = /*#__PURE__*/function (_PureComponent) {
|
|
|
378
378
|
}
|
|
379
379
|
|
|
380
380
|
_createClass(EmojiPickerComponent, [{
|
|
381
|
-
key: "getChildContext",
|
|
382
|
-
value: function getChildContext() {
|
|
383
|
-
return {
|
|
384
|
-
emoji: {
|
|
385
|
-
emojiProvider: this.props.emojiProvider
|
|
386
|
-
}
|
|
387
|
-
};
|
|
388
|
-
}
|
|
389
|
-
}, {
|
|
390
381
|
key: "UNSAFE_componentWillMount",
|
|
391
382
|
value: function UNSAFE_componentWillMount() {
|
|
392
383
|
this.openTime = Date.now();
|
|
@@ -561,7 +552,14 @@ var EmojiPickerComponent = /*#__PURE__*/function (_PureComponent) {
|
|
|
561
552
|
return _this4.fireAnalytics(analytic('picker'));
|
|
562
553
|
});
|
|
563
554
|
var formattedErrorMessage = uploadErrorMessage ? jsx(FormattedMessage, uploadErrorMessage) : null;
|
|
564
|
-
var
|
|
555
|
+
var emojiContextValue = {
|
|
556
|
+
emoji: {
|
|
557
|
+
emojiProvider: this.props.emojiProvider
|
|
558
|
+
}
|
|
559
|
+
};
|
|
560
|
+
var picker = jsx(LegacyEmojiContextProvider, {
|
|
561
|
+
emojiContextValue: emojiContextValue
|
|
562
|
+
}, jsx("div", {
|
|
565
563
|
css: emojiPicker,
|
|
566
564
|
ref: this.handlePickerRef,
|
|
567
565
|
"data-emoji-picker-container": true
|
|
@@ -599,7 +597,7 @@ var EmojiPickerComponent = /*#__PURE__*/function (_PureComponent) {
|
|
|
599
597
|
}), jsx(EmojiPickerFooter, {
|
|
600
598
|
selectedEmoji: selectedEmoji,
|
|
601
599
|
isUploading: uploading
|
|
602
|
-
}));
|
|
600
|
+
})));
|
|
603
601
|
return picker;
|
|
604
602
|
}
|
|
605
603
|
}]);
|
|
@@ -607,10 +605,6 @@ var EmojiPickerComponent = /*#__PURE__*/function (_PureComponent) {
|
|
|
607
605
|
return EmojiPickerComponent;
|
|
608
606
|
}(PureComponent);
|
|
609
607
|
|
|
610
|
-
_defineProperty(EmojiPickerComponent, "childContextTypes", {
|
|
611
|
-
emoji: PropTypes.object
|
|
612
|
-
});
|
|
613
|
-
|
|
614
608
|
_defineProperty(EmojiPickerComponent, "defaultProps", {
|
|
615
609
|
onSelection: function onSelection() {}
|
|
616
610
|
});
|
|
@@ -7,17 +7,12 @@ import _possibleConstructorReturn from "@babel/runtime/helpers/possibleConstruct
|
|
|
7
7
|
import _getPrototypeOf from "@babel/runtime/helpers/getPrototypeOf";
|
|
8
8
|
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
9
9
|
|
|
10
|
-
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; }
|
|
11
|
-
|
|
12
|
-
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; }
|
|
13
|
-
|
|
14
10
|
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); }; }
|
|
15
11
|
|
|
16
12
|
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; } }
|
|
17
13
|
|
|
18
14
|
/** @jsx jsx */
|
|
19
15
|
import { jsx } from '@emotion/core';
|
|
20
|
-
import PropTypes from 'prop-types';
|
|
21
16
|
import React from 'react';
|
|
22
17
|
import { PureComponent } from 'react';
|
|
23
18
|
import { List as VirtualList } from 'react-virtualized/dist/commonjs/List';
|
|
@@ -233,14 +228,6 @@ var EmojiPickerVirtualList = /*#__PURE__*/function (_PureComponent) {
|
|
|
233
228
|
}
|
|
234
229
|
|
|
235
230
|
_createClass(EmojiPickerVirtualList, [{
|
|
236
|
-
key: "getChildContext",
|
|
237
|
-
value: function getChildContext() {
|
|
238
|
-
var emoji = this.context.emoji;
|
|
239
|
-
return {
|
|
240
|
-
emoji: _objectSpread({}, emoji)
|
|
241
|
-
};
|
|
242
|
-
}
|
|
243
|
-
}, {
|
|
244
231
|
key: "UNSAFE_componentWillUpdate",
|
|
245
232
|
value: function UNSAFE_componentWillUpdate(nextProps, nextState) {
|
|
246
233
|
if (this.props.emojis !== nextProps.emojis || this.props.selectedTone !== nextProps.selectedTone || this.props.loading !== nextProps.loading || this.props.query !== nextProps.query) {
|
|
@@ -328,14 +315,6 @@ var EmojiPickerVirtualList = /*#__PURE__*/function (_PureComponent) {
|
|
|
328
315
|
return EmojiPickerVirtualList;
|
|
329
316
|
}(PureComponent);
|
|
330
317
|
|
|
331
|
-
_defineProperty(EmojiPickerVirtualList, "contextTypes", {
|
|
332
|
-
emoji: PropTypes.object
|
|
333
|
-
});
|
|
334
|
-
|
|
335
|
-
_defineProperty(EmojiPickerVirtualList, "childContextTypes", {
|
|
336
|
-
emoji: PropTypes.object
|
|
337
|
-
});
|
|
338
|
-
|
|
339
318
|
_defineProperty(EmojiPickerVirtualList, "defaultProps", {
|
|
340
319
|
onEmojiSelected: function onEmojiSelected() {},
|
|
341
320
|
onEmojiActive: function onEmojiActive() {},
|