@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
|
@@ -1,10 +1,14 @@
|
|
|
1
1
|
import _extends from "@babel/runtime/helpers/extends";
|
|
2
2
|
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
3
|
+
|
|
4
|
+
/** @jsx jsx */
|
|
5
|
+
import { jsx } from '@emotion/core';
|
|
3
6
|
import { withAnalyticsEvents } from '@atlaskit/analytics-next';
|
|
4
|
-
import
|
|
7
|
+
import { ufoExperiences } from '../../util/analytics';
|
|
5
8
|
import LoadingEmojiComponent from '../common/LoadingEmojiComponent';
|
|
6
9
|
import { LoadingItem } from './EmojiPickerVirtualItems';
|
|
7
|
-
import
|
|
10
|
+
import { emojiPicker } from './styles';
|
|
11
|
+
import { UfoErrorBoundary } from '../common/UfoErrorBoundary';
|
|
8
12
|
|
|
9
13
|
const emojiPickerModuleLoader = () => import(
|
|
10
14
|
/* webpackChunkName:"@atlaskit-internal_emojiPickerComponent" */
|
|
@@ -21,6 +25,8 @@ export class EmojiPickerInternal extends LoadingEmojiComponent {
|
|
|
21
25
|
_defineProperty(this, "state", {
|
|
22
26
|
asyncLoadedComponent: EmojiPickerInternal.AsyncLoadedComponent
|
|
23
27
|
});
|
|
28
|
+
|
|
29
|
+
ufoExperiences['emoji-picker-opened'].start();
|
|
24
30
|
}
|
|
25
31
|
|
|
26
32
|
asyncLoadComponent() {
|
|
@@ -39,8 +45,9 @@ export class EmojiPickerInternal extends LoadingEmojiComponent {
|
|
|
39
45
|
}
|
|
40
46
|
};
|
|
41
47
|
|
|
42
|
-
|
|
43
|
-
|
|
48
|
+
ufoExperiences['emoji-picker-opened'].markFMP();
|
|
49
|
+
return jsx("div", {
|
|
50
|
+
css: emojiPicker,
|
|
44
51
|
ref: handlePickerRef
|
|
45
52
|
}, item.renderItem());
|
|
46
53
|
}
|
|
@@ -50,9 +57,11 @@ export class EmojiPickerInternal extends LoadingEmojiComponent {
|
|
|
50
57
|
emojiProvider,
|
|
51
58
|
...otherProps
|
|
52
59
|
} = this.props;
|
|
53
|
-
return
|
|
60
|
+
return jsx(UfoErrorBoundary, {
|
|
61
|
+
experiences: [ufoExperiences['emoji-picker-opened']]
|
|
62
|
+
}, jsx(EmojiPickerComponent, _extends({
|
|
54
63
|
emojiProvider: loadedEmojiProvider
|
|
55
|
-
}, otherProps));
|
|
64
|
+
}, otherProps)));
|
|
56
65
|
}
|
|
57
66
|
|
|
58
67
|
}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
|
|
2
|
-
import
|
|
1
|
+
/** @jsx jsx */
|
|
2
|
+
import { jsx } from '@emotion/core';
|
|
3
3
|
import { PureComponent } from 'react';
|
|
4
4
|
import { FormattedMessage } from 'react-intl-next';
|
|
5
5
|
import { isMessagesKey } from '../../util/type-helpers';
|
|
6
6
|
import { messages } from '../i18n';
|
|
7
|
-
import
|
|
7
|
+
import { emojiCategoryTitle } from './styles';
|
|
8
8
|
export default class EmojiPickerCategoryHeading extends PureComponent {
|
|
9
9
|
render() {
|
|
10
10
|
const {
|
|
@@ -12,13 +12,13 @@ export default class EmojiPickerCategoryHeading extends PureComponent {
|
|
|
12
12
|
title,
|
|
13
13
|
className
|
|
14
14
|
} = this.props;
|
|
15
|
-
return
|
|
15
|
+
return jsx("div", {
|
|
16
16
|
id: id,
|
|
17
17
|
"data-category-id": id,
|
|
18
|
-
className:
|
|
19
|
-
},
|
|
20
|
-
|
|
21
|
-
}, isMessagesKey(title) ?
|
|
18
|
+
className: className
|
|
19
|
+
}, jsx("div", {
|
|
20
|
+
css: emojiCategoryTitle
|
|
21
|
+
}, isMessagesKey(title) ? jsx(FormattedMessage, messages[title]) : title));
|
|
22
22
|
}
|
|
23
23
|
|
|
24
24
|
}
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
2
|
-
|
|
3
|
-
|
|
2
|
+
|
|
3
|
+
/** @jsx jsx */
|
|
4
|
+
import { jsx } from '@emotion/core';
|
|
5
|
+
import PropTypes from 'prop-types';
|
|
4
6
|
import { PureComponent } from 'react';
|
|
5
7
|
import { FormattedMessage } from 'react-intl-next';
|
|
6
8
|
import { getEmojiVariation } from '../../api/EmojiRepository';
|
|
@@ -16,9 +18,8 @@ import { createRecordSelectionDefault } from '../common/RecordSelectionDefault';
|
|
|
16
18
|
import CategorySelector from './CategorySelector';
|
|
17
19
|
import EmojiPickerFooter from './EmojiPickerFooter';
|
|
18
20
|
import EmojiPickerList from './EmojiPickerList';
|
|
19
|
-
import
|
|
20
|
-
import {
|
|
21
|
-
import { EmojiContextProvider } from '../../context/EmojiContextProvider';
|
|
21
|
+
import { createAndFireEventInElementsChannel, categoryClickedEvent, closedPickerEvent, deleteBeginEvent, deleteCancelEvent, deleteConfirmEvent, openedPickerEvent, pickerClickedEvent, pickerSearchedEvent, selectedFileEvent, uploadBeginButton, uploadCancelButton, uploadConfirmButton, toneSelectorClosedEvent, ufoExperiences } from '../../util/analytics';
|
|
22
|
+
import { emojiPicker } from './styles';
|
|
22
23
|
const FREQUENTLY_USED_MAX = 16;
|
|
23
24
|
export default class EmojiPickerComponent extends PureComponent {
|
|
24
25
|
constructor(props) {
|
|
@@ -105,9 +106,19 @@ export default class EmojiPickerComponent extends PureComponent {
|
|
|
105
106
|
});
|
|
106
107
|
|
|
107
108
|
_defineProperty(this, "onSearch", query => {
|
|
108
|
-
|
|
109
|
+
const options = {
|
|
109
110
|
skinTone: this.state.selectedTone
|
|
110
|
-
}
|
|
111
|
+
};
|
|
112
|
+
|
|
113
|
+
if (query !== this.state.query) {
|
|
114
|
+
ufoExperiences['emoji-searched'].start();
|
|
115
|
+
ufoExperiences['emoji-searched'].addMetadata({
|
|
116
|
+
queryLength: query.length,
|
|
117
|
+
source: 'picker'
|
|
118
|
+
});
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
this.updateEmojis(query, options);
|
|
111
122
|
});
|
|
112
123
|
|
|
113
124
|
_defineProperty(this, "onSearchResult", searchResults => {
|
|
@@ -120,6 +131,11 @@ export default class EmojiPickerComponent extends PureComponent {
|
|
|
120
131
|
queryLength: searchQuery.length,
|
|
121
132
|
numMatches: emojiToRender.length
|
|
122
133
|
}));
|
|
134
|
+
ufoExperiences['emoji-searched'].success({
|
|
135
|
+
metadata: {
|
|
136
|
+
emojisLength: emojiToRender.length
|
|
137
|
+
}
|
|
138
|
+
});
|
|
123
139
|
}
|
|
124
140
|
|
|
125
141
|
this.setStateAfterEmojiChange(searchQuery, emojiToRender, searchResults.emojis, frequentlyUsedEmoji);
|
|
@@ -338,12 +354,21 @@ export default class EmojiPickerComponent extends PureComponent {
|
|
|
338
354
|
this.openTime = 0;
|
|
339
355
|
}
|
|
340
356
|
|
|
357
|
+
getChildContext() {
|
|
358
|
+
return {
|
|
359
|
+
emoji: {
|
|
360
|
+
emojiProvider: this.props.emojiProvider
|
|
361
|
+
}
|
|
362
|
+
};
|
|
363
|
+
}
|
|
364
|
+
|
|
341
365
|
UNSAFE_componentWillMount() {
|
|
342
366
|
this.openTime = Date.now();
|
|
343
367
|
this.fireAnalytics(openedPickerEvent());
|
|
344
368
|
}
|
|
345
369
|
|
|
346
370
|
componentDidMount() {
|
|
371
|
+
ufoExperiences['emoji-picker-opened'].success();
|
|
347
372
|
const {
|
|
348
373
|
emojiProvider,
|
|
349
374
|
hideToneSelector
|
|
@@ -378,6 +403,9 @@ export default class EmojiPickerComponent extends PureComponent {
|
|
|
378
403
|
this.fireAnalytics(closedPickerEvent({
|
|
379
404
|
duration: this.calculateElapsedTime()
|
|
380
405
|
}));
|
|
406
|
+
ufoExperiences['emoji-picker-opened'].abort();
|
|
407
|
+
ufoExperiences['emoji-searched'].abort();
|
|
408
|
+
ufoExperiences['emoji-selection-recorded'].abort();
|
|
381
409
|
}
|
|
382
410
|
|
|
383
411
|
UNSAFE_componentWillReceiveProps(nextProps) {
|
|
@@ -495,25 +523,17 @@ export default class EmojiPickerComponent extends PureComponent {
|
|
|
495
523
|
uploadSupported
|
|
496
524
|
} = this.state;
|
|
497
525
|
const recordUsageOnSelection = createRecordSelectionDefault(emojiProvider, this.onSelectWrapper, analytic => this.fireAnalytics(analytic('picker')));
|
|
498
|
-
const formattedErrorMessage = uploadErrorMessage ?
|
|
499
|
-
const
|
|
500
|
-
|
|
501
|
-
emoji: {
|
|
502
|
-
emojiProvider: this.props.emojiProvider
|
|
503
|
-
}
|
|
504
|
-
};
|
|
505
|
-
const picker = /*#__PURE__*/React.createElement(EmojiContextProvider, {
|
|
506
|
-
emojiContextValue: emojiContextValue
|
|
507
|
-
}, /*#__PURE__*/React.createElement("div", {
|
|
508
|
-
className: classNames(classes),
|
|
526
|
+
const formattedErrorMessage = uploadErrorMessage ? jsx(FormattedMessage, uploadErrorMessage) : null;
|
|
527
|
+
const picker = jsx("div", {
|
|
528
|
+
css: emojiPicker,
|
|
509
529
|
ref: this.handlePickerRef,
|
|
510
530
|
"data-emoji-picker-container": true
|
|
511
|
-
},
|
|
531
|
+
}, jsx(CategorySelector, {
|
|
512
532
|
activeCategoryId: activeCategory,
|
|
513
533
|
dynamicCategories: dynamicCategories,
|
|
514
534
|
disableCategories: disableCategories,
|
|
515
535
|
onCategorySelected: this.onCategorySelected
|
|
516
|
-
}),
|
|
536
|
+
}), jsx(EmojiPickerList, {
|
|
517
537
|
emojis: filteredEmojis,
|
|
518
538
|
currentUser: emojiProvider.getCurrentUser(),
|
|
519
539
|
onEmojiSelected: recordUsageOnSelection,
|
|
@@ -539,15 +559,19 @@ export default class EmojiPickerComponent extends PureComponent {
|
|
|
539
559
|
onCloseDelete: this.onCloseDelete,
|
|
540
560
|
onFileChooserClicked: this.onFileChooserClicked,
|
|
541
561
|
onOpenUpload: this.onOpenUpload
|
|
542
|
-
}),
|
|
562
|
+
}), jsx(EmojiPickerFooter, {
|
|
543
563
|
selectedEmoji: selectedEmoji,
|
|
544
564
|
isUploading: uploading
|
|
545
|
-
}))
|
|
565
|
+
}));
|
|
546
566
|
return picker;
|
|
547
567
|
}
|
|
548
568
|
|
|
549
569
|
}
|
|
550
570
|
|
|
571
|
+
_defineProperty(EmojiPickerComponent, "childContextTypes", {
|
|
572
|
+
emoji: PropTypes.object
|
|
573
|
+
});
|
|
574
|
+
|
|
551
575
|
_defineProperty(EmojiPickerComponent, "defaultProps", {
|
|
552
576
|
onSelection: () => {}
|
|
553
577
|
});
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
|
|
1
|
+
/** @jsx jsx */
|
|
2
|
+
import { jsx } from '@emotion/core';
|
|
2
3
|
import { PureComponent } from 'react';
|
|
3
|
-
import * as styles from './styles';
|
|
4
4
|
import CachingEmoji from '../common/CachingEmoji';
|
|
5
|
+
import { emojiItem, emojiPickerRow } from './styles';
|
|
5
6
|
export default class EmojiPickerEmojiRow extends PureComponent {
|
|
6
7
|
render() {
|
|
7
8
|
const {
|
|
@@ -12,18 +13,18 @@ export default class EmojiPickerEmojiRow extends PureComponent {
|
|
|
12
13
|
showDelete,
|
|
13
14
|
onDelete
|
|
14
15
|
} = this.props;
|
|
15
|
-
return
|
|
16
|
-
|
|
16
|
+
return jsx("div", {
|
|
17
|
+
css: emojiPickerRow
|
|
17
18
|
}, emojis.map(emoji => {
|
|
18
19
|
const {
|
|
19
20
|
shortName,
|
|
20
21
|
id
|
|
21
22
|
} = emoji;
|
|
22
23
|
const key = id ? `${id}-${title}` : `${shortName}-${title}`;
|
|
23
|
-
return
|
|
24
|
-
|
|
24
|
+
return jsx("span", {
|
|
25
|
+
css: emojiItem,
|
|
25
26
|
key: key
|
|
26
|
-
},
|
|
27
|
+
}, jsx(CachingEmoji, {
|
|
27
28
|
emoji: emoji,
|
|
28
29
|
selectOnHover: true,
|
|
29
30
|
onSelected: onSelected,
|
|
@@ -1,23 +1,23 @@
|
|
|
1
|
-
|
|
2
|
-
import
|
|
1
|
+
/** @jsx jsx */
|
|
2
|
+
import { jsx } from '@emotion/core';
|
|
3
3
|
import { PureComponent } from 'react';
|
|
4
|
-
import
|
|
5
|
-
import
|
|
4
|
+
import { EmojiPreviewComponent } from '../common/EmojiPreviewComponent';
|
|
5
|
+
import { emojiPickerFooter, emojiPickerFooterWithTopShadow } from './styles';
|
|
6
6
|
export default class EmojiPickerFooter extends PureComponent {
|
|
7
7
|
render() {
|
|
8
8
|
const {
|
|
9
9
|
selectedEmoji,
|
|
10
10
|
isUploading
|
|
11
11
|
} = this.props;
|
|
12
|
-
const previewFooterClassnames =
|
|
12
|
+
const previewFooterClassnames = [emojiPickerFooter, emojiPickerFooterWithTopShadow];
|
|
13
13
|
|
|
14
14
|
if (!selectedEmoji || isUploading) {
|
|
15
15
|
return null;
|
|
16
16
|
}
|
|
17
17
|
|
|
18
|
-
return
|
|
19
|
-
|
|
20
|
-
},
|
|
18
|
+
return jsx("div", {
|
|
19
|
+
css: previewFooterClassnames
|
|
20
|
+
}, selectedEmoji && jsx(EmojiPreviewComponent, {
|
|
21
21
|
emoji: selectedEmoji
|
|
22
22
|
}));
|
|
23
23
|
}
|
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
2
|
-
|
|
2
|
+
|
|
3
|
+
/** @jsx jsx */
|
|
4
|
+
import { jsx } from '@emotion/core';
|
|
5
|
+
import PropTypes from 'prop-types';
|
|
3
6
|
import React from 'react';
|
|
4
7
|
import { PureComponent } from 'react';
|
|
5
8
|
import { List as VirtualList } from 'react-virtualized/dist/commonjs/List';
|
|
@@ -8,8 +11,8 @@ import { CategoryDescriptionMap } from './categories';
|
|
|
8
11
|
import CategoryTracker from './CategoryTracker';
|
|
9
12
|
import { sizes } from './EmojiPickerSizes';
|
|
10
13
|
import { CategoryHeadingItem, EmojisRowItem, LoadingItem, virtualItemRenderer } from './EmojiPickerVirtualItems';
|
|
11
|
-
import * as styles from './styles';
|
|
12
14
|
import EmojiActions from '../common/EmojiActions';
|
|
15
|
+
import { emojiPickerList, virtualList } from './styles';
|
|
13
16
|
const categoryClassname = 'emoji-category';
|
|
14
17
|
|
|
15
18
|
const byOrder = (orderableA, orderableB) => (orderableA.order || 0) - (orderableB.order || 0);
|
|
@@ -195,6 +198,16 @@ export default class EmojiPickerVirtualList extends PureComponent {
|
|
|
195
198
|
this.buildVirtualItems(_props, this.state);
|
|
196
199
|
}
|
|
197
200
|
|
|
201
|
+
getChildContext() {
|
|
202
|
+
const {
|
|
203
|
+
emoji
|
|
204
|
+
} = this.context;
|
|
205
|
+
return {
|
|
206
|
+
emoji: { ...emoji
|
|
207
|
+
}
|
|
208
|
+
};
|
|
209
|
+
}
|
|
210
|
+
|
|
198
211
|
UNSAFE_componentWillUpdate(nextProps, nextState) {
|
|
199
212
|
if (this.props.emojis !== nextProps.emojis || this.props.selectedTone !== nextProps.selectedTone || this.props.loading !== nextProps.loading || this.props.query !== nextProps.query) {
|
|
200
213
|
if (!nextProps.query) {
|
|
@@ -239,11 +252,10 @@ export default class EmojiPickerVirtualList extends PureComponent {
|
|
|
239
252
|
onFileChooserClicked,
|
|
240
253
|
onOpenUpload
|
|
241
254
|
} = this.props;
|
|
242
|
-
|
|
243
|
-
return /*#__PURE__*/React.createElement("div", {
|
|
255
|
+
return jsx("div", {
|
|
244
256
|
ref: "root",
|
|
245
|
-
|
|
246
|
-
},
|
|
257
|
+
css: emojiPickerList
|
|
258
|
+
}, jsx(EmojiActions, {
|
|
247
259
|
selectedTone: selectedTone,
|
|
248
260
|
onToneSelected: onToneSelected,
|
|
249
261
|
onToneSelectorCancelled: onToneSelectorCancelled,
|
|
@@ -261,7 +273,7 @@ export default class EmojiPickerVirtualList extends PureComponent {
|
|
|
261
273
|
onOpenUpload: onOpenUpload,
|
|
262
274
|
query: query,
|
|
263
275
|
onChange: this.onSearch
|
|
264
|
-
}),
|
|
276
|
+
}), jsx(VirtualList, {
|
|
265
277
|
ref: "list",
|
|
266
278
|
height: sizes.listHeight,
|
|
267
279
|
overscanRowCount: 5,
|
|
@@ -270,13 +282,21 @@ export default class EmojiPickerVirtualList extends PureComponent {
|
|
|
270
282
|
rowRenderer: this.renderRow,
|
|
271
283
|
scrollToAlignment: "start",
|
|
272
284
|
width: sizes.listWidth,
|
|
273
|
-
|
|
285
|
+
css: virtualList,
|
|
274
286
|
onRowsRendered: this.checkCategoryIdChange
|
|
275
287
|
}));
|
|
276
288
|
}
|
|
277
289
|
|
|
278
290
|
}
|
|
279
291
|
|
|
292
|
+
_defineProperty(EmojiPickerVirtualList, "contextTypes", {
|
|
293
|
+
emoji: PropTypes.object
|
|
294
|
+
});
|
|
295
|
+
|
|
296
|
+
_defineProperty(EmojiPickerVirtualList, "childContextTypes", {
|
|
297
|
+
emoji: PropTypes.object
|
|
298
|
+
});
|
|
299
|
+
|
|
280
300
|
_defineProperty(EmojiPickerVirtualList, "defaultProps", {
|
|
281
301
|
onEmojiSelected: () => {},
|
|
282
302
|
onEmojiActive: () => {},
|
|
@@ -1,10 +1,13 @@
|
|
|
1
1
|
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
2
|
+
|
|
3
|
+
/** @jsx jsx */
|
|
4
|
+
import { jsx } from '@emotion/core';
|
|
2
5
|
import React, { PureComponent } from 'react';
|
|
3
6
|
import TextField from '@atlaskit/textfield';
|
|
4
7
|
import SearchIcon from '@atlaskit/icon/glyph/search';
|
|
5
8
|
import { injectIntl } from 'react-intl-next';
|
|
6
9
|
import { messages } from '../i18n';
|
|
7
|
-
import
|
|
10
|
+
import { input, pickerSearch, searchIcon } from './styles';
|
|
8
11
|
|
|
9
12
|
class EmojiPickerListSearch extends PureComponent {
|
|
10
13
|
constructor(...args) {
|
|
@@ -83,12 +86,12 @@ class EmojiPickerListSearch extends PureComponent {
|
|
|
83
86
|
const {
|
|
84
87
|
formatMessage
|
|
85
88
|
} = intl;
|
|
86
|
-
return
|
|
87
|
-
|
|
89
|
+
return jsx("div", {
|
|
90
|
+
css: pickerSearch,
|
|
88
91
|
style: style
|
|
89
|
-
},
|
|
92
|
+
}, jsx(TextField, {
|
|
90
93
|
"aria-label": formatMessage(messages.searchLabel),
|
|
91
|
-
|
|
94
|
+
css: input,
|
|
92
95
|
autoComplete: "off",
|
|
93
96
|
name: "search",
|
|
94
97
|
placeholder: `${formatMessage(messages.searchPlaceholder)}...`,
|
|
@@ -97,9 +100,9 @@ class EmojiPickerListSearch extends PureComponent {
|
|
|
97
100
|
ref: this.handleInputRef,
|
|
98
101
|
isCompact: true,
|
|
99
102
|
onBlur: this.onBlur,
|
|
100
|
-
elemBeforeInput:
|
|
101
|
-
|
|
102
|
-
},
|
|
103
|
+
elemBeforeInput: jsx("span", {
|
|
104
|
+
css: searchIcon
|
|
105
|
+
}, jsx(SearchIcon, {
|
|
103
106
|
label: ""
|
|
104
107
|
}))
|
|
105
108
|
}));
|
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
2
|
+
|
|
3
|
+
/** @jsx jsx */
|
|
4
|
+
import { jsx } from '@emotion/core';
|
|
2
5
|
import Spinner from '@atlaskit/spinner';
|
|
3
|
-
import React from 'react';
|
|
4
6
|
import EmojiPickerCategoryHeading from './EmojiPickerCategoryHeading';
|
|
5
7
|
import EmojiPickerEmojiRow from './EmojiPickerEmojiRow';
|
|
6
8
|
import { sizes } from './EmojiPickerSizes';
|
|
7
|
-
import
|
|
9
|
+
import { emojiPickerSpinner } from './styles';
|
|
8
10
|
export class AbstractItem {
|
|
9
11
|
constructor(props, height) {
|
|
10
12
|
this.props = props;
|
|
@@ -16,7 +18,7 @@ export class EmojisRowItem extends AbstractItem {
|
|
|
16
18
|
constructor(props) {
|
|
17
19
|
super(props, sizes.emojiRowHeight);
|
|
18
20
|
|
|
19
|
-
_defineProperty(this, "renderItem", () =>
|
|
21
|
+
_defineProperty(this, "renderItem", () => jsx(EmojiPickerEmojiRow, this.props));
|
|
20
22
|
}
|
|
21
23
|
|
|
22
24
|
}
|
|
@@ -24,9 +26,9 @@ export class LoadingItem extends AbstractItem {
|
|
|
24
26
|
constructor() {
|
|
25
27
|
super({}, sizes.loadingRowHeight);
|
|
26
28
|
|
|
27
|
-
_defineProperty(this, "renderItem", () =>
|
|
28
|
-
|
|
29
|
-
},
|
|
29
|
+
_defineProperty(this, "renderItem", () => jsx("div", {
|
|
30
|
+
css: emojiPickerSpinner
|
|
31
|
+
}, jsx("div", null, jsx(Spinner, {
|
|
30
32
|
size: "medium"
|
|
31
33
|
}))));
|
|
32
34
|
}
|
|
@@ -36,7 +38,7 @@ export class CategoryHeadingItem extends AbstractItem {
|
|
|
36
38
|
constructor(props) {
|
|
37
39
|
super(props, sizes.categoryHeadingHeight);
|
|
38
40
|
|
|
39
|
-
_defineProperty(this, "renderItem", () =>
|
|
41
|
+
_defineProperty(this, "renderItem", () => jsx(EmojiPickerCategoryHeading, this.props));
|
|
40
42
|
}
|
|
41
43
|
|
|
42
44
|
}
|
|
@@ -51,7 +53,7 @@ export const virtualItemRenderer = (rows, context) => {
|
|
|
51
53
|
style
|
|
52
54
|
} = context;
|
|
53
55
|
const row = rows[index];
|
|
54
|
-
return
|
|
56
|
+
return jsx("div", {
|
|
55
57
|
style: style,
|
|
56
58
|
key: key
|
|
57
59
|
}, row.renderItem(context));
|