emoji-picker-react 4.5.2 → 4.5.4

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,5 +1,4 @@
1
- import { useRef, createElement, createContext, createRef, useContext, useState, useMemo, useEffect, useCallback, Fragment, Component, memo } from 'react';
2
- import clsx from 'clsx';
1
+ import React__default, { useRef, createElement, createContext, createRef, useContext, useState, useMemo, useEffect, useCallback, Fragment, memo, Component } from 'react';
3
2
 
4
3
  var ClassNames;
5
4
 
@@ -33,6 +32,35 @@ function asSelectors() {
33
32
  return "." + c;
34
33
  }).join('');
35
34
  }
35
+ function clsx() {
36
+ for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
37
+ args[_key2] = arguments[_key2];
38
+ }
39
+
40
+ var classes = args.reduce(function (classes, arg) {
41
+ if (typeof arg === 'string') {
42
+ classes.push(arg);
43
+ }
44
+
45
+ if (Array.isArray(arg)) {
46
+ classes.push(clsx.apply(void 0, arg));
47
+ }
48
+
49
+ if (typeof arg === 'object') {
50
+ Object.entries(arg).forEach(function (_ref) {
51
+ var key = _ref[0],
52
+ value = _ref[1];
53
+
54
+ if (value) {
55
+ classes.push(key);
56
+ }
57
+ });
58
+ }
59
+
60
+ return classes;
61
+ }, []);
62
+ return classes.filter(Boolean).join(' ');
63
+ }
36
64
 
37
65
  function focusElement(element) {
38
66
  if (!element) {
@@ -16894,11 +16922,6 @@ function basePickerConfig() {
16894
16922
  getEmojiUrl: emojiUrlByUnified,
16895
16923
  height: 450,
16896
16924
  lazyLoadEmojis: false,
16897
- onEmojiClick: function defaultOnClickHandler( // @ts-ignore
16898
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
16899
- emoji, // @ts-ignore
16900
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
16901
- event) {},
16902
16925
  previewConfig: _extends({}, basePreviewConfig),
16903
16926
  searchDisabled: false,
16904
16927
  searchPlaceHolder: DEFAULT_SEARCH_PLACEHOLDER,
@@ -16936,6 +16959,23 @@ function usePickerConfig() {
16936
16959
  return useContext(ConfigContext);
16937
16960
  }
16938
16961
 
16962
+ var MutableConfigContext = /*#__PURE__*/React__default.createContext({});
16963
+ function useMutableConfig() {
16964
+ var mutableConfig = React__default.useContext(MutableConfigContext);
16965
+ return mutableConfig;
16966
+ }
16967
+ function useDefineMutableConfig(config) {
16968
+ var MutableConfigRef = React__default.useRef({
16969
+ onEmojiClick: config.onEmojiClick || emptyFunc
16970
+ });
16971
+ React__default.useEffect(function () {
16972
+ MutableConfigRef.current.onEmojiClick = config.onEmojiClick || emptyFunc;
16973
+ }, [config.onEmojiClick]);
16974
+ return MutableConfigRef;
16975
+ }
16976
+
16977
+ function emptyFunc() {}
16978
+
16939
16979
  function useSearchPlaceHolderConfig() {
16940
16980
  var _find;
16941
16981
 
@@ -16984,20 +17024,20 @@ function useCustomEmojisConfig() {
16984
17024
  return customEmojis;
16985
17025
  }
16986
17026
  function useOnEmojiClickConfig() {
16987
- var _usePickerConfig8 = usePickerConfig(),
16988
- onEmojiClick = _usePickerConfig8.onEmojiClick;
17027
+ var _useMutableConfig = useMutableConfig(),
17028
+ current = _useMutableConfig.current;
16989
17029
 
16990
- return onEmojiClick;
17030
+ return current.onEmojiClick || function () {};
16991
17031
  }
16992
17032
  function usePreviewConfig() {
16993
- var _usePickerConfig9 = usePickerConfig(),
16994
- previewConfig = _usePickerConfig9.previewConfig;
17033
+ var _usePickerConfig8 = usePickerConfig(),
17034
+ previewConfig = _usePickerConfig8.previewConfig;
16995
17035
 
16996
17036
  return previewConfig;
16997
17037
  }
16998
17038
  function useThemeConfig() {
16999
- var _usePickerConfig10 = usePickerConfig(),
17000
- theme = _usePickerConfig10.theme;
17039
+ var _usePickerConfig9 = usePickerConfig(),
17040
+ theme = _usePickerConfig9.theme;
17001
17041
 
17002
17042
  if (theme === Theme.AUTO) {
17003
17043
  return isSystemDarkTheme() ? Theme.DARK : Theme.LIGHT;
@@ -17006,21 +17046,21 @@ function useThemeConfig() {
17006
17046
  return theme;
17007
17047
  }
17008
17048
  function useSuggestedEmojisModeConfig() {
17009
- var _usePickerConfig11 = usePickerConfig(),
17010
- suggestedEmojisMode = _usePickerConfig11.suggestedEmojisMode;
17049
+ var _usePickerConfig10 = usePickerConfig(),
17050
+ suggestedEmojisMode = _usePickerConfig10.suggestedEmojisMode;
17011
17051
 
17012
17052
  return suggestedEmojisMode;
17013
17053
  }
17014
17054
  function useLazyLoadEmojisConfig() {
17015
- var _usePickerConfig12 = usePickerConfig(),
17016
- lazyLoadEmojis = _usePickerConfig12.lazyLoadEmojis;
17055
+ var _usePickerConfig11 = usePickerConfig(),
17056
+ lazyLoadEmojis = _usePickerConfig11.lazyLoadEmojis;
17017
17057
 
17018
17058
  return lazyLoadEmojis;
17019
17059
  }
17020
17060
  function usePickerSizeConfig() {
17021
- var _usePickerConfig13 = usePickerConfig(),
17022
- height = _usePickerConfig13.height,
17023
- width = _usePickerConfig13.width;
17061
+ var _usePickerConfig12 = usePickerConfig(),
17062
+ height = _usePickerConfig12.height,
17063
+ width = _usePickerConfig12.width;
17024
17064
 
17025
17065
  return {
17026
17066
  height: getDimension(height),
@@ -17028,32 +17068,32 @@ function usePickerSizeConfig() {
17028
17068
  };
17029
17069
  }
17030
17070
  function useEmojiVersionConfig() {
17031
- var _usePickerConfig14 = usePickerConfig(),
17032
- emojiVersion = _usePickerConfig14.emojiVersion;
17071
+ var _usePickerConfig13 = usePickerConfig(),
17072
+ emojiVersion = _usePickerConfig13.emojiVersion;
17033
17073
 
17034
17074
  return emojiVersion;
17035
17075
  }
17036
17076
  function useSearchDisabledConfig() {
17037
- var _usePickerConfig15 = usePickerConfig(),
17038
- searchDisabled = _usePickerConfig15.searchDisabled;
17077
+ var _usePickerConfig14 = usePickerConfig(),
17078
+ searchDisabled = _usePickerConfig14.searchDisabled;
17039
17079
 
17040
17080
  return searchDisabled;
17041
17081
  }
17042
17082
  function useSkinTonePickerLocationConfig() {
17043
- var _usePickerConfig16 = usePickerConfig(),
17044
- skinTonePickerLocation = _usePickerConfig16.skinTonePickerLocation;
17083
+ var _usePickerConfig15 = usePickerConfig(),
17084
+ skinTonePickerLocation = _usePickerConfig15.skinTonePickerLocation;
17045
17085
 
17046
17086
  return skinTonePickerLocation;
17047
17087
  }
17048
17088
  function useUnicodeToHide() {
17049
- var _usePickerConfig17 = usePickerConfig(),
17050
- unicodeToHide = _usePickerConfig17.unicodeToHide;
17089
+ var _usePickerConfig16 = usePickerConfig(),
17090
+ unicodeToHide = _usePickerConfig16.unicodeToHide;
17051
17091
 
17052
17092
  return unicodeToHide;
17053
17093
  }
17054
17094
  function useGetEmojiUrlConfig() {
17055
- var _usePickerConfig18 = usePickerConfig(),
17056
- getEmojiUrl = _usePickerConfig18.getEmojiUrl;
17095
+ var _usePickerConfig17 = usePickerConfig(),
17096
+ getEmojiUrl = _usePickerConfig17.getEmojiUrl;
17057
17097
 
17058
17098
  return getEmojiUrl;
17059
17099
  }
@@ -19796,7 +19836,12 @@ styleInject(css_248z$c);
19796
19836
 
19797
19837
  function EmojiPicker(props) {
19798
19838
  return createElement(ElementRefContextProvider, null, createElement(PickerConfigProvider, Object.assign({}, props), createElement(PickerMain, null, createElement(Header, null), createElement(Body, null), createElement(Preview, null))));
19799
- }
19839
+ } // eslint-disable-next-line complexity
19840
+
19841
+
19842
+ var EmojiPickerReact = /*#__PURE__*/memo(EmojiPicker, function (prev, next) {
19843
+ return prev.emojiVersion === next.emojiVersion && prev.searchPlaceHolder === next.searchPlaceHolder && prev.searchPlaceholder === next.searchPlaceholder && prev.defaultSkinTone === next.defaultSkinTone && prev.skinTonesDisabled === next.skinTonesDisabled && prev.autoFocusSearch === next.autoFocusSearch && prev.emojiStyle === next.emojiStyle && prev.theme === next.theme && prev.suggestedEmojisMode === next.suggestedEmojisMode && prev.lazyLoadEmojis === next.lazyLoadEmojis && prev.height === next.height && prev.width === next.width && prev.searchDisabled === next.searchDisabled && prev.skinTonePickerLocation === next.skinTonePickerLocation;
19844
+ });
19800
19845
 
19801
19846
  var ErrorBoundary = /*#__PURE__*/function (_React$Component) {
19802
19847
  _inheritsLoose(ErrorBoundary, _React$Component);
@@ -19862,14 +19907,14 @@ function ExportedEmoji(_ref) {
19862
19907
  }
19863
19908
 
19864
19909
  function EmojiPicker$1(props) {
19865
- return createElement(ErrorBoundary, null, createElement(EmojiPicker, Object.assign({}, props)));
19866
- } // eslint-disable-next-line complexity
19867
-
19868
-
19869
- var index = /*#__PURE__*/memo(EmojiPicker$1, function (prev, next) {
19870
- return prev.emojiVersion === next.emojiVersion && prev.searchPlaceHolder === next.searchPlaceHolder && prev.searchPlaceholder === next.searchPlaceholder && prev.defaultSkinTone === next.defaultSkinTone && prev.skinTonesDisabled === next.skinTonesDisabled && prev.autoFocusSearch === next.autoFocusSearch && prev.emojiStyle === next.emojiStyle && prev.theme === next.theme && prev.suggestedEmojisMode === next.suggestedEmojisMode && prev.lazyLoadEmojis === next.lazyLoadEmojis && prev.height === next.height && prev.width === next.width && prev.searchDisabled === next.searchDisabled && prev.skinTonePickerLocation === next.skinTonePickerLocation;
19871
- });
19910
+ var MutableConfigRef = useDefineMutableConfig({
19911
+ onEmojiClick: props.onEmojiClick
19912
+ });
19913
+ return createElement(ErrorBoundary, null, createElement(MutableConfigContext.Provider, {
19914
+ value: MutableConfigRef
19915
+ }, createElement(EmojiPickerReact, Object.assign({}, props))));
19916
+ }
19872
19917
 
19873
- export default index;
19918
+ export default EmojiPicker$1;
19874
19919
  export { Categories, ExportedEmoji as Emoji, EmojiStyle, SkinTonePickerLocation, SkinTones, SuggestionMode, Theme };
19875
19920
  //# sourceMappingURL=emoji-picker-react.esm.js.map