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.
@@ -19,3 +19,4 @@ export declare enum ClassNames {
19
19
  variationPicker = "epr-emoji-variation-picker"
20
20
  }
21
21
  export declare function asSelectors(...classNames: ClassNames[]): string;
22
+ export declare function clsx(...args: any[]): string;
@@ -1,6 +1,6 @@
1
- /// <reference types="react" />
2
- import { PickerConfig } from './config/config';
1
+ import * as React from 'react';
3
2
  import './EmojiPickerReact.css';
4
- export interface Props extends PickerConfig {
5
- }
6
- export default function EmojiPicker(props: Props): JSX.Element;
3
+ import { PickerProps } from './index';
4
+ declare function EmojiPicker(props: PickerProps): JSX.Element;
5
+ declare const _default: React.MemoExoticComponent<typeof EmojiPicker>;
6
+ export default _default;
@@ -14,7 +14,6 @@ export declare type PickerConfigInternal = {
14
14
  autoFocusSearch: boolean;
15
15
  emojiStyle: EmojiStyle;
16
16
  categories: CategoriesConfig;
17
- onEmojiClick: (emoji: EmojiClickData, event: MouseEvent) => void;
18
17
  theme: Theme;
19
18
  suggestedEmojisMode: SuggestionMode;
20
19
  lazyLoadEmojis: boolean;
@@ -34,6 +33,7 @@ export declare type PreviewConfig = {
34
33
  };
35
34
  declare type ConfigExternal = {
36
35
  previewConfig: Partial<PreviewConfig>;
36
+ onEmojiClick: (emoji: EmojiClickData, event: MouseEvent) => void;
37
37
  } & Omit<PickerConfigInternal, 'previewConfig' | 'unicodeToHide'>;
38
38
  export declare type PickerConfig = Partial<ConfigExternal>;
39
39
  export declare type PickerDimensions = string | number;
@@ -0,0 +1,8 @@
1
+ import React from 'react';
2
+ import { EmojiClickData } from '../types/exposedTypes';
3
+ export declare type MutableConfig = {
4
+ onEmojiClick?: (emoji: EmojiClickData, event: MouseEvent) => void;
5
+ };
6
+ export declare const MutableConfigContext: React.Context<React.MutableRefObject<MutableConfig>>;
7
+ export declare function useMutableConfig(): React.MutableRefObject<MutableConfig>;
8
+ export declare function useDefineMutableConfig(config: MutableConfig): React.MutableRefObject<MutableConfig>;
@@ -5,7 +5,7 @@ Object.defineProperty(exports, '__esModule', { value: true });
5
5
  function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }
6
6
 
7
7
  var React = require('react');
8
- var clsx = _interopDefault(require('clsx'));
8
+ var React__default = _interopDefault(React);
9
9
 
10
10
  var ClassNames;
11
11
 
@@ -39,6 +39,35 @@ function asSelectors() {
39
39
  return "." + c;
40
40
  }).join('');
41
41
  }
42
+ function clsx() {
43
+ for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
44
+ args[_key2] = arguments[_key2];
45
+ }
46
+
47
+ var classes = args.reduce(function (classes, arg) {
48
+ if (typeof arg === 'string') {
49
+ classes.push(arg);
50
+ }
51
+
52
+ if (Array.isArray(arg)) {
53
+ classes.push(clsx.apply(void 0, arg));
54
+ }
55
+
56
+ if (typeof arg === 'object') {
57
+ Object.entries(arg).forEach(function (_ref) {
58
+ var key = _ref[0],
59
+ value = _ref[1];
60
+
61
+ if (value) {
62
+ classes.push(key);
63
+ }
64
+ });
65
+ }
66
+
67
+ return classes;
68
+ }, []);
69
+ return classes.filter(Boolean).join(' ');
70
+ }
42
71
 
43
72
  function focusElement(element) {
44
73
  if (!element) {
@@ -16888,11 +16917,6 @@ function basePickerConfig() {
16888
16917
  getEmojiUrl: emojiUrlByUnified,
16889
16918
  height: 450,
16890
16919
  lazyLoadEmojis: false,
16891
- onEmojiClick: function defaultOnClickHandler( // @ts-ignore
16892
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
16893
- emoji, // @ts-ignore
16894
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
16895
- event) {},
16896
16920
  previewConfig: _extends({}, basePreviewConfig),
16897
16921
  searchDisabled: false,
16898
16922
  searchPlaceHolder: DEFAULT_SEARCH_PLACEHOLDER,
@@ -16930,6 +16954,23 @@ function usePickerConfig() {
16930
16954
  return React.useContext(ConfigContext);
16931
16955
  }
16932
16956
 
16957
+ var MutableConfigContext = /*#__PURE__*/React__default.createContext({});
16958
+ function useMutableConfig() {
16959
+ var mutableConfig = React__default.useContext(MutableConfigContext);
16960
+ return mutableConfig;
16961
+ }
16962
+ function useDefineMutableConfig(config) {
16963
+ var MutableConfigRef = React__default.useRef({
16964
+ onEmojiClick: config.onEmojiClick || emptyFunc
16965
+ });
16966
+ React__default.useEffect(function () {
16967
+ MutableConfigRef.current.onEmojiClick = config.onEmojiClick || emptyFunc;
16968
+ }, [config.onEmojiClick]);
16969
+ return MutableConfigRef;
16970
+ }
16971
+
16972
+ function emptyFunc() {}
16973
+
16933
16974
  function useSearchPlaceHolderConfig() {
16934
16975
  var _find;
16935
16976
 
@@ -16978,20 +17019,20 @@ function useCustomEmojisConfig() {
16978
17019
  return customEmojis;
16979
17020
  }
16980
17021
  function useOnEmojiClickConfig() {
16981
- var _usePickerConfig8 = usePickerConfig(),
16982
- onEmojiClick = _usePickerConfig8.onEmojiClick;
17022
+ var _useMutableConfig = useMutableConfig(),
17023
+ current = _useMutableConfig.current;
16983
17024
 
16984
- return onEmojiClick;
17025
+ return current.onEmojiClick || function () {};
16985
17026
  }
16986
17027
  function usePreviewConfig() {
16987
- var _usePickerConfig9 = usePickerConfig(),
16988
- previewConfig = _usePickerConfig9.previewConfig;
17028
+ var _usePickerConfig8 = usePickerConfig(),
17029
+ previewConfig = _usePickerConfig8.previewConfig;
16989
17030
 
16990
17031
  return previewConfig;
16991
17032
  }
16992
17033
  function useThemeConfig() {
16993
- var _usePickerConfig10 = usePickerConfig(),
16994
- theme = _usePickerConfig10.theme;
17034
+ var _usePickerConfig9 = usePickerConfig(),
17035
+ theme = _usePickerConfig9.theme;
16995
17036
 
16996
17037
  if (theme === exports.Theme.AUTO) {
16997
17038
  return isSystemDarkTheme() ? exports.Theme.DARK : exports.Theme.LIGHT;
@@ -17000,21 +17041,21 @@ function useThemeConfig() {
17000
17041
  return theme;
17001
17042
  }
17002
17043
  function useSuggestedEmojisModeConfig() {
17003
- var _usePickerConfig11 = usePickerConfig(),
17004
- suggestedEmojisMode = _usePickerConfig11.suggestedEmojisMode;
17044
+ var _usePickerConfig10 = usePickerConfig(),
17045
+ suggestedEmojisMode = _usePickerConfig10.suggestedEmojisMode;
17005
17046
 
17006
17047
  return suggestedEmojisMode;
17007
17048
  }
17008
17049
  function useLazyLoadEmojisConfig() {
17009
- var _usePickerConfig12 = usePickerConfig(),
17010
- lazyLoadEmojis = _usePickerConfig12.lazyLoadEmojis;
17050
+ var _usePickerConfig11 = usePickerConfig(),
17051
+ lazyLoadEmojis = _usePickerConfig11.lazyLoadEmojis;
17011
17052
 
17012
17053
  return lazyLoadEmojis;
17013
17054
  }
17014
17055
  function usePickerSizeConfig() {
17015
- var _usePickerConfig13 = usePickerConfig(),
17016
- height = _usePickerConfig13.height,
17017
- width = _usePickerConfig13.width;
17056
+ var _usePickerConfig12 = usePickerConfig(),
17057
+ height = _usePickerConfig12.height,
17058
+ width = _usePickerConfig12.width;
17018
17059
 
17019
17060
  return {
17020
17061
  height: getDimension(height),
@@ -17022,32 +17063,32 @@ function usePickerSizeConfig() {
17022
17063
  };
17023
17064
  }
17024
17065
  function useEmojiVersionConfig() {
17025
- var _usePickerConfig14 = usePickerConfig(),
17026
- emojiVersion = _usePickerConfig14.emojiVersion;
17066
+ var _usePickerConfig13 = usePickerConfig(),
17067
+ emojiVersion = _usePickerConfig13.emojiVersion;
17027
17068
 
17028
17069
  return emojiVersion;
17029
17070
  }
17030
17071
  function useSearchDisabledConfig() {
17031
- var _usePickerConfig15 = usePickerConfig(),
17032
- searchDisabled = _usePickerConfig15.searchDisabled;
17072
+ var _usePickerConfig14 = usePickerConfig(),
17073
+ searchDisabled = _usePickerConfig14.searchDisabled;
17033
17074
 
17034
17075
  return searchDisabled;
17035
17076
  }
17036
17077
  function useSkinTonePickerLocationConfig() {
17037
- var _usePickerConfig16 = usePickerConfig(),
17038
- skinTonePickerLocation = _usePickerConfig16.skinTonePickerLocation;
17078
+ var _usePickerConfig15 = usePickerConfig(),
17079
+ skinTonePickerLocation = _usePickerConfig15.skinTonePickerLocation;
17039
17080
 
17040
17081
  return skinTonePickerLocation;
17041
17082
  }
17042
17083
  function useUnicodeToHide() {
17043
- var _usePickerConfig17 = usePickerConfig(),
17044
- unicodeToHide = _usePickerConfig17.unicodeToHide;
17084
+ var _usePickerConfig16 = usePickerConfig(),
17085
+ unicodeToHide = _usePickerConfig16.unicodeToHide;
17045
17086
 
17046
17087
  return unicodeToHide;
17047
17088
  }
17048
17089
  function useGetEmojiUrlConfig() {
17049
- var _usePickerConfig18 = usePickerConfig(),
17050
- getEmojiUrl = _usePickerConfig18.getEmojiUrl;
17090
+ var _usePickerConfig17 = usePickerConfig(),
17091
+ getEmojiUrl = _usePickerConfig17.getEmojiUrl;
17051
17092
 
17052
17093
  return getEmojiUrl;
17053
17094
  }
@@ -19724,7 +19765,12 @@ function PickerRootElement(_ref2) {
19724
19765
 
19725
19766
  function EmojiPicker(props) {
19726
19767
  return React.createElement(ElementRefContextProvider, null, React.createElement(PickerConfigProvider, Object.assign({}, props), React.createElement(PickerMain, null, React.createElement(Header, null), React.createElement(Body, null), React.createElement(Preview, null))));
19727
- }
19768
+ } // eslint-disable-next-line complexity
19769
+
19770
+
19771
+ var EmojiPickerReact = /*#__PURE__*/React.memo(EmojiPicker, function (prev, next) {
19772
+ 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;
19773
+ });
19728
19774
 
19729
19775
  var ErrorBoundary = /*#__PURE__*/function (_React$Component) {
19730
19776
  _inheritsLoose(ErrorBoundary, _React$Component);
@@ -19790,14 +19836,14 @@ function ExportedEmoji(_ref) {
19790
19836
  }
19791
19837
 
19792
19838
  function EmojiPicker$1(props) {
19793
- return React.createElement(ErrorBoundary, null, React.createElement(EmojiPicker, Object.assign({}, props)));
19794
- } // eslint-disable-next-line complexity
19795
-
19796
-
19797
- var index = /*#__PURE__*/React.memo(EmojiPicker$1, function (prev, next) {
19798
- 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;
19799
- });
19839
+ var MutableConfigRef = useDefineMutableConfig({
19840
+ onEmojiClick: props.onEmojiClick
19841
+ });
19842
+ return React.createElement(ErrorBoundary, null, React.createElement(MutableConfigContext.Provider, {
19843
+ value: MutableConfigRef
19844
+ }, React.createElement(EmojiPickerReact, Object.assign({}, props))));
19845
+ }
19800
19846
 
19801
19847
  exports.Emoji = ExportedEmoji;
19802
- exports.default = index;
19848
+ exports.default = EmojiPicker$1;
19803
19849
  //# sourceMappingURL=emoji-picker-react.cjs.development.js.map