react-input-emoji 4.0.9 → 4.1.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/README.md +2 -1
- package/dist/index.es.js +60 -43
- package/dist/index.es.js.map +1 -1
- package/dist/index.js +60 -43
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -46,7 +46,7 @@ export default function Example() {
|
|
|
46
46
|
## Props
|
|
47
47
|
|
|
48
48
|
| Prop | Type | Default | Description |
|
|
49
|
-
|
|
49
|
+
|----------------|----------|------------------|--------------------------------------------------------------------------------------------------------------------------|
|
|
50
50
|
| `value` | string | "" | The input value. |
|
|
51
51
|
| `onChange` | function | - | This function is called when the value of the input changes. The first argument is the current value. |
|
|
52
52
|
| `onResize` | function | - | This function is called when the width or the height of the input changes. The first argument is the current size value. |
|
|
@@ -57,6 +57,7 @@ export default function Example() {
|
|
|
57
57
|
| `placeholder` | string | "Type a message" | Set the placeholder of the input. |
|
|
58
58
|
| `height` | number | 40 | The total height of the area in which the element is rendered. |
|
|
59
59
|
| `maxLength` | number | - | The maximum number of characters allowed in the element. |
|
|
60
|
+
| `theme` | string | - | Set theme for emoji popup. Available values "light", "dark", "auto" |
|
|
60
61
|
| `borderRadius` | number | 21 | The border radius of the input container. |
|
|
61
62
|
| `borderColor` | string | "#EAEAEA" | The border color of the input container. |
|
|
62
63
|
| `fontSize` | number | 15 | The font size of the placeholder and input container. |
|
package/dist/index.es.js
CHANGED
|
@@ -52346,6 +52346,7 @@ styleInject(css_248z);
|
|
|
52346
52346
|
// vendors
|
|
52347
52347
|
/**
|
|
52348
52348
|
* @typedef {object} Props
|
|
52349
|
+
* @property {'light' | 'dark' | 'auto'} theme
|
|
52349
52350
|
* @property {function(import("../types/types").EmojiMartItem): void} onSelectEmoji
|
|
52350
52351
|
* @property {boolean} disableRecent
|
|
52351
52352
|
* @property {object[]} customEmojis
|
|
@@ -52357,12 +52358,14 @@ styleInject(css_248z);
|
|
|
52357
52358
|
* @return {React.FC}
|
|
52358
52359
|
*/
|
|
52359
52360
|
|
|
52360
|
-
function EmojiPicker({
|
|
52361
|
-
|
|
52362
|
-
|
|
52363
|
-
|
|
52364
|
-
|
|
52365
|
-
|
|
52361
|
+
function EmojiPicker(props) {
|
|
52362
|
+
const {
|
|
52363
|
+
theme,
|
|
52364
|
+
onSelectEmoji,
|
|
52365
|
+
disableRecent,
|
|
52366
|
+
customEmojis
|
|
52367
|
+
} = props;
|
|
52368
|
+
const excludePicker = useMemo(() => {
|
|
52366
52369
|
/** @type import("emoji-mart").CategoryName[] */
|
|
52367
52370
|
const exclude = [];
|
|
52368
52371
|
|
|
@@ -52373,16 +52376,18 @@ function EmojiPicker({
|
|
|
52373
52376
|
return exclude;
|
|
52374
52377
|
}, [disableRecent]);
|
|
52375
52378
|
return /*#__PURE__*/React.createElement(Picker, {
|
|
52379
|
+
theme: theme,
|
|
52380
|
+
set: "apple",
|
|
52376
52381
|
showPreview: false,
|
|
52377
52382
|
showSkinTones: false,
|
|
52378
|
-
set: "apple",
|
|
52379
52383
|
onSelect: onSelectEmoji,
|
|
52380
|
-
exclude:
|
|
52384
|
+
exclude: excludePicker,
|
|
52381
52385
|
custom: customEmojis
|
|
52382
52386
|
});
|
|
52383
52387
|
}
|
|
52384
52388
|
|
|
52385
52389
|
EmojiPicker.propTypes = {
|
|
52390
|
+
theme: PropTypes.oneOf(['light', 'dark', 'auto']),
|
|
52386
52391
|
onSelectEmoji: PropTypes.func,
|
|
52387
52392
|
disableRecent: PropTypes.bool,
|
|
52388
52393
|
customEmojis: PropTypes.array
|
|
@@ -52400,7 +52405,8 @@ var EmojiPicker$1 = /*#__PURE__*/memo(EmojiPicker);
|
|
|
52400
52405
|
|
|
52401
52406
|
/**
|
|
52402
52407
|
* @typedef {Object} Props
|
|
52403
|
-
* @property {
|
|
52408
|
+
* @property {'light' | 'dark' | 'auto'} theme
|
|
52409
|
+
* @property {boolean} keepOpened
|
|
52404
52410
|
* @property {boolean} disableRecent
|
|
52405
52411
|
* @property {object[]=} customEmojis
|
|
52406
52412
|
* @property {(fn: SanitizeFn) => void} addSanitizeFn
|
|
@@ -52411,14 +52417,16 @@ var EmojiPicker$1 = /*#__PURE__*/memo(EmojiPicker);
|
|
|
52411
52417
|
|
|
52412
52418
|
/** @type {React.FC<Props>} */
|
|
52413
52419
|
|
|
52414
|
-
const EmojiPickerWrapper =
|
|
52415
|
-
|
|
52416
|
-
|
|
52417
|
-
|
|
52418
|
-
|
|
52419
|
-
|
|
52420
|
-
|
|
52421
|
-
|
|
52420
|
+
const EmojiPickerWrapper = props => {
|
|
52421
|
+
const {
|
|
52422
|
+
theme,
|
|
52423
|
+
keepOpened,
|
|
52424
|
+
disableRecent,
|
|
52425
|
+
customEmojis,
|
|
52426
|
+
addSanitizeFn,
|
|
52427
|
+
addPolluteFn,
|
|
52428
|
+
appendContent
|
|
52429
|
+
} = props;
|
|
52422
52430
|
const [showPicker, setShowPicker] = useState(false);
|
|
52423
52431
|
useEffect(() => {
|
|
52424
52432
|
addSanitizeFn(replaceAllTextEmojiToString);
|
|
@@ -52468,7 +52476,7 @@ const EmojiPickerWrapper = ({
|
|
|
52468
52476
|
function handleSelectEmoji(emoji) {
|
|
52469
52477
|
appendContent(getImageEmoji(emoji));
|
|
52470
52478
|
|
|
52471
|
-
if (!
|
|
52479
|
+
if (!keepOpened) {
|
|
52472
52480
|
setShowPicker(currentShowPicker => !currentShowPicker);
|
|
52473
52481
|
}
|
|
52474
52482
|
}
|
|
@@ -52481,6 +52489,7 @@ const EmojiPickerWrapper = ({
|
|
|
52481
52489
|
}, /*#__PURE__*/React.createElement("div", {
|
|
52482
52490
|
className: "react-emoji-picker"
|
|
52483
52491
|
}, /*#__PURE__*/React.createElement(EmojiPicker$1, {
|
|
52492
|
+
theme: theme,
|
|
52484
52493
|
onSelectEmoji: handleSelectEmoji,
|
|
52485
52494
|
disableRecent: disableRecent,
|
|
52486
52495
|
customEmojis: customEmojis
|
|
@@ -53056,6 +53065,7 @@ function usePollute() {
|
|
|
53056
53065
|
* @typedef {object} Props
|
|
53057
53066
|
* @property {string} value
|
|
53058
53067
|
* @property {(value: string) => void} onChange
|
|
53068
|
+
* @property {"light" | "dark" | "auto"} theme
|
|
53059
53069
|
* @property {boolean} cleanOnEnter
|
|
53060
53070
|
* @property {(text: string) => void} onEnter
|
|
53061
53071
|
* @property {string} placeholder
|
|
@@ -53063,7 +53073,7 @@ function usePollute() {
|
|
|
53063
53073
|
* @property {() => void} onClick
|
|
53064
53074
|
* @property {() => void} onFocus
|
|
53065
53075
|
* @property {number} maxLength
|
|
53066
|
-
* @property {boolean}
|
|
53076
|
+
* @property {boolean} keepOpened
|
|
53067
53077
|
* @property {(event: KeyboardEvent) => void} onKeyDown
|
|
53068
53078
|
* @property {string} inputClass
|
|
53069
53079
|
* @property {boolean} disableRecent
|
|
@@ -53084,30 +53094,33 @@ function usePollute() {
|
|
|
53084
53094
|
* @return {JSX.Element}
|
|
53085
53095
|
*/
|
|
53086
53096
|
|
|
53087
|
-
function InputEmoji({
|
|
53088
|
-
|
|
53089
|
-
|
|
53090
|
-
|
|
53091
|
-
|
|
53092
|
-
|
|
53093
|
-
|
|
53094
|
-
|
|
53095
|
-
|
|
53096
|
-
|
|
53097
|
-
|
|
53098
|
-
|
|
53099
|
-
|
|
53100
|
-
|
|
53101
|
-
|
|
53102
|
-
|
|
53103
|
-
|
|
53104
|
-
|
|
53105
|
-
|
|
53106
|
-
|
|
53107
|
-
|
|
53108
|
-
|
|
53109
|
-
|
|
53097
|
+
function InputEmoji(props, ref) {
|
|
53098
|
+
const {
|
|
53099
|
+
onChange,
|
|
53100
|
+
onEnter,
|
|
53101
|
+
onResize,
|
|
53102
|
+
onClick,
|
|
53103
|
+
onFocus,
|
|
53104
|
+
onKeyDown,
|
|
53105
|
+
theme,
|
|
53106
|
+
cleanOnEnter,
|
|
53107
|
+
placeholder,
|
|
53108
|
+
maxLength,
|
|
53109
|
+
keepOpened,
|
|
53110
|
+
inputClass,
|
|
53111
|
+
disableRecent,
|
|
53112
|
+
tabIndex,
|
|
53113
|
+
value,
|
|
53114
|
+
customEmojis,
|
|
53115
|
+
searchMention,
|
|
53116
|
+
// style
|
|
53117
|
+
borderRadius,
|
|
53118
|
+
borderColor,
|
|
53119
|
+
fontSize,
|
|
53120
|
+
fontFamily
|
|
53121
|
+
} = props;
|
|
53110
53122
|
/** @type {React.MutableRefObject<import('./text-input').Ref>} */
|
|
53123
|
+
|
|
53111
53124
|
const textInputRef = useRef(null);
|
|
53112
53125
|
const {
|
|
53113
53126
|
addEventListener,
|
|
@@ -53281,7 +53294,8 @@ function InputEmoji({
|
|
|
53281
53294
|
className: inputClass,
|
|
53282
53295
|
onChange: handleTextInputChange
|
|
53283
53296
|
}), /*#__PURE__*/React.createElement(EmojiPickerWrapper, {
|
|
53284
|
-
|
|
53297
|
+
theme: theme,
|
|
53298
|
+
keepOpened: keepOpened,
|
|
53285
53299
|
disableRecent: disableRecent,
|
|
53286
53300
|
customEmojis: customEmojis,
|
|
53287
53301
|
addSanitizeFn: addSanitizeFn,
|
|
@@ -53292,6 +53306,9 @@ function InputEmoji({
|
|
|
53292
53306
|
|
|
53293
53307
|
const InputEmojiWithRef = /*#__PURE__*/forwardRef(InputEmoji);
|
|
53294
53308
|
InputEmojiWithRef.defaultProps = {
|
|
53309
|
+
theme:
|
|
53310
|
+
/** @type {const} */
|
|
53311
|
+
"auto",
|
|
53295
53312
|
height: 30,
|
|
53296
53313
|
placeholder: "Type a message",
|
|
53297
53314
|
borderRadius: 21,
|