emoji-picker-react 4.7.11 → 4.7.12

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.
package/README.md CHANGED
@@ -6,8 +6,7 @@
6
6
 
7
7
  ![image](https://github.com/ealush/emoji-picker-react/assets/11255103/48901306-e7fd-49cd-8f1e-9b214083a61d)
8
8
 
9
- ![reactions](https://github.com/ealush/emoji-picker-react/assets/11255103/c28cc954-dc1d-4d82-91a8-64a74cf1d598)
10
- ---
9
+ ## ![reactions](https://github.com/ealush/emoji-picker-react/assets/11255103/c28cc954-dc1d-4d82-91a8-64a74cf1d598)
11
10
 
12
11
  _If you enjoy using emoji-picker-react<br/>
13
12
  You should also consider trying:<br/>
@@ -65,6 +64,7 @@ The following props are accepted by them picker:
65
64
 
66
65
  | Prop | Type | Default | Description |
67
66
  | ---------------------- | ------------------------------------------------------ | ---------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------- |
67
+ | open | boolean | `true` | Controls whether the picker is open or not. |
68
68
  | onEmojiClick | function | | Callback function that is called when an emoji is clicked. The function receives the emoji object as a parameter. |
69
69
  | autoFocusSearch | boolean | `true` | Controls the auto focus of the search input. |
70
70
  | Theme | string | `light` | Controls the theme of the picker. Possible values are `light`, `dark` and `auto`. |
@@ -34,6 +34,7 @@ export declare type PickerConfigInternal = {
34
34
  customEmojis: CustomEmoji[];
35
35
  reactionsDefaultOpen: boolean;
36
36
  reactions: string[];
37
+ open: boolean;
37
38
  };
38
39
  export declare type PreviewConfig = {
39
40
  defaultEmoji: string;
@@ -14,6 +14,7 @@ export declare function useEmojiStyleConfig(): EmojiStyle;
14
14
  export declare function useAutoFocusSearchConfig(): boolean;
15
15
  export declare function useCategoriesConfig(): CategoriesConfig;
16
16
  export declare function useCustomEmojisConfig(): CustomEmoji[];
17
+ export declare function useOpenConfig(): boolean;
17
18
  export declare function useOnEmojiClickConfig(mouseEventSource: MOUSE_EVENT_SOURCE): (emoji: EmojiClickData, event: MouseEvent) => void;
18
19
  export declare function usePreviewConfig(): PreviewConfig;
19
20
  export declare function useThemeConfig(): Theme;
@@ -16835,7 +16835,8 @@ function basePickerConfig() {
16835
16835
  unicodeToHide: new Set(KNOWN_FAILING_EMOJIS),
16836
16836
  width: 350,
16837
16837
  reactionsDefaultOpen: false,
16838
- reactions: DEFAULT_REACTIONS
16838
+ reactions: DEFAULT_REACTIONS,
16839
+ open: true
16839
16840
  };
16840
16841
  }
16841
16842
  var basePreviewConfig = {
@@ -16855,25 +16856,29 @@ function PickerConfigProvider(_ref) {
16855
16856
  }, children);
16856
16857
  }
16857
16858
  function useSetConfig(config) {
16858
- var _config$customEmojis2;
16859
+ var _config$customEmojis;
16859
16860
  var _React$useState = React.useState(function () {
16860
16861
  return mergeConfig(config);
16861
16862
  }),
16862
16863
  mergedConfig = _React$useState[0],
16863
16864
  setMergedConfig = _React$useState[1];
16864
16865
  React.useEffect(function () {
16865
- var _config$customEmojis, _mergedConfig$customE;
16866
- if (((_config$customEmojis = config.customEmojis) == null ? void 0 : _config$customEmojis.length) !== ((_mergedConfig$customE = mergedConfig.customEmojis) == null ? void 0 : _mergedConfig$customE.length)) {
16867
- setMergedConfig(mergeConfig(config));
16866
+ if (avoidRefresh(config, mergedConfig)) {
16867
+ return;
16868
16868
  }
16869
+ setMergedConfig(mergeConfig(config));
16869
16870
  // not gonna...
16870
16871
  // eslint-disable-next-line react-hooks/exhaustive-deps
16871
- }, [(_config$customEmojis2 = config.customEmojis) == null ? void 0 : _config$customEmojis2.length]);
16872
+ }, [(_config$customEmojis = config.customEmojis) == null ? void 0 : _config$customEmojis.length, config.open]);
16872
16873
  return mergedConfig;
16873
16874
  }
16874
16875
  function usePickerConfig() {
16875
16876
  return React.useContext(ConfigContext);
16876
16877
  }
16878
+ function avoidRefresh(prev, next) {
16879
+ var _prev$customEmojis, _next$customEmojis;
16880
+ return ((_prev$customEmojis = prev.customEmojis) == null ? void 0 : _prev$customEmojis.length) === ((_next$customEmojis = next.customEmojis) == null ? void 0 : _next$customEmojis.length) && prev.open === next.open;
16881
+ }
16877
16882
 
16878
16883
  var MutableConfigContext = /*#__PURE__*/React__default.createContext({});
16879
16884
  function useMutableConfig() {
@@ -16887,7 +16892,8 @@ function useDefineMutableConfig(config) {
16887
16892
  });
16888
16893
  React__default.useEffect(function () {
16889
16894
  MutableConfigRef.current.onEmojiClick = config.onEmojiClick || emptyFunc;
16890
- }, [config.onEmojiClick]);
16895
+ MutableConfigRef.current.onReactionClick = config.onReactionClick || config.onEmojiClick;
16896
+ }, [config.onEmojiClick, config.onReactionClick]);
16891
16897
  return MutableConfigRef;
16892
16898
  }
16893
16899
  function emptyFunc() {}
@@ -16936,6 +16942,11 @@ function useCustomEmojisConfig() {
16936
16942
  customEmojis = _usePickerConfig7.customEmojis;
16937
16943
  return customEmojis;
16938
16944
  }
16945
+ function useOpenConfig() {
16946
+ var _usePickerConfig8 = usePickerConfig(),
16947
+ open = _usePickerConfig8.open;
16948
+ return open;
16949
+ }
16939
16950
  function useOnEmojiClickConfig(mouseEventSource) {
16940
16951
  var _ref;
16941
16952
  var _useMutableConfig = useMutableConfig(),
@@ -16944,73 +16955,73 @@ function useOnEmojiClickConfig(mouseEventSource) {
16944
16955
  return handler || function () {};
16945
16956
  }
16946
16957
  function usePreviewConfig() {
16947
- var _usePickerConfig8 = usePickerConfig(),
16948
- previewConfig = _usePickerConfig8.previewConfig;
16958
+ var _usePickerConfig9 = usePickerConfig(),
16959
+ previewConfig = _usePickerConfig9.previewConfig;
16949
16960
  return previewConfig;
16950
16961
  }
16951
16962
  function useThemeConfig() {
16952
- var _usePickerConfig9 = usePickerConfig(),
16953
- theme = _usePickerConfig9.theme;
16963
+ var _usePickerConfig10 = usePickerConfig(),
16964
+ theme = _usePickerConfig10.theme;
16954
16965
  return theme;
16955
16966
  }
16956
16967
  function useSuggestedEmojisModeConfig() {
16957
- var _usePickerConfig10 = usePickerConfig(),
16958
- suggestedEmojisMode = _usePickerConfig10.suggestedEmojisMode;
16968
+ var _usePickerConfig11 = usePickerConfig(),
16969
+ suggestedEmojisMode = _usePickerConfig11.suggestedEmojisMode;
16959
16970
  return suggestedEmojisMode;
16960
16971
  }
16961
16972
  function useLazyLoadEmojisConfig() {
16962
- var _usePickerConfig11 = usePickerConfig(),
16963
- lazyLoadEmojis = _usePickerConfig11.lazyLoadEmojis;
16973
+ var _usePickerConfig12 = usePickerConfig(),
16974
+ lazyLoadEmojis = _usePickerConfig12.lazyLoadEmojis;
16964
16975
  return lazyLoadEmojis;
16965
16976
  }
16966
16977
  function useClassNameConfig() {
16967
- var _usePickerConfig12 = usePickerConfig(),
16968
- className = _usePickerConfig12.className;
16978
+ var _usePickerConfig13 = usePickerConfig(),
16979
+ className = _usePickerConfig13.className;
16969
16980
  return className;
16970
16981
  }
16971
16982
  function useStyleConfig() {
16972
- var _usePickerConfig13 = usePickerConfig(),
16973
- height = _usePickerConfig13.height,
16974
- width = _usePickerConfig13.width,
16975
- style = _usePickerConfig13.style;
16983
+ var _usePickerConfig14 = usePickerConfig(),
16984
+ height = _usePickerConfig14.height,
16985
+ width = _usePickerConfig14.width,
16986
+ style = _usePickerConfig14.style;
16976
16987
  return _extends({
16977
16988
  height: getDimension(height),
16978
16989
  width: getDimension(width)
16979
16990
  }, style);
16980
16991
  }
16981
16992
  function useReactionsOpenConfig() {
16982
- var _usePickerConfig14 = usePickerConfig(),
16983
- reactionsDefaultOpen = _usePickerConfig14.reactionsDefaultOpen;
16993
+ var _usePickerConfig15 = usePickerConfig(),
16994
+ reactionsDefaultOpen = _usePickerConfig15.reactionsDefaultOpen;
16984
16995
  return reactionsDefaultOpen;
16985
16996
  }
16986
16997
  function useEmojiVersionConfig() {
16987
- var _usePickerConfig15 = usePickerConfig(),
16988
- emojiVersion = _usePickerConfig15.emojiVersion;
16998
+ var _usePickerConfig16 = usePickerConfig(),
16999
+ emojiVersion = _usePickerConfig16.emojiVersion;
16989
17000
  return emojiVersion;
16990
17001
  }
16991
17002
  function useSearchDisabledConfig() {
16992
- var _usePickerConfig16 = usePickerConfig(),
16993
- searchDisabled = _usePickerConfig16.searchDisabled;
17003
+ var _usePickerConfig17 = usePickerConfig(),
17004
+ searchDisabled = _usePickerConfig17.searchDisabled;
16994
17005
  return searchDisabled;
16995
17006
  }
16996
17007
  function useSkinTonePickerLocationConfig() {
16997
- var _usePickerConfig17 = usePickerConfig(),
16998
- skinTonePickerLocation = _usePickerConfig17.skinTonePickerLocation;
17008
+ var _usePickerConfig18 = usePickerConfig(),
17009
+ skinTonePickerLocation = _usePickerConfig18.skinTonePickerLocation;
16999
17010
  return skinTonePickerLocation;
17000
17011
  }
17001
17012
  function useUnicodeToHide() {
17002
- var _usePickerConfig18 = usePickerConfig(),
17003
- unicodeToHide = _usePickerConfig18.unicodeToHide;
17013
+ var _usePickerConfig19 = usePickerConfig(),
17014
+ unicodeToHide = _usePickerConfig19.unicodeToHide;
17004
17015
  return unicodeToHide;
17005
17016
  }
17006
17017
  function useReactionsConfig() {
17007
- var _usePickerConfig19 = usePickerConfig(),
17008
- reactions = _usePickerConfig19.reactions;
17018
+ var _usePickerConfig20 = usePickerConfig(),
17019
+ reactions = _usePickerConfig20.reactions;
17009
17020
  return reactions;
17010
17021
  }
17011
17022
  function useGetEmojiUrlConfig() {
17012
- var _usePickerConfig20 = usePickerConfig(),
17013
- getEmojiUrl = _usePickerConfig20.getEmojiUrl;
17023
+ var _usePickerConfig21 = usePickerConfig(),
17024
+ getEmojiUrl = _usePickerConfig21.getEmojiUrl;
17014
17025
  return getEmojiUrl;
17015
17026
  }
17016
17027
  function getDimension(dimensionConfig) {
@@ -20183,7 +20194,7 @@ function useOnFocus() {
20183
20194
  var _excluded$1 = ["width", "height"];
20184
20195
  function PickerMain(_ref) {
20185
20196
  var children = _ref.children;
20186
- return React.createElement(PickerContextProvider, null, React.createElement(PickerStyleTag, null), React.createElement(PickerRootElement, null, children));
20197
+ return React.createElement(PickerContextProvider, null, React.createElement(PickerRootElement, null, children));
20187
20198
  }
20188
20199
  function PickerRootElement(_ref2) {
20189
20200
  var _cx;
@@ -20349,7 +20360,7 @@ var styles$j = /*#__PURE__*/stylesheet.create({
20349
20360
  });
20350
20361
 
20351
20362
  function EmojiPicker(props) {
20352
- return React.createElement(ElementRefContextProvider, null, React.createElement(PickerConfigProvider, Object.assign({}, props), React.createElement(ContentControl, null)));
20363
+ return React.createElement(ElementRefContextProvider, null, React.createElement(PickerStyleTag, null), React.createElement(PickerConfigProvider, Object.assign({}, props), React.createElement(ContentControl, null)));
20353
20364
  }
20354
20365
  function ContentControl() {
20355
20366
  var _useReactionsModeStat = useReactionsModeState(),
@@ -20357,11 +20368,15 @@ function ContentControl() {
20357
20368
  var _React$useState = React.useState(!reactionsDefaultOpen),
20358
20369
  renderAll = _React$useState[0],
20359
20370
  setRenderAll = _React$useState[1];
20371
+ var isOpen = useOpenConfig();
20360
20372
  React.useEffect(function () {
20361
20373
  if (!renderAll) {
20362
20374
  setRenderAll(true);
20363
20375
  }
20364
20376
  }, [renderAll]);
20377
+ if (!isOpen) {
20378
+ return null;
20379
+ }
20365
20380
  return React.createElement(PickerMain, null, React.createElement(Reactions, null), renderAll ? React.createElement(React.Fragment, null, React.createElement(Header, null), React.createElement(Body, null), React.createElement(Preview, null)) : null);
20366
20381
  }
20367
20382
  // eslint-disable-next-line complexity
@@ -20369,7 +20384,7 @@ var EmojiPickerReact = /*#__PURE__*/React.memo(EmojiPicker, function (prev, next
20369
20384
  var _prev$customEmojis, _next$customEmojis;
20370
20385
  var prevCustomEmojis = (_prev$customEmojis = prev.customEmojis) != null ? _prev$customEmojis : [];
20371
20386
  var nextCustomEmojis = (_next$customEmojis = next.customEmojis) != null ? _next$customEmojis : [];
20372
- return prev.emojiVersion === next.emojiVersion && prev.reactionsDefaultOpen === next.reactionsDefaultOpen && 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.className === next.className && prev.height === next.height && prev.width === next.width && prev.style === next.style && prev.searchDisabled === next.searchDisabled && prev.skinTonePickerLocation === next.skinTonePickerLocation && prevCustomEmojis.length === nextCustomEmojis.length;
20387
+ return prev.open === next.open && prev.emojiVersion === next.emojiVersion && prev.reactionsDefaultOpen === next.reactionsDefaultOpen && 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.className === next.className && prev.height === next.height && prev.width === next.width && prev.style === next.style && prev.searchDisabled === next.searchDisabled && prev.skinTonePickerLocation === next.skinTonePickerLocation && prevCustomEmojis.length === nextCustomEmojis.length;
20373
20388
  });
20374
20389
 
20375
20390
  var ErrorBoundary = /*#__PURE__*/function (_React$Component) {