emoji-picker-react 4.7.10 → 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.
@@ -1,4 +1,4 @@
1
- import React__default, { useState, useEffect, createElement, createContext, useContext, useRef, useMemo, useCallback, createRef, Fragment, memo, Component } from 'react';
1
+ import React__default, { memo, createElement, useState, useEffect, useContext, createContext, useRef, useMemo, useCallback, createRef, Fragment, Component } from 'react';
2
2
  import { createSheet, cx } from 'flairup';
3
3
 
4
4
  function _extends() {
@@ -103,19 +103,7 @@ function asSelectors() {
103
103
  }).join('');
104
104
  }
105
105
 
106
- var isEverMounted = false;
107
- function useIsEverMounted() {
108
- var _React$useState = useState(isEverMounted),
109
- isMounted = _React$useState[0],
110
- setIsMounted = _React$useState[1];
111
- useEffect(function () {
112
- setIsMounted(true);
113
- isEverMounted = true;
114
- }, []);
115
- return isMounted || isEverMounted;
116
- }
117
-
118
- var stylesheet = /*#__PURE__*/createSheet('epr');
106
+ var stylesheet = /*#__PURE__*/createSheet('epr', null);
119
107
  var hidden = {
120
108
  display: 'none',
121
109
  opacity: '0',
@@ -128,18 +116,14 @@ var commonStyles = /*#__PURE__*/stylesheet.create({
128
116
  '.': ClassNames.hidden
129
117
  }, hidden)
130
118
  });
131
- function PickerStyleTag() {
132
- var isMounted = useIsEverMounted();
133
- if (stylesheet.isApplied() && isMounted) {
134
- return null;
135
- }
119
+ var PickerStyleTag = /*#__PURE__*/memo(function PickerStyleTag() {
136
120
  return createElement("style", {
137
121
  suppressHydrationWarning: true,
138
122
  dangerouslySetInnerHTML: {
139
123
  __html: stylesheet.getStyle()
140
124
  }
141
125
  });
142
- }
126
+ });
143
127
  var commonInteractionStyles = /*#__PURE__*/stylesheet.create({
144
128
  '.epr-main': {
145
129
  ':has(input:not(:placeholder-shown))': {
@@ -16850,7 +16834,8 @@ function basePickerConfig() {
16850
16834
  unicodeToHide: new Set(KNOWN_FAILING_EMOJIS),
16851
16835
  width: 350,
16852
16836
  reactionsDefaultOpen: false,
16853
- reactions: DEFAULT_REACTIONS
16837
+ reactions: DEFAULT_REACTIONS,
16838
+ open: true
16854
16839
  };
16855
16840
  }
16856
16841
  var basePreviewConfig = {
@@ -16870,25 +16855,29 @@ function PickerConfigProvider(_ref) {
16870
16855
  }, children);
16871
16856
  }
16872
16857
  function useSetConfig(config) {
16873
- var _config$customEmojis2;
16858
+ var _config$customEmojis;
16874
16859
  var _React$useState = useState(function () {
16875
16860
  return mergeConfig(config);
16876
16861
  }),
16877
16862
  mergedConfig = _React$useState[0],
16878
16863
  setMergedConfig = _React$useState[1];
16879
16864
  useEffect(function () {
16880
- var _config$customEmojis, _mergedConfig$customE;
16881
- if (((_config$customEmojis = config.customEmojis) == null ? void 0 : _config$customEmojis.length) !== ((_mergedConfig$customE = mergedConfig.customEmojis) == null ? void 0 : _mergedConfig$customE.length)) {
16882
- setMergedConfig(mergeConfig(config));
16865
+ if (avoidRefresh(config, mergedConfig)) {
16866
+ return;
16883
16867
  }
16868
+ setMergedConfig(mergeConfig(config));
16884
16869
  // not gonna...
16885
16870
  // eslint-disable-next-line react-hooks/exhaustive-deps
16886
- }, [(_config$customEmojis2 = config.customEmojis) == null ? void 0 : _config$customEmojis2.length]);
16871
+ }, [(_config$customEmojis = config.customEmojis) == null ? void 0 : _config$customEmojis.length, config.open]);
16887
16872
  return mergedConfig;
16888
16873
  }
16889
16874
  function usePickerConfig() {
16890
16875
  return useContext(ConfigContext);
16891
16876
  }
16877
+ function avoidRefresh(prev, next) {
16878
+ var _prev$customEmojis, _next$customEmojis;
16879
+ 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;
16880
+ }
16892
16881
 
16893
16882
  var MutableConfigContext = /*#__PURE__*/React__default.createContext({});
16894
16883
  function useMutableConfig() {
@@ -16902,7 +16891,8 @@ function useDefineMutableConfig(config) {
16902
16891
  });
16903
16892
  React__default.useEffect(function () {
16904
16893
  MutableConfigRef.current.onEmojiClick = config.onEmojiClick || emptyFunc;
16905
- }, [config.onEmojiClick]);
16894
+ MutableConfigRef.current.onReactionClick = config.onReactionClick || config.onEmojiClick;
16895
+ }, [config.onEmojiClick, config.onReactionClick]);
16906
16896
  return MutableConfigRef;
16907
16897
  }
16908
16898
  function emptyFunc() {}
@@ -16951,6 +16941,11 @@ function useCustomEmojisConfig() {
16951
16941
  customEmojis = _usePickerConfig7.customEmojis;
16952
16942
  return customEmojis;
16953
16943
  }
16944
+ function useOpenConfig() {
16945
+ var _usePickerConfig8 = usePickerConfig(),
16946
+ open = _usePickerConfig8.open;
16947
+ return open;
16948
+ }
16954
16949
  function useOnEmojiClickConfig(mouseEventSource) {
16955
16950
  var _ref;
16956
16951
  var _useMutableConfig = useMutableConfig(),
@@ -16959,73 +16954,73 @@ function useOnEmojiClickConfig(mouseEventSource) {
16959
16954
  return handler || function () {};
16960
16955
  }
16961
16956
  function usePreviewConfig() {
16962
- var _usePickerConfig8 = usePickerConfig(),
16963
- previewConfig = _usePickerConfig8.previewConfig;
16957
+ var _usePickerConfig9 = usePickerConfig(),
16958
+ previewConfig = _usePickerConfig9.previewConfig;
16964
16959
  return previewConfig;
16965
16960
  }
16966
16961
  function useThemeConfig() {
16967
- var _usePickerConfig9 = usePickerConfig(),
16968
- theme = _usePickerConfig9.theme;
16962
+ var _usePickerConfig10 = usePickerConfig(),
16963
+ theme = _usePickerConfig10.theme;
16969
16964
  return theme;
16970
16965
  }
16971
16966
  function useSuggestedEmojisModeConfig() {
16972
- var _usePickerConfig10 = usePickerConfig(),
16973
- suggestedEmojisMode = _usePickerConfig10.suggestedEmojisMode;
16967
+ var _usePickerConfig11 = usePickerConfig(),
16968
+ suggestedEmojisMode = _usePickerConfig11.suggestedEmojisMode;
16974
16969
  return suggestedEmojisMode;
16975
16970
  }
16976
16971
  function useLazyLoadEmojisConfig() {
16977
- var _usePickerConfig11 = usePickerConfig(),
16978
- lazyLoadEmojis = _usePickerConfig11.lazyLoadEmojis;
16972
+ var _usePickerConfig12 = usePickerConfig(),
16973
+ lazyLoadEmojis = _usePickerConfig12.lazyLoadEmojis;
16979
16974
  return lazyLoadEmojis;
16980
16975
  }
16981
16976
  function useClassNameConfig() {
16982
- var _usePickerConfig12 = usePickerConfig(),
16983
- className = _usePickerConfig12.className;
16977
+ var _usePickerConfig13 = usePickerConfig(),
16978
+ className = _usePickerConfig13.className;
16984
16979
  return className;
16985
16980
  }
16986
16981
  function useStyleConfig() {
16987
- var _usePickerConfig13 = usePickerConfig(),
16988
- height = _usePickerConfig13.height,
16989
- width = _usePickerConfig13.width,
16990
- style = _usePickerConfig13.style;
16982
+ var _usePickerConfig14 = usePickerConfig(),
16983
+ height = _usePickerConfig14.height,
16984
+ width = _usePickerConfig14.width,
16985
+ style = _usePickerConfig14.style;
16991
16986
  return _extends({
16992
16987
  height: getDimension(height),
16993
16988
  width: getDimension(width)
16994
16989
  }, style);
16995
16990
  }
16996
16991
  function useReactionsOpenConfig() {
16997
- var _usePickerConfig14 = usePickerConfig(),
16998
- reactionsDefaultOpen = _usePickerConfig14.reactionsDefaultOpen;
16992
+ var _usePickerConfig15 = usePickerConfig(),
16993
+ reactionsDefaultOpen = _usePickerConfig15.reactionsDefaultOpen;
16999
16994
  return reactionsDefaultOpen;
17000
16995
  }
17001
16996
  function useEmojiVersionConfig() {
17002
- var _usePickerConfig15 = usePickerConfig(),
17003
- emojiVersion = _usePickerConfig15.emojiVersion;
16997
+ var _usePickerConfig16 = usePickerConfig(),
16998
+ emojiVersion = _usePickerConfig16.emojiVersion;
17004
16999
  return emojiVersion;
17005
17000
  }
17006
17001
  function useSearchDisabledConfig() {
17007
- var _usePickerConfig16 = usePickerConfig(),
17008
- searchDisabled = _usePickerConfig16.searchDisabled;
17002
+ var _usePickerConfig17 = usePickerConfig(),
17003
+ searchDisabled = _usePickerConfig17.searchDisabled;
17009
17004
  return searchDisabled;
17010
17005
  }
17011
17006
  function useSkinTonePickerLocationConfig() {
17012
- var _usePickerConfig17 = usePickerConfig(),
17013
- skinTonePickerLocation = _usePickerConfig17.skinTonePickerLocation;
17007
+ var _usePickerConfig18 = usePickerConfig(),
17008
+ skinTonePickerLocation = _usePickerConfig18.skinTonePickerLocation;
17014
17009
  return skinTonePickerLocation;
17015
17010
  }
17016
17011
  function useUnicodeToHide() {
17017
- var _usePickerConfig18 = usePickerConfig(),
17018
- unicodeToHide = _usePickerConfig18.unicodeToHide;
17012
+ var _usePickerConfig19 = usePickerConfig(),
17013
+ unicodeToHide = _usePickerConfig19.unicodeToHide;
17019
17014
  return unicodeToHide;
17020
17015
  }
17021
17016
  function useReactionsConfig() {
17022
- var _usePickerConfig19 = usePickerConfig(),
17023
- reactions = _usePickerConfig19.reactions;
17017
+ var _usePickerConfig20 = usePickerConfig(),
17018
+ reactions = _usePickerConfig20.reactions;
17024
17019
  return reactions;
17025
17020
  }
17026
17021
  function useGetEmojiUrlConfig() {
17027
- var _usePickerConfig20 = usePickerConfig(),
17028
- getEmojiUrl = _usePickerConfig20.getEmojiUrl;
17022
+ var _usePickerConfig21 = usePickerConfig(),
17023
+ getEmojiUrl = _usePickerConfig21.getEmojiUrl;
17029
17024
  return getEmojiUrl;
17030
17025
  }
17031
17026
  function getDimension(dimensionConfig) {
@@ -18524,6 +18519,18 @@ var styles$6 = /*#__PURE__*/stylesheet.create({
18524
18519
  }
18525
18520
  });
18526
18521
 
18522
+ var isEverMounted = false;
18523
+ function useIsEverMounted() {
18524
+ var _React$useState = useState(isEverMounted),
18525
+ isMounted = _React$useState[0],
18526
+ setIsMounted = _React$useState[1];
18527
+ useEffect(function () {
18528
+ setIsMounted(true);
18529
+ isEverMounted = true;
18530
+ }, []);
18531
+ return isMounted || isEverMounted;
18532
+ }
18533
+
18527
18534
  function Suggested(_ref) {
18528
18535
  var categoryConfig = _ref.categoryConfig;
18529
18536
  var _useUpdateSuggested = useUpdateSuggested(),
@@ -20186,7 +20193,7 @@ function useOnFocus() {
20186
20193
  var _excluded$1 = ["width", "height"];
20187
20194
  function PickerMain(_ref) {
20188
20195
  var children = _ref.children;
20189
- return createElement(PickerContextProvider, null, createElement(PickerStyleTag, null), createElement(PickerRootElement, null, children));
20196
+ return createElement(PickerContextProvider, null, createElement(PickerRootElement, null, children));
20190
20197
  }
20191
20198
  function PickerRootElement(_ref2) {
20192
20199
  var _cx;
@@ -20352,7 +20359,7 @@ var styles$j = /*#__PURE__*/stylesheet.create({
20352
20359
  });
20353
20360
 
20354
20361
  function EmojiPicker(props) {
20355
- return createElement(ElementRefContextProvider, null, createElement(PickerConfigProvider, Object.assign({}, props), createElement(ContentControl, null)));
20362
+ return createElement(ElementRefContextProvider, null, createElement(PickerStyleTag, null), createElement(PickerConfigProvider, Object.assign({}, props), createElement(ContentControl, null)));
20356
20363
  }
20357
20364
  function ContentControl() {
20358
20365
  var _useReactionsModeStat = useReactionsModeState(),
@@ -20360,11 +20367,15 @@ function ContentControl() {
20360
20367
  var _React$useState = useState(!reactionsDefaultOpen),
20361
20368
  renderAll = _React$useState[0],
20362
20369
  setRenderAll = _React$useState[1];
20370
+ var isOpen = useOpenConfig();
20363
20371
  useEffect(function () {
20364
20372
  if (!renderAll) {
20365
20373
  setRenderAll(true);
20366
20374
  }
20367
20375
  }, [renderAll]);
20376
+ if (!isOpen) {
20377
+ return null;
20378
+ }
20368
20379
  return createElement(PickerMain, null, createElement(Reactions, null), renderAll ? createElement(Fragment, null, createElement(Header, null), createElement(Body, null), createElement(Preview, null)) : null);
20369
20380
  }
20370
20381
  // eslint-disable-next-line complexity
@@ -20372,7 +20383,7 @@ var EmojiPickerReact = /*#__PURE__*/memo(EmojiPicker, function (prev, next) {
20372
20383
  var _prev$customEmojis, _next$customEmojis;
20373
20384
  var prevCustomEmojis = (_prev$customEmojis = prev.customEmojis) != null ? _prev$customEmojis : [];
20374
20385
  var nextCustomEmojis = (_next$customEmojis = next.customEmojis) != null ? _next$customEmojis : [];
20375
- 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;
20386
+ 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;
20376
20387
  });
20377
20388
 
20378
20389
  var ErrorBoundary = /*#__PURE__*/function (_React$Component) {