emoji-picker-react 4.4.1 → 4.4.2
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/dist/emoji-picker-react.cjs.development.js +9 -8
- 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 +9 -8
- package/dist/emoji-picker-react.esm.js.map +1 -1
- package/dist/hooks/useDisallowedEmojis.d.ts +2 -0
- package/package.json +1 -1
- package/src/components/body/EmojiList.tsx +8 -8
- package/src/hooks/useDisallowedEmojis.ts +16 -1
package/package.json
CHANGED
|
@@ -4,20 +4,20 @@ import { ClassNames } from '../../DomUtils/classNames';
|
|
|
4
4
|
import {
|
|
5
5
|
Categories,
|
|
6
6
|
CategoryConfig,
|
|
7
|
-
categoryFromCategoryConfig
|
|
7
|
+
categoryFromCategoryConfig
|
|
8
8
|
} from '../../config/categoryConfig';
|
|
9
9
|
import {
|
|
10
10
|
useCategoriesConfig,
|
|
11
11
|
useEmojiStyleConfig,
|
|
12
12
|
useGetEmojiUrlConfig,
|
|
13
|
-
useLazyLoadEmojisConfig
|
|
13
|
+
useLazyLoadEmojisConfig
|
|
14
14
|
} from '../../config/useConfig';
|
|
15
15
|
import { emojisByCategory, emojiUnified } from '../../dataUtils/emojiSelectors';
|
|
16
|
+
import { useIsEmojiDisallowed } from '../../hooks/useDisallowedEmojis';
|
|
16
17
|
import { useIsEmojiHidden } from '../../hooks/useIsEmojiHidden';
|
|
17
18
|
import {
|
|
18
19
|
useActiveSkinToneState,
|
|
19
|
-
|
|
20
|
-
useIsPastInitialLoad,
|
|
20
|
+
useIsPastInitialLoad
|
|
21
21
|
} from '../context/PickerContext';
|
|
22
22
|
import { ClickableEmoji } from '../emoji/Emoji';
|
|
23
23
|
|
|
@@ -54,7 +54,7 @@ export function EmojiList() {
|
|
|
54
54
|
function RenderCategory({
|
|
55
55
|
index,
|
|
56
56
|
category,
|
|
57
|
-
categoryConfig
|
|
57
|
+
categoryConfig
|
|
58
58
|
}: {
|
|
59
59
|
index: number;
|
|
60
60
|
category: Categories;
|
|
@@ -65,7 +65,7 @@ function RenderCategory({
|
|
|
65
65
|
const emojiStyle = useEmojiStyleConfig();
|
|
66
66
|
const isPastInitialLoad = useIsPastInitialLoad();
|
|
67
67
|
const [activeSkinTone] = useActiveSkinToneState();
|
|
68
|
-
const
|
|
68
|
+
const isEmojiDisallowed = useIsEmojiDisallowed();
|
|
69
69
|
const getEmojiUrl = useGetEmojiUrlConfig();
|
|
70
70
|
|
|
71
71
|
// Small trick to defer the rendering of all emoji categories until the first category is visible
|
|
@@ -75,11 +75,11 @@ function RenderCategory({
|
|
|
75
75
|
|
|
76
76
|
let hiddenCounter = 0;
|
|
77
77
|
|
|
78
|
-
const emojis = emojisToPush.map(
|
|
78
|
+
const emojis = emojisToPush.map(emoji => {
|
|
79
79
|
const unified = emojiUnified(emoji, activeSkinTone);
|
|
80
80
|
const { failedToLoad, filteredOut, hidden } = isEmojiHidden(emoji);
|
|
81
81
|
|
|
82
|
-
const isDisallowed =
|
|
82
|
+
const isDisallowed = isEmojiDisallowed(emoji);
|
|
83
83
|
|
|
84
84
|
if (hidden || isDisallowed) {
|
|
85
85
|
hiddenCounter++;
|
|
@@ -2,7 +2,12 @@ import { useRef, useMemo } from 'react';
|
|
|
2
2
|
|
|
3
3
|
import { useEmojiVersionConfig } from '../config/useConfig';
|
|
4
4
|
import { DataEmoji } from '../dataUtils/DataTypes';
|
|
5
|
-
import {
|
|
5
|
+
import {
|
|
6
|
+
addedIn,
|
|
7
|
+
allEmojis,
|
|
8
|
+
emojiUnified,
|
|
9
|
+
unifiedWithoutSkinTone
|
|
10
|
+
} from '../dataUtils/emojiSelectors';
|
|
6
11
|
|
|
7
12
|
export function useDisallowedEmojis() {
|
|
8
13
|
const DisallowedEmojisRef = useRef<Record<string, boolean>>({});
|
|
@@ -25,6 +30,16 @@ export function useDisallowedEmojis() {
|
|
|
25
30
|
}, [emojiVersionConfig]);
|
|
26
31
|
}
|
|
27
32
|
|
|
33
|
+
export function useIsEmojiDisallowed() {
|
|
34
|
+
const disallowedEmojis = useDisallowedEmojis();
|
|
35
|
+
|
|
36
|
+
return function isEmojiDisallowed(emoji: DataEmoji) {
|
|
37
|
+
const unified = unifiedWithoutSkinTone(emojiUnified(emoji));
|
|
38
|
+
|
|
39
|
+
return Boolean(disallowedEmojis[unified]);
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
|
|
28
43
|
function addedInNewerVersion(
|
|
29
44
|
emoji: DataEmoji,
|
|
30
45
|
supportedLevel: number
|