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.
@@ -1 +1,3 @@
1
+ import { DataEmoji } from '../dataUtils/DataTypes';
1
2
  export declare function useDisallowedEmojis(): Record<string, boolean>;
3
+ export declare function useIsEmojiDisallowed(): (emoji: DataEmoji) => boolean;
package/package.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "4.4.1",
2
+ "version": "4.4.2",
3
3
  "license": "MIT",
4
4
  "main": "dist/index.js",
5
5
  "typings": "dist/index.d.ts",
@@ -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
- useDisallowedEmojisRef,
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 disallowedEmojisRef = useDisallowedEmojisRef();
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((emoji) => {
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 = !!disallowedEmojisRef.current[unified];
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 { addedIn, allEmojis, emojiUnified } from '../dataUtils/emojiSelectors';
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