emoji-picker-react 4.4.0 → 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/dist/index.d.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  /// <reference types="react" />
2
2
  import { PickerConfig } from './config/config';
3
3
  export { ExportedEmoji as Emoji } from './components/emoji/ExportedEmoji';
4
- export { EmojiStyle, SkinTones, Theme, Categories, EmojiClickData, SuggestionMode } from './types/exposedTypes';
4
+ export { EmojiStyle, SkinTones, Theme, Categories, EmojiClickData, SuggestionMode, SkinTonePickerLocation } from './types/exposedTypes';
5
5
  export interface Props extends PickerConfig {
6
6
  }
7
7
  export default function EmojiPicker(props: Props): JSX.Element;
package/package.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "4.4.0",
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
package/src/index.tsx CHANGED
@@ -12,7 +12,8 @@ export {
12
12
  Theme,
13
13
  Categories,
14
14
  EmojiClickData,
15
- SuggestionMode
15
+ SuggestionMode,
16
+ SkinTonePickerLocation
16
17
  } from './types/exposedTypes';
17
18
 
18
19
  export interface Props extends PickerConfig {}