emoji-picker-react 4.3.0 → 4.4.0-rc.1

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,4 +1,5 @@
1
1
  import { GetEmojiUrl } from '../components/emoji/Emoji';
2
+ import { DataEmoji } from '../dataUtils/DataTypes';
2
3
  import { EmojiClickData, EmojiStyle, SkinTones, SuggestionMode, Theme } from '../types/exposedTypes';
3
4
  import { CategoriesConfig } from './categoryConfig';
4
5
  export declare function mergeConfig(userConfig?: PickerConfig): PickerConfigInternal;
@@ -19,6 +20,7 @@ export declare type PickerConfigInternal = {
19
20
  height: PickerDimensions;
20
21
  width: PickerDimensions;
21
22
  getEmojiUrl: GetEmojiUrl;
23
+ showEmoji: undefined | ((emoji: DataEmoji) => boolean);
22
24
  };
23
25
  export declare type PreviewConfig = {
24
26
  defaultEmoji: string;
@@ -1,3 +1,4 @@
1
+ import { DataEmoji } from '../dataUtils/DataTypes';
1
2
  import { EmojiClickData, EmojiStyle, SkinTones, SuggestionMode, Theme } from '../types/exposedTypes';
2
3
  import { CategoriesConfig } from './categoryConfig';
3
4
  import { PickerDimensions, PreviewConfig } from './config';
@@ -18,3 +19,4 @@ export declare function usePickerSizeConfig(): {
18
19
  };
19
20
  export declare function useEmojiVersionConfig(): string | null;
20
21
  export declare function useGetEmojiUrlConfig(): (unified: string, style: EmojiStyle) => string;
22
+ export declare function useShowEmojiConfig(): undefined | ((emoji: DataEmoji) => boolean);
@@ -16799,6 +16799,7 @@ function basePickerConfig() {
16799
16799
  event) {},
16800
16800
  previewConfig: _extends({}, basePreviewConfig),
16801
16801
  searchPlaceHolder: 'Search',
16802
+ showEmoji: undefined,
16802
16803
  skinTonesDisabled: false,
16803
16804
  suggestedEmojisMode: exports.SuggestionMode.FREQUENT,
16804
16805
  theme: exports.Theme.LIGHT,
@@ -16917,6 +16918,12 @@ function useGetEmojiUrlConfig() {
16917
16918
 
16918
16919
  return getEmojiUrl;
16919
16920
  }
16921
+ function useShowEmojiConfig() {
16922
+ var _usePickerConfig15 = usePickerConfig(),
16923
+ showEmoji = _usePickerConfig15.showEmoji;
16924
+
16925
+ return showEmoji;
16926
+ }
16920
16927
 
16921
16928
  function getDimension(dimensionConfig) {
16922
16929
  return typeof dimensionConfig === 'number' ? dimensionConfig + "px" : dimensionConfig;
@@ -16965,24 +16972,37 @@ function useDebouncedState(initialValue, delay) {
16965
16972
  return [state, debouncedSetState];
16966
16973
  }
16967
16974
 
16975
+ function isFunction(value) {
16976
+ return typeof value === 'function';
16977
+ }
16978
+
16968
16979
  function useDisallowedEmojis() {
16969
16980
  var DisallowedEmojisRef = React.useRef({});
16970
16981
  var emojiVersionConfig = useEmojiVersionConfig();
16982
+ var shouldShowEmoji = useShowEmojiConfig();
16971
16983
  return React.useMemo(function () {
16972
16984
  var emojiVersion = parseFloat("" + emojiVersionConfig);
16973
16985
 
16974
- if (!emojiVersionConfig || Number.isNaN(emojiVersion)) {
16986
+ if ((!emojiVersionConfig || Number.isNaN(emojiVersion)) && !shouldShowEmoji) {
16975
16987
  return DisallowedEmojisRef.current;
16976
16988
  }
16977
16989
 
16978
16990
  return allEmojis.reduce(function (disallowedEmojis, emoji) {
16991
+ if (isFunction(shouldShowEmoji) && !shouldShowEmoji(emoji)) {
16992
+ disallowEmoji();
16993
+ }
16994
+
16979
16995
  if (addedInNewerVersion(emoji, emojiVersion)) {
16980
- disallowedEmojis[emojiUnified(emoji)] = true;
16996
+ disallowEmoji();
16981
16997
  }
16982
16998
 
16983
16999
  return disallowedEmojis;
17000
+
17001
+ function disallowEmoji() {
17002
+ disallowedEmojis[emojiUnified(emoji)] = true;
17003
+ }
16984
17004
  }, DisallowedEmojisRef.current);
16985
- }, [emojiVersionConfig]);
17005
+ }, [emojiVersionConfig, shouldShowEmoji]);
16986
17006
  }
16987
17007
 
16988
17008
  function addedInNewerVersion(emoji, supportedLevel) {
@@ -17989,7 +18009,7 @@ function useFocusCategoryNavigation() {
17989
18009
  function useSetFilterRef() {
17990
18010
  var filterRef = useFilterRef();
17991
18011
  return function setFilter(setter) {
17992
- if (typeof setter === 'function') {
18012
+ if (isFunction(setter)) {
17993
18013
  return setFilter(setter(filterRef.current));
17994
18014
  }
17995
18015