@atlaskit/emoji 64.2.1 → 64.4.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 +27 -0
- package/dist/cjs/api/media/SiteEmojiResource.js +10 -2
- package/dist/cjs/components/common/CachingEmoji.js +6 -8
- package/dist/cjs/components/common/DeleteButton.js +9 -13
- package/dist/cjs/components/common/Emoji.js +18 -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/ResourcedEmojiComponent.js +17 -12
- package/dist/cjs/components/common/RetryableButton.js +12 -18
- package/dist/cjs/components/common/Scrollable.js +5 -10
- 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 +21 -3
- package/dist/cjs/types.js +23 -2
- package/dist/cjs/util/analytics/analytics.js +11 -41
- package/dist/cjs/util/analytics/index.js +16 -14
- package/dist/cjs/util/analytics/ufoExperiences.js +48 -0
- package/dist/cjs/version.json +1 -1
- package/dist/es2019/api/media/SiteEmojiResource.js +10 -2
- package/dist/es2019/components/common/CachingEmoji.js +5 -7
- package/dist/es2019/components/common/DeleteButton.js +8 -6
- package/dist/es2019/components/common/Emoji.js +19 -34
- 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/ResourcedEmojiComponent.js +16 -11
- package/dist/es2019/components/common/RetryableButton.js +10 -11
- package/dist/es2019/components/common/Scrollable.js +6 -10
- 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 +5 -4
- package/dist/es2019/types.js +20 -1
- package/dist/es2019/util/analytics/analytics.js +16 -37
- package/dist/es2019/util/analytics/index.js +2 -1
- package/dist/es2019/util/analytics/ufoExperiences.js +35 -0
- package/dist/es2019/version.json +1 -1
- package/dist/esm/api/media/SiteEmojiResource.js +10 -2
- package/dist/esm/components/common/CachingEmoji.js +5 -7
- package/dist/esm/components/common/DeleteButton.js +8 -6
- package/dist/esm/components/common/Emoji.js +18 -27
- 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/ResourcedEmojiComponent.js +16 -10
- package/dist/esm/components/common/RetryableButton.js +11 -12
- package/dist/esm/components/common/Scrollable.js +6 -10
- 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 +5 -4
- package/dist/esm/types.js +20 -1
- package/dist/esm/util/analytics/analytics.js +8 -33
- package/dist/esm/util/analytics/index.js +2 -1
- package/dist/esm/util/analytics/ufoExperiences.js +35 -0
- package/dist/esm/version.json +1 -1
- 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/ResourcedEmojiComponent.d.ts +6 -0
- package/dist/types/components/common/RetryableButton.d.ts +0 -2
- 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 +4 -4
- package/dist/types/types.d.ts +13 -0
- package/dist/types/util/analytics/analytics.d.ts +3 -7
- package/dist/types/util/analytics/index.d.ts +3 -2
- package/dist/types/util/analytics/ufoExperiences.d.ts +11 -0
- package/package.json +9 -10
- 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
|
@@ -11,15 +11,16 @@ function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflec
|
|
|
11
11
|
|
|
12
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; } }
|
|
13
13
|
|
|
14
|
+
/** @jsx jsx */
|
|
15
|
+
import { jsx } from '@emotion/core';
|
|
14
16
|
import AkButton from '@atlaskit/button/custom-theme-button';
|
|
15
|
-
import React from 'react';
|
|
16
17
|
import { Component } from 'react';
|
|
17
18
|
import { FormattedMessage, injectIntl } from 'react-intl-next';
|
|
18
19
|
import { messages } from '../i18n';
|
|
19
20
|
import CachingEmoji from './CachingEmoji';
|
|
20
21
|
import EmojiErrorMessage from './EmojiErrorMessage';
|
|
21
22
|
import RetryableButton from './RetryableButton';
|
|
22
|
-
import
|
|
23
|
+
import { cancelButton, deleteFooter, deletePreview, deleteText, emojiDeleteErrorMessage, previewButtonGroup } from './styles';
|
|
23
24
|
|
|
24
25
|
var EmojiDeletePreview = /*#__PURE__*/function (_Component) {
|
|
25
26
|
_inherits(EmojiDeletePreview, _Component);
|
|
@@ -88,37 +89,35 @@ var EmojiDeletePreview = /*#__PURE__*/function (_Component) {
|
|
|
88
89
|
loading = _this$state.loading,
|
|
89
90
|
error = _this$state.error;
|
|
90
91
|
var formatMessage = intl.formatMessage;
|
|
91
|
-
return
|
|
92
|
-
|
|
93
|
-
},
|
|
94
|
-
|
|
95
|
-
},
|
|
92
|
+
return jsx("div", {
|
|
93
|
+
css: deletePreview
|
|
94
|
+
}, jsx("div", {
|
|
95
|
+
css: deleteText
|
|
96
|
+
}, jsx("h5", null, jsx(FormattedMessage, messages.deleteEmojiTitle)), jsx(FormattedMessage, _extends({}, messages.deleteEmojiDescription, {
|
|
96
97
|
values: {
|
|
97
98
|
emojiShortName: emoji.shortName
|
|
98
99
|
}
|
|
99
|
-
}))),
|
|
100
|
-
|
|
101
|
-
},
|
|
100
|
+
}))), jsx("div", {
|
|
101
|
+
css: deleteFooter
|
|
102
|
+
}, jsx(CachingEmoji, {
|
|
102
103
|
emoji: emoji
|
|
103
|
-
}),
|
|
104
|
-
|
|
105
|
-
}, error ? !loading ?
|
|
104
|
+
}), jsx("div", {
|
|
105
|
+
css: previewButtonGroup
|
|
106
|
+
}, error ? !loading ? jsx(EmojiErrorMessage, {
|
|
106
107
|
message: formatMessage(messages.deleteEmojiFailed),
|
|
107
|
-
|
|
108
|
+
messageStyles: emojiDeleteErrorMessage,
|
|
108
109
|
tooltip: true
|
|
109
|
-
}) : null : null,
|
|
110
|
-
className: styles.uploadEmojiButton,
|
|
111
|
-
retryClassName: styles.uploadRetryButton,
|
|
110
|
+
}) : null : null, jsx(RetryableButton, {
|
|
112
111
|
label: formatMessage(messages.deleteEmojiLabel),
|
|
113
112
|
onSubmit: this.onSubmit,
|
|
114
113
|
appearance: "danger",
|
|
115
114
|
loading: loading,
|
|
116
115
|
error: error
|
|
117
|
-
}),
|
|
116
|
+
}), jsx(AkButton, {
|
|
118
117
|
appearance: "subtle",
|
|
119
118
|
onClick: this.onCancel,
|
|
120
|
-
|
|
121
|
-
},
|
|
119
|
+
css: cancelButton
|
|
120
|
+
}, jsx(FormattedMessage, messages.cancelLabel)))));
|
|
122
121
|
}
|
|
123
122
|
}]);
|
|
124
123
|
|
|
@@ -8,8 +8,9 @@ function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflec
|
|
|
8
8
|
|
|
9
9
|
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
|
|
10
10
|
|
|
11
|
+
/** @jsx jsx */
|
|
12
|
+
import { jsx } from '@emotion/core';
|
|
11
13
|
import ErrorIcon from '@atlaskit/icon/glyph/error';
|
|
12
|
-
import React from 'react';
|
|
13
14
|
import { PureComponent } from 'react';
|
|
14
15
|
import Tooltip from '@atlaskit/tooltip';
|
|
15
16
|
|
|
@@ -27,12 +28,12 @@ var EmojiErrorMessage = /*#__PURE__*/function (_PureComponent) {
|
|
|
27
28
|
_createClass(EmojiErrorMessage, [{
|
|
28
29
|
key: "renderWithTooltip",
|
|
29
30
|
value: function renderWithTooltip() {
|
|
30
|
-
return
|
|
31
|
-
|
|
32
|
-
},
|
|
31
|
+
return jsx("div", {
|
|
32
|
+
css: this.props.messageStyles
|
|
33
|
+
}, jsx(Tooltip, {
|
|
33
34
|
content: this.props.message,
|
|
34
35
|
position: "top"
|
|
35
|
-
},
|
|
36
|
+
}, jsx(ErrorIcon, {
|
|
36
37
|
label: "Error",
|
|
37
38
|
size: "medium"
|
|
38
39
|
})));
|
|
@@ -40,9 +41,9 @@ var EmojiErrorMessage = /*#__PURE__*/function (_PureComponent) {
|
|
|
40
41
|
}, {
|
|
41
42
|
key: "renderInline",
|
|
42
43
|
value: function renderInline() {
|
|
43
|
-
return
|
|
44
|
-
|
|
45
|
-
},
|
|
44
|
+
return jsx("div", {
|
|
45
|
+
css: this.props.messageStyles
|
|
46
|
+
}, jsx(ErrorIcon, {
|
|
46
47
|
label: "Error",
|
|
47
48
|
size: "small"
|
|
48
49
|
}), " ", this.props.message);
|
|
@@ -1,13 +1,10 @@
|
|
|
1
|
-
|
|
2
|
-
import
|
|
3
|
-
import classNames from 'classnames';
|
|
1
|
+
/** @jsx jsx */
|
|
2
|
+
import { jsx } from '@emotion/core';
|
|
4
3
|
import { placeholder, placeholderContainer } from './styles';
|
|
5
4
|
import { defaultEmojiHeight } from '../../util/constants';
|
|
6
5
|
import { isImageRepresentation, isMediaRepresentation } from '../../util/type-helpers';
|
|
7
6
|
|
|
8
7
|
var EmojiPlaceholder = function EmojiPlaceholder(props) {
|
|
9
|
-
var _classes;
|
|
10
|
-
|
|
11
8
|
var shortName = props.shortName,
|
|
12
9
|
_props$size = props.size,
|
|
13
10
|
size = _props$size === void 0 ? defaultEmojiHeight : _props$size,
|
|
@@ -33,10 +30,10 @@ var EmojiPlaceholder = function EmojiPlaceholder(props) {
|
|
|
33
30
|
width: "".concat(width, "px"),
|
|
34
31
|
height: "".concat(height, "px")
|
|
35
32
|
};
|
|
36
|
-
|
|
37
|
-
return /*#__PURE__*/React.createElement("span", {
|
|
33
|
+
return jsx("span", {
|
|
38
34
|
"aria-label": shortName,
|
|
39
|
-
className:
|
|
35
|
+
className: placeholder,
|
|
36
|
+
css: placeholderContainer,
|
|
40
37
|
style: style,
|
|
41
38
|
title: showTooltip ? shortName : ''
|
|
42
39
|
});
|
|
@@ -10,18 +10,18 @@ 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
|
+
/** @jsx jsx */
|
|
14
|
+
import { jsx } from '@emotion/core';
|
|
13
15
|
import AkButton from '@atlaskit/button/standard-button';
|
|
14
16
|
import AddIcon from '@atlaskit/icon/glyph/add';
|
|
15
|
-
import classNames from 'classnames';
|
|
16
|
-
import React from 'react';
|
|
17
17
|
import { PureComponent } from 'react';
|
|
18
18
|
import { FormattedMessage, injectIntl } from 'react-intl-next';
|
|
19
|
-
import CachingEmoji from '../../components/common/CachingEmoji';
|
|
20
19
|
import EmojiButton from '../../components/common/EmojiButton';
|
|
21
20
|
import { messages } from '../i18n';
|
|
22
|
-
import * as styles from './styles';
|
|
23
21
|
import ToneSelector from './ToneSelector';
|
|
24
22
|
import { setSkinToneAriaLabelText } from './setSkinToneAriaLabelText';
|
|
23
|
+
import { addCustomEmoji, addCustomEmojiButton, emojiPickerAddEmoji, emojiPreview, toneSelectorContainer } from './styles';
|
|
24
|
+
import { EmojiPreviewComponent } from './EmojiPreviewComponent';
|
|
25
25
|
export var EmojiPreview = /*#__PURE__*/function (_PureComponent) {
|
|
26
26
|
_inherits(EmojiPreview, _PureComponent);
|
|
27
27
|
|
|
@@ -93,13 +93,13 @@ export var EmojiPreview = /*#__PURE__*/function (_PureComponent) {
|
|
|
93
93
|
previewEmoji = previewEmoji.skinVariations[(selectedTone || 1) - 1];
|
|
94
94
|
}
|
|
95
95
|
|
|
96
|
-
return
|
|
97
|
-
className:
|
|
98
|
-
}, this.state.selectingTone &&
|
|
96
|
+
return jsx("div", {
|
|
97
|
+
className: toneSelectorContainer
|
|
98
|
+
}, this.state.selectingTone && jsx(ToneSelector, {
|
|
99
99
|
emoji: toneEmoji,
|
|
100
100
|
onToneSelected: this.onToneSelected,
|
|
101
101
|
previewEmojiId: previewEmoji.id
|
|
102
|
-
}),
|
|
102
|
+
}), jsx(EmojiButton, {
|
|
103
103
|
ariaExpanded: this.state.selectingTone,
|
|
104
104
|
emoji: previewEmoji,
|
|
105
105
|
selectOnHover: true,
|
|
@@ -112,8 +112,6 @@ export var EmojiPreview = /*#__PURE__*/function (_PureComponent) {
|
|
|
112
112
|
}, {
|
|
113
113
|
key: "renderEmojiPreview",
|
|
114
114
|
value: function renderEmojiPreview() {
|
|
115
|
-
var _classNames2;
|
|
116
|
-
|
|
117
115
|
var selectingTone = this.state.selectingTone;
|
|
118
116
|
var _this$props2 = this.props,
|
|
119
117
|
emoji = _this$props2.emoji,
|
|
@@ -123,21 +121,9 @@ export var EmojiPreview = /*#__PURE__*/function (_PureComponent) {
|
|
|
123
121
|
return null;
|
|
124
122
|
}
|
|
125
123
|
|
|
126
|
-
|
|
127
|
-
var previewTextClasses = classNames((_classNames2 = {}, _defineProperty(_classNames2, styles.previewText, true), _defineProperty(_classNames2, styles.previewSingleLine, !emoji.name), _classNames2));
|
|
128
|
-
return /*#__PURE__*/React.createElement("div", {
|
|
129
|
-
className: previewClasses
|
|
130
|
-
}, /*#__PURE__*/React.createElement("span", {
|
|
131
|
-
className: styles.previewImg
|
|
132
|
-
}, /*#__PURE__*/React.createElement(CachingEmoji, {
|
|
124
|
+
return jsx(EmojiPreviewComponent, {
|
|
133
125
|
emoji: emoji
|
|
134
|
-
})
|
|
135
|
-
className: previewTextClasses
|
|
136
|
-
}, /*#__PURE__*/React.createElement("span", {
|
|
137
|
-
className: styles.name
|
|
138
|
-
}, emoji.name), /*#__PURE__*/React.createElement("span", {
|
|
139
|
-
className: styles.shortName
|
|
140
|
-
}, emoji.shortName)));
|
|
126
|
+
});
|
|
141
127
|
} // note: emoji-picker-add-emoji className is used by pollinator synthetic checks
|
|
142
128
|
|
|
143
129
|
}, {
|
|
@@ -154,26 +140,26 @@ export var EmojiPreview = /*#__PURE__*/function (_PureComponent) {
|
|
|
154
140
|
return null;
|
|
155
141
|
}
|
|
156
142
|
|
|
157
|
-
return
|
|
158
|
-
|
|
159
|
-
},
|
|
160
|
-
return
|
|
143
|
+
return jsx("div", {
|
|
144
|
+
css: addCustomEmoji
|
|
145
|
+
}, jsx(FormattedMessage, messages.addCustomEmojiLabel, function (label) {
|
|
146
|
+
return jsx(AkButton, {
|
|
161
147
|
onClick: onOpenUpload,
|
|
162
|
-
iconBefore:
|
|
148
|
+
iconBefore: jsx(AddIcon, {
|
|
163
149
|
label: formatMessage(messages.addCustomEmojiLabel),
|
|
164
150
|
size: "small"
|
|
165
151
|
}),
|
|
166
152
|
appearance: "subtle",
|
|
167
|
-
|
|
153
|
+
css: addCustomEmojiButton,
|
|
154
|
+
className: emojiPickerAddEmoji
|
|
168
155
|
}, label);
|
|
169
156
|
}));
|
|
170
157
|
}
|
|
171
158
|
}, {
|
|
172
159
|
key: "render",
|
|
173
160
|
value: function render() {
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
className: sectionClasses,
|
|
161
|
+
return jsx("div", {
|
|
162
|
+
css: emojiPreview,
|
|
177
163
|
onMouseLeave: this.onMouseLeave
|
|
178
164
|
}, this.renderAddOwnEmoji(), this.renderEmojiPreview(), this.renderTones());
|
|
179
165
|
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/** @jsx jsx */
|
|
2
|
+
import { jsx } from '@emotion/core';
|
|
3
|
+
import CachingEmoji from './CachingEmoji';
|
|
4
|
+
import { emojiName, emojiShortName, preview, previewImg, previewText } from './styles';
|
|
5
|
+
export var EmojiPreviewComponent = function EmojiPreviewComponent(_ref) {
|
|
6
|
+
var emoji = _ref.emoji;
|
|
7
|
+
return jsx("div", {
|
|
8
|
+
css: preview
|
|
9
|
+
}, jsx("span", {
|
|
10
|
+
css: previewImg
|
|
11
|
+
}, jsx(CachingEmoji, {
|
|
12
|
+
emoji: emoji
|
|
13
|
+
})), jsx("div", {
|
|
14
|
+
css: previewText
|
|
15
|
+
}, emoji.name && jsx("div", {
|
|
16
|
+
css: emojiName
|
|
17
|
+
}, emoji.name), jsx("div", {
|
|
18
|
+
css: emojiShortName
|
|
19
|
+
}, emoji.shortName)));
|
|
20
|
+
};
|
|
@@ -10,7 +10,9 @@ 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';
|
|
15
|
+
import React, { Fragment } from 'react';
|
|
14
16
|
import { PureComponent } from 'react';
|
|
15
17
|
import { FormattedMessage, injectIntl } from 'react-intl-next';
|
|
16
18
|
import TextField from '@atlaskit/textfield';
|
|
@@ -21,7 +23,7 @@ import EmojiErrorMessage from './EmojiErrorMessage';
|
|
|
21
23
|
import EmojiUploadPreview from './EmojiUploadPreview';
|
|
22
24
|
import FileChooser from './FileChooser';
|
|
23
25
|
import { UploadStatus } from './internal-types';
|
|
24
|
-
import
|
|
26
|
+
import { emojiChooseFileErrorMessage, emojiUpload, emojiUploadBottom, uploadChooseFileBrowse, uploadChooseFileEmojiName, uploadChooseFileMessage, uploadChooseFileRow } from './styles';
|
|
25
27
|
var disallowedReplacementsMap = new Map([[':', ''], ['!', ''], ['@', ''], ['#', ''], ['%', ''], ['^', ''], ['&', ''], ['*', ''], ['(', ''], [')', ''], [' ', '_']]);
|
|
26
28
|
|
|
27
29
|
var sanitizeName = function sanitizeName(name) {
|
|
@@ -79,17 +81,17 @@ var ChooseEmojiFile = /*#__PURE__*/function (_PureComponent) {
|
|
|
79
81
|
var disableChooser = !name;
|
|
80
82
|
var fileChooserButtonDescriptionId = 'choose.emoji.file.button.screen.reader.description.id'; // Note: FileChooser.accept does not work in Electron due to a bug: https://product-fabric.atlassian.net/browse/FS-1626
|
|
81
83
|
|
|
82
|
-
return
|
|
83
|
-
|
|
84
|
-
},
|
|
85
|
-
|
|
86
|
-
},
|
|
87
|
-
return
|
|
88
|
-
})),
|
|
89
|
-
|
|
90
|
-
},
|
|
91
|
-
|
|
92
|
-
},
|
|
84
|
+
return jsx("div", {
|
|
85
|
+
css: emojiUpload
|
|
86
|
+
}, jsx("div", {
|
|
87
|
+
css: uploadChooseFileMessage
|
|
88
|
+
}, jsx(FormattedMessage, messages.addCustomEmojiLabel, function (message) {
|
|
89
|
+
return jsx("h5", null, message);
|
|
90
|
+
})), jsx("div", {
|
|
91
|
+
css: uploadChooseFileRow
|
|
92
|
+
}, jsx("span", {
|
|
93
|
+
css: uploadChooseFileEmojiName
|
|
94
|
+
}, jsx(TextField, {
|
|
93
95
|
placeholder: formatMessage(messages.emojiPlaceholder),
|
|
94
96
|
"aria-label": formatMessage(messages.emojiNameAriaLabel),
|
|
95
97
|
maxLength: maxNameLength,
|
|
@@ -98,13 +100,13 @@ var ChooseEmojiFile = /*#__PURE__*/function (_PureComponent) {
|
|
|
98
100
|
value: name,
|
|
99
101
|
isCompact: true,
|
|
100
102
|
autoFocus: true
|
|
101
|
-
})),
|
|
102
|
-
|
|
103
|
-
},
|
|
104
|
-
return
|
|
103
|
+
})), jsx("span", {
|
|
104
|
+
css: uploadChooseFileBrowse
|
|
105
|
+
}, jsx(FormattedMessage, messages.emojiChooseFileScreenReaderDescription, function (screenReaderDescription) {
|
|
106
|
+
return jsx(Fragment, null, jsx("span", {
|
|
105
107
|
hidden: true,
|
|
106
108
|
id: fileChooserButtonDescriptionId
|
|
107
|
-
}, screenReaderDescription),
|
|
109
|
+
}, screenReaderDescription), jsx(FileChooser, {
|
|
108
110
|
label: formatMessage(messages.emojiChooseFileTitle),
|
|
109
111
|
onChange: onChooseFile,
|
|
110
112
|
onClick: onClick,
|
|
@@ -112,10 +114,10 @@ var ChooseEmojiFile = /*#__PURE__*/function (_PureComponent) {
|
|
|
112
114
|
ariaDescribedBy: fileChooserButtonDescriptionId,
|
|
113
115
|
isDisabled: disableChooser
|
|
114
116
|
}));
|
|
115
|
-
}))),
|
|
116
|
-
|
|
117
|
-
}, !errorMessage ?
|
|
118
|
-
|
|
117
|
+
}))), jsx("div", {
|
|
118
|
+
css: emojiUploadBottom
|
|
119
|
+
}, !errorMessage ? jsx("p", null, jsx(FormattedMessage, messages.emojiImageRequirements)) : jsx(EmojiErrorMessage, {
|
|
120
|
+
messageStyles: emojiChooseFileErrorMessage,
|
|
119
121
|
message: errorMessage
|
|
120
122
|
})));
|
|
121
123
|
}
|
|
@@ -319,7 +321,7 @@ export var EmojiUploadPicker = /*#__PURE__*/function (_PureComponent2) {
|
|
|
319
321
|
};
|
|
320
322
|
|
|
321
323
|
if (name && previewImage) {
|
|
322
|
-
return
|
|
324
|
+
return jsx(EmojiUploadPreview, {
|
|
323
325
|
errorMessage: errorMessage,
|
|
324
326
|
name: name,
|
|
325
327
|
onAddEmoji: this.onAddEmoji,
|
|
@@ -329,13 +331,13 @@ export var EmojiUploadPicker = /*#__PURE__*/function (_PureComponent2) {
|
|
|
329
331
|
});
|
|
330
332
|
}
|
|
331
333
|
|
|
332
|
-
return
|
|
334
|
+
return jsx(ChooseEmojiFile, {
|
|
333
335
|
name: name,
|
|
334
336
|
onChooseFile: this.onChooseFile,
|
|
335
337
|
onClick: this.props.onFileChooserClicked,
|
|
336
338
|
onNameChange: this.onNameChange,
|
|
337
339
|
onUploadCancelled: cancelUpload,
|
|
338
|
-
errorMessage: chooseEmojiErrorMessage ?
|
|
340
|
+
errorMessage: chooseEmojiErrorMessage ? jsx(FormattedMessage, chooseEmojiErrorMessage) : undefined,
|
|
339
341
|
intl: intl
|
|
340
342
|
});
|
|
341
343
|
}
|
|
@@ -9,8 +9,9 @@ function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflec
|
|
|
9
9
|
|
|
10
10
|
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; } }
|
|
11
11
|
|
|
12
|
+
/** @jsx jsx */
|
|
13
|
+
import { jsx } from '@emotion/core';
|
|
12
14
|
import AkButton from '@atlaskit/button/custom-theme-button';
|
|
13
|
-
import React from 'react';
|
|
14
15
|
import { PureComponent } from 'react';
|
|
15
16
|
import { FormattedMessage, injectIntl } from 'react-intl-next';
|
|
16
17
|
import { customCategory } from '../../util/constants';
|
|
@@ -19,7 +20,7 @@ import Emoji from './Emoji';
|
|
|
19
20
|
import EmojiErrorMessage from './EmojiErrorMessage';
|
|
20
21
|
import { UploadStatus } from './internal-types';
|
|
21
22
|
import RetryableButton from './RetryableButton';
|
|
22
|
-
import
|
|
23
|
+
import { bigEmojiPreview, cancelButton, emojiPreviewErrorMessage, uploadAddRow, uploadPreview, uploadPreviewFooter, uploadPreviewText } from './styles';
|
|
23
24
|
|
|
24
25
|
var EmojiUploadPreview = /*#__PURE__*/function (_PureComponent) {
|
|
25
26
|
_inherits(EmojiUploadPreview, _PureComponent);
|
|
@@ -58,44 +59,42 @@ var EmojiUploadPreview = /*#__PURE__*/function (_PureComponent) {
|
|
|
58
59
|
},
|
|
59
60
|
searchable: true
|
|
60
61
|
};
|
|
61
|
-
emojiComponent =
|
|
62
|
+
emojiComponent = jsx(Emoji, {
|
|
62
63
|
emoji: emoji
|
|
63
64
|
});
|
|
64
65
|
}
|
|
65
66
|
|
|
66
67
|
var uploading = uploadStatus === UploadStatus.Uploading;
|
|
67
|
-
return
|
|
68
|
-
|
|
69
|
-
},
|
|
70
|
-
|
|
71
|
-
},
|
|
72
|
-
|
|
73
|
-
},
|
|
68
|
+
return jsx("div", {
|
|
69
|
+
css: uploadPreviewFooter
|
|
70
|
+
}, jsx("div", {
|
|
71
|
+
css: uploadPreview
|
|
72
|
+
}, jsx("div", {
|
|
73
|
+
css: uploadPreviewText
|
|
74
|
+
}, jsx("h5", null, jsx(FormattedMessage, messages.emojiPreviewTitle)), jsx(FormattedMessage, _extends({}, messages.emojiPreview, {
|
|
74
75
|
values: {
|
|
75
76
|
emoji: emojiComponent
|
|
76
77
|
}
|
|
77
|
-
}))),
|
|
78
|
-
|
|
79
|
-
}, emojiComponent)),
|
|
80
|
-
|
|
81
|
-
}, !uploading && errorMessage ?
|
|
82
|
-
|
|
78
|
+
}))), jsx("div", {
|
|
79
|
+
css: bigEmojiPreview
|
|
80
|
+
}, emojiComponent)), jsx("div", {
|
|
81
|
+
css: uploadAddRow
|
|
82
|
+
}, !uploading && errorMessage ? jsx(EmojiErrorMessage, {
|
|
83
|
+
messageStyles: emojiPreviewErrorMessage,
|
|
83
84
|
message: errorMessage,
|
|
84
85
|
tooltip: true
|
|
85
|
-
}) : null,
|
|
86
|
-
className: styles.uploadEmojiButton,
|
|
87
|
-
retryClassName: styles.uploadRetryButton,
|
|
86
|
+
}) : null, jsx(RetryableButton, {
|
|
88
87
|
label: formatMessage(messages.addEmojiLabel),
|
|
89
88
|
onSubmit: onAddEmoji,
|
|
90
89
|
appearance: "primary",
|
|
91
90
|
loading: uploading,
|
|
92
91
|
error: !!errorMessage
|
|
93
|
-
}),
|
|
92
|
+
}), jsx(AkButton, {
|
|
94
93
|
onClick: onUploadCancelled,
|
|
95
94
|
appearance: "subtle",
|
|
96
95
|
isDisabled: uploading,
|
|
97
|
-
|
|
98
|
-
},
|
|
96
|
+
css: cancelButton
|
|
97
|
+
}, jsx(FormattedMessage, messages.cancelLabel))));
|
|
99
98
|
}
|
|
100
99
|
}]);
|
|
101
100
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { recordFailed, recordSucceeded, ufoExperiences } from '../../util/analytics';
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
4
|
* A function that will wrap any configured Emoji 'onSelection' function to ensure recordSelection is always
|
|
@@ -12,10 +12,13 @@ export var createRecordSelectionDefault = function createRecordSelectionDefault(
|
|
|
12
12
|
return function (emojiId, emoji, event) {
|
|
13
13
|
try {
|
|
14
14
|
if (provider.recordSelection && emoji) {
|
|
15
|
+
ufoExperiences['emoji-selection-recorded'].start();
|
|
15
16
|
provider.recordSelection(emoji).then(function () {
|
|
16
|
-
|
|
17
|
+
fireAnalytics && fireAnalytics(recordSucceeded);
|
|
18
|
+
ufoExperiences['emoji-selection-recorded'].success();
|
|
17
19
|
}).catch(function () {
|
|
18
|
-
|
|
20
|
+
fireAnalytics && fireAnalytics(recordFailed);
|
|
21
|
+
ufoExperiences['emoji-selection-recorded'].failure();
|
|
19
22
|
});
|
|
20
23
|
}
|
|
21
24
|
} finally {
|
|
@@ -10,13 +10,13 @@ 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';
|
|
13
14
|
import React from 'react';
|
|
14
15
|
import { Component } from 'react';
|
|
15
16
|
import { defaultEmojiHeight } from '../../util/constants';
|
|
16
17
|
import { isPromise } from '../../util/type-helpers';
|
|
17
18
|
import CachingEmoji from './CachingEmoji';
|
|
18
19
|
import EmojiPlaceholder from './EmojiPlaceholder';
|
|
19
|
-
import { EmojiContextProvider } from '../../context/EmojiContextProvider';
|
|
20
20
|
import { sampledUfoRenderedEmoji } from '../../util/analytics';
|
|
21
21
|
|
|
22
22
|
var ResourcedEmojiComponent = /*#__PURE__*/function (_Component) {
|
|
@@ -41,6 +41,15 @@ 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
|
+
}, {
|
|
44
53
|
key: "refreshEmoji",
|
|
45
54
|
value: function refreshEmoji(emojiProvider, emojiId) {
|
|
46
55
|
var _this2 = this;
|
|
@@ -144,22 +153,19 @@ var ResourcedEmojiComponent = /*#__PURE__*/function (_Component) {
|
|
|
144
153
|
shortName = _this$props$emojiId.shortName,
|
|
145
154
|
id = _this$props$emojiId.id,
|
|
146
155
|
fallback = _this$props$emojiId.fallback;
|
|
147
|
-
|
|
148
|
-
emoji: {
|
|
149
|
-
emojiProvider: this.props.emojiProvider
|
|
150
|
-
}
|
|
151
|
-
};
|
|
152
|
-
return /*#__PURE__*/React.createElement(EmojiContextProvider, {
|
|
153
|
-
emojiContextValue: emojiContextValue
|
|
154
|
-
}, /*#__PURE__*/React.createElement("span", {
|
|
156
|
+
return /*#__PURE__*/React.createElement("span", {
|
|
155
157
|
"data-emoji-id": id,
|
|
156
158
|
"data-emoji-short-name": shortName,
|
|
157
159
|
"data-emoji-text": fallback || shortName
|
|
158
|
-
}, element)
|
|
160
|
+
}, element);
|
|
159
161
|
}
|
|
160
162
|
}]);
|
|
161
163
|
|
|
162
164
|
return ResourcedEmojiComponent;
|
|
163
165
|
}(Component);
|
|
164
166
|
|
|
167
|
+
_defineProperty(ResourcedEmojiComponent, "childContextTypes", {
|
|
168
|
+
emoji: PropTypes.object
|
|
169
|
+
});
|
|
170
|
+
|
|
165
171
|
export { ResourcedEmojiComponent as default };
|
|
@@ -8,13 +8,14 @@ function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflec
|
|
|
8
8
|
|
|
9
9
|
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
|
|
10
10
|
|
|
11
|
+
/** @jsx jsx */
|
|
12
|
+
import { jsx } from '@emotion/core';
|
|
11
13
|
import AkButton from '@atlaskit/button/custom-theme-button';
|
|
12
14
|
import Spinner from '@atlaskit/spinner';
|
|
13
|
-
import React from 'react';
|
|
14
15
|
import { Component } from 'react';
|
|
15
16
|
import { FormattedMessage } from 'react-intl-next';
|
|
16
17
|
import { messages } from '../i18n';
|
|
17
|
-
import
|
|
18
|
+
import { buttonSpinner, uploadEmojiButton, uploadRetryButton } from './styles';
|
|
18
19
|
|
|
19
20
|
var RetryableButton = /*#__PURE__*/function (_Component) {
|
|
20
21
|
_inherits(RetryableButton, _Component);
|
|
@@ -30,20 +31,19 @@ var RetryableButton = /*#__PURE__*/function (_Component) {
|
|
|
30
31
|
_createClass(RetryableButton, [{
|
|
31
32
|
key: "renderLoading",
|
|
32
33
|
value: function renderLoading() {
|
|
33
|
-
return
|
|
34
|
-
|
|
35
|
-
},
|
|
34
|
+
return jsx("span", {
|
|
35
|
+
css: buttonSpinner
|
|
36
|
+
}, jsx(Spinner, null));
|
|
36
37
|
}
|
|
37
38
|
}, {
|
|
38
39
|
key: "renderRetry",
|
|
39
40
|
value: function renderRetry() {
|
|
40
41
|
var _this$props = this.props,
|
|
41
42
|
loading = _this$props.loading,
|
|
42
|
-
retryClassName = _this$props.retryClassName,
|
|
43
43
|
onSubmit = _this$props.onSubmit;
|
|
44
|
-
return loading ? this.renderLoading() :
|
|
45
|
-
return
|
|
46
|
-
|
|
44
|
+
return loading ? this.renderLoading() : jsx(FormattedMessage, messages.retryLabel, function (retryLabel) {
|
|
45
|
+
return jsx(AkButton, {
|
|
46
|
+
css: uploadRetryButton,
|
|
47
47
|
appearance: "warning",
|
|
48
48
|
onClick: onSubmit
|
|
49
49
|
}, retryLabel);
|
|
@@ -55,12 +55,11 @@ var RetryableButton = /*#__PURE__*/function (_Component) {
|
|
|
55
55
|
var _this$props2 = this.props,
|
|
56
56
|
loading = _this$props2.loading,
|
|
57
57
|
error = _this$props2.error,
|
|
58
|
-
className = _this$props2.className,
|
|
59
58
|
appearance = _this$props2.appearance,
|
|
60
59
|
onSubmit = _this$props2.onSubmit,
|
|
61
60
|
label = _this$props2.label;
|
|
62
|
-
return error ? this.renderRetry() : loading ? this.renderLoading() :
|
|
63
|
-
|
|
61
|
+
return error ? this.renderRetry() : loading ? this.renderLoading() : jsx(AkButton, {
|
|
62
|
+
css: uploadEmojiButton,
|
|
64
63
|
appearance: appearance,
|
|
65
64
|
onClick: onSubmit
|
|
66
65
|
}, label);
|
|
@@ -11,8 +11,9 @@ function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflec
|
|
|
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
|
// FIXME - FAB-1732 looking at making a shared component for this
|
|
14
|
-
|
|
15
|
-
|
|
14
|
+
|
|
15
|
+
/** @jsx jsx */
|
|
16
|
+
import { jsx } from '@emotion/core';
|
|
16
17
|
import { PureComponent } from 'react';
|
|
17
18
|
import { findDOMNode } from 'react-dom';
|
|
18
19
|
import * as styles from './styles';
|
|
@@ -88,17 +89,12 @@ var Scrollable = /*#__PURE__*/function (_PureComponent) {
|
|
|
88
89
|
className = _this$props.className,
|
|
89
90
|
maxHeight = _this$props.maxHeight,
|
|
90
91
|
onMouseLeave = _this$props.onMouseLeave;
|
|
91
|
-
var scrollableClasses = ['emoji-scrollable', styles.emojiScrollable];
|
|
92
|
-
|
|
93
|
-
if (className) {
|
|
94
|
-
scrollableClasses.push(className);
|
|
95
|
-
}
|
|
96
|
-
|
|
97
92
|
var style = maxHeight ? {
|
|
98
93
|
maxHeight: maxHeight
|
|
99
94
|
} : {};
|
|
100
|
-
return
|
|
101
|
-
className:
|
|
95
|
+
return jsx("div", {
|
|
96
|
+
className: "emoji-scrollable ".concat(className),
|
|
97
|
+
css: styles.emojiScrollable,
|
|
102
98
|
onMouseLeave: onMouseLeave,
|
|
103
99
|
onScroll: this.handleScroll,
|
|
104
100
|
ref: this.handleRef,
|