emoji-picker-react 4.1.0 → 4.2.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 +25 -21
- package/dist/DomUtils/classNames.d.ts +3 -1
- package/dist/components/emoji/Emoji.d.ts +4 -2
- package/dist/components/emoji/ExportedEmoji.d.ts +3 -1
- package/dist/config/cdnUrls.d.ts +1 -1
- package/dist/config/config.d.ts +2 -0
- package/dist/config/useConfig.d.ts +1 -0
- package/dist/dataUtils/emojiSelectors.d.ts +1 -2
- package/dist/emoji-picker-react.cjs.development.js +295 -259
- package/dist/emoji-picker-react.cjs.development.js.map +1 -1
- package/dist/emoji-picker-react.cjs.production.min.js +1 -1
- package/dist/emoji-picker-react.cjs.production.min.js.map +1 -1
- package/dist/emoji-picker-react.esm.js +295 -259
- package/dist/emoji-picker-react.esm.js.map +1 -1
- package/dist/hooks/preloadEmoji.d.ts +2 -1
- package/package.json +1 -1
- package/src/DomUtils/classNames.ts +4 -2
- package/src/components/body/EmojiList.tsx +5 -1
- package/src/components/body/EmojiVariationPicker.tsx +13 -8
- package/src/components/body/Suggested.tsx +5 -2
- package/src/components/emoji/Emoji.tsx +17 -8
- package/src/components/emoji/ExportedEmoji.tsx +5 -2
- package/src/components/footer/Preview.tsx +9 -2
- package/src/components/header/Search.tsx +29 -10
- package/src/components/main/PickerMain.tsx +3 -3
- package/src/config/cdnUrls.ts +1 -1
- package/src/config/config.ts +4 -0
- package/src/config/useConfig.ts +8 -0
- package/src/dataUtils/emojiSelectors.ts +3 -10
- package/src/hooks/preloadEmoji.ts +5 -7
- package/src/hooks/useFilter.ts +8 -8
- package/src/hooks/useMouseDownHandlers.ts +19 -13
- package/src/hooks/useOnFocus.ts +4 -3
|
@@ -4,22 +4,25 @@ import { useEffect, useRef } from 'react';
|
|
|
4
4
|
import {
|
|
5
5
|
emojiFromElement,
|
|
6
6
|
isEmojiElement,
|
|
7
|
-
NullableElement
|
|
7
|
+
NullableElement,
|
|
8
8
|
} from '../DomUtils/selectors';
|
|
9
9
|
import {
|
|
10
10
|
useActiveSkinToneState,
|
|
11
11
|
useDisallowClickRef,
|
|
12
12
|
useEmojiVariationPickerState,
|
|
13
|
-
useUpdateSuggested
|
|
13
|
+
useUpdateSuggested,
|
|
14
14
|
} from '../components/context/PickerContext';
|
|
15
|
-
import {
|
|
15
|
+
import { GetEmojiUrl } from '../components/emoji/Emoji';
|
|
16
|
+
import {
|
|
17
|
+
useGetEmojiUrlConfig,
|
|
18
|
+
useOnEmojiClickConfig,
|
|
19
|
+
} from '../config/useConfig';
|
|
16
20
|
import { DataEmoji } from '../dataUtils/DataTypes';
|
|
17
21
|
import {
|
|
18
22
|
activeVariationFromUnified,
|
|
19
23
|
emojiHasVariations,
|
|
20
24
|
emojiNames,
|
|
21
25
|
emojiUnified,
|
|
22
|
-
emojiUrlByUnified
|
|
23
26
|
} from '../dataUtils/emojiSelectors';
|
|
24
27
|
import { parseNativeEmoji } from '../dataUtils/parseNativeEmoji';
|
|
25
28
|
import { setsuggested } from '../dataUtils/suggested';
|
|
@@ -39,6 +42,7 @@ export function useMouseDownHandlers(
|
|
|
39
42
|
const [activeSkinTone] = useActiveSkinToneState();
|
|
40
43
|
const onEmojiClick = useOnEmojiClickConfig();
|
|
41
44
|
const [, updateSuggested] = useUpdateSuggested();
|
|
45
|
+
const getEmojiUrl = useGetEmojiUrlConfig();
|
|
42
46
|
|
|
43
47
|
const onClick = React.useCallback(
|
|
44
48
|
function onClick(event: MouseEvent) {
|
|
@@ -59,14 +63,15 @@ export function useMouseDownHandlers(
|
|
|
59
63
|
|
|
60
64
|
updateSuggested();
|
|
61
65
|
setsuggested(emoji, skinToneToUse);
|
|
62
|
-
onEmojiClick(emojiClickOutput(emoji, skinToneToUse), event);
|
|
66
|
+
onEmojiClick(emojiClickOutput(emoji, skinToneToUse, getEmojiUrl), event);
|
|
63
67
|
},
|
|
64
68
|
[
|
|
65
69
|
activeSkinTone,
|
|
66
70
|
closeAllOpenToggles,
|
|
67
71
|
disallowClickRef,
|
|
68
72
|
onEmojiClick,
|
|
69
|
-
updateSuggested
|
|
73
|
+
updateSuggested,
|
|
74
|
+
getEmojiUrl,
|
|
70
75
|
]
|
|
71
76
|
);
|
|
72
77
|
|
|
@@ -94,7 +99,7 @@ export function useMouseDownHandlers(
|
|
|
94
99
|
disallowClickRef,
|
|
95
100
|
closeAllOpenToggles,
|
|
96
101
|
setVariationPicker,
|
|
97
|
-
setEmojiVariationPicker
|
|
102
|
+
setEmojiVariationPicker,
|
|
98
103
|
]
|
|
99
104
|
);
|
|
100
105
|
const onMouseUp = React.useCallback(
|
|
@@ -123,14 +128,14 @@ export function useMouseDownHandlers(
|
|
|
123
128
|
}
|
|
124
129
|
const bodyRef = BodyRef.current;
|
|
125
130
|
bodyRef.addEventListener('click', onClick, {
|
|
126
|
-
passive: true
|
|
131
|
+
passive: true,
|
|
127
132
|
});
|
|
128
133
|
|
|
129
134
|
bodyRef.addEventListener('mousedown', onMouseDown, {
|
|
130
|
-
passive: true
|
|
135
|
+
passive: true,
|
|
131
136
|
});
|
|
132
137
|
bodyRef.addEventListener('mouseup', onMouseUp, {
|
|
133
|
-
passive: true
|
|
138
|
+
passive: true,
|
|
134
139
|
});
|
|
135
140
|
|
|
136
141
|
return () => {
|
|
@@ -152,17 +157,18 @@ function emojiFromEvent(event: MouseEvent): [DataEmoji, string] | [] {
|
|
|
152
157
|
|
|
153
158
|
function emojiClickOutput(
|
|
154
159
|
emoji: DataEmoji,
|
|
155
|
-
activeSkinTone: SkinTones
|
|
160
|
+
activeSkinTone: SkinTones,
|
|
161
|
+
getEmojiUrl: GetEmojiUrl
|
|
156
162
|
): EmojiClickData {
|
|
157
163
|
const unified = emojiUnified(emoji, activeSkinTone);
|
|
158
164
|
return {
|
|
159
165
|
activeSkinTone,
|
|
160
166
|
emoji: parseNativeEmoji(unified),
|
|
161
167
|
getImageUrl(emojiStyle: EmojiStyle) {
|
|
162
|
-
return
|
|
168
|
+
return getEmojiUrl(unified, emojiStyle);
|
|
163
169
|
},
|
|
164
170
|
names: emojiNames(emoji),
|
|
165
171
|
unified,
|
|
166
|
-
unifiedWithoutSkinTone: emojiUnified(emoji)
|
|
172
|
+
unifiedWithoutSkinTone: emojiUnified(emoji),
|
|
167
173
|
};
|
|
168
174
|
}
|
package/src/hooks/useOnFocus.ts
CHANGED
|
@@ -2,7 +2,7 @@ import { useEffect } from 'react';
|
|
|
2
2
|
|
|
3
3
|
import { buttonFromTarget, emojiFromElement } from '../DomUtils/selectors';
|
|
4
4
|
import { useBodyRef } from '../components/context/ElementRefContext';
|
|
5
|
-
import { useEmojiStyleConfig } from '../config/useConfig';
|
|
5
|
+
import { useEmojiStyleConfig, useGetEmojiUrlConfig } from '../config/useConfig';
|
|
6
6
|
import { emojiHasVariations } from '../dataUtils/emojiSelectors';
|
|
7
7
|
import { EmojiStyle } from '../types/exposedTypes';
|
|
8
8
|
|
|
@@ -11,6 +11,7 @@ import { preloadEmoji } from './preloadEmoji';
|
|
|
11
11
|
export function useOnFocus() {
|
|
12
12
|
const BodyRef = useBodyRef();
|
|
13
13
|
const emojiStyle = useEmojiStyleConfig();
|
|
14
|
+
const getEmojiUrl = useGetEmojiUrlConfig();
|
|
14
15
|
|
|
15
16
|
useEffect(() => {
|
|
16
17
|
if (emojiStyle === EmojiStyle.NATIVE) {
|
|
@@ -39,8 +40,8 @@ export function useOnFocus() {
|
|
|
39
40
|
}
|
|
40
41
|
|
|
41
42
|
if (emojiHasVariations(emoji)) {
|
|
42
|
-
preloadEmoji(emoji, emojiStyle);
|
|
43
|
+
preloadEmoji(getEmojiUrl, emoji, emojiStyle);
|
|
43
44
|
}
|
|
44
45
|
}
|
|
45
|
-
}, [BodyRef, emojiStyle]);
|
|
46
|
+
}, [BodyRef, emojiStyle, getEmojiUrl]);
|
|
46
47
|
}
|