emoji-picker-react 4.7.17 → 4.8.0

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
@@ -88,6 +88,7 @@ The following props are accepted by them picker:
88
88
  | reactionsDefaultOpen | `boolean` | `false` | Controls whether the reactions picker is on the initial mount instead of the main picker component. |
89
89
  | reactions | string[] | - | Controls the reactions to display in the reactions picker. Takes unified emoji ids |
90
90
  | onReactionClick | `Function` | - | Callback function that is called when a reaction is clicked. The function receives the emoji object as a parameter. If not passed, onEmojiClicked is used. |
91
+ | allowExpandReactions | `boolean` | `true` | Controls whether the reactions picker can be expanded to the main picker. |
91
92
 
92
93
  ## Full details
93
94
 
@@ -35,6 +35,7 @@ export declare type PickerConfigInternal = {
35
35
  reactionsDefaultOpen: boolean;
36
36
  reactions: string[];
37
37
  open: boolean;
38
+ allowExpandReactions: boolean;
38
39
  };
39
40
  export declare type PreviewConfig = {
40
41
  defaultEmoji: string;
@@ -9,6 +9,7 @@ export declare enum MOUSE_EVENT_SOURCE {
9
9
  }
10
10
  export declare function useSearchPlaceHolderConfig(): string;
11
11
  export declare function useDefaultSkinToneConfig(): SkinTones;
12
+ export declare function useAllowExpandReactions(): boolean;
12
13
  export declare function useSkinTonesDisabledConfig(): boolean;
13
14
  export declare function useEmojiStyleConfig(): EmojiStyle;
14
15
  export declare function useAutoFocusSearchConfig(): boolean;
@@ -16844,7 +16844,8 @@ function basePickerConfig() {
16844
16844
  width: 350,
16845
16845
  reactionsDefaultOpen: false,
16846
16846
  reactions: DEFAULT_REACTIONS,
16847
- open: true
16847
+ open: true,
16848
+ allowExpandReactions: true
16848
16849
  };
16849
16850
  }
16850
16851
  var basePreviewConfig = {
@@ -16877,7 +16878,7 @@ function useSetConfig(config) {
16877
16878
  setMergedConfig(mergeConfig(config));
16878
16879
  // not gonna...
16879
16880
  // eslint-disable-next-line react-hooks/exhaustive-deps
16880
- }, [(_config$customEmojis = config.customEmojis) == null ? void 0 : _config$customEmojis.length, config.open, config.emojiVersion, config.reactionsDefaultOpen, config.searchPlaceHolder, config.searchPlaceholder, config.defaultSkinTone, config.skinTonesDisabled, config.autoFocusSearch, config.emojiStyle, config.theme, config.suggestedEmojisMode, config.lazyLoadEmojis, config.className, config.height, config.width, config.searchDisabled, config.skinTonePickerLocation]);
16881
+ }, [(_config$customEmojis = config.customEmojis) == null ? void 0 : _config$customEmojis.length, config.open, config.emojiVersion, config.reactionsDefaultOpen, config.searchPlaceHolder, config.searchPlaceholder, config.defaultSkinTone, config.skinTonesDisabled, config.autoFocusSearch, config.emojiStyle, config.theme, config.suggestedEmojisMode, config.lazyLoadEmojis, config.className, config.height, config.width, config.searchDisabled, config.skinTonePickerLocation, config.allowExpandReactions]);
16881
16882
  return mergedConfig;
16882
16883
  }
16883
16884
  function usePickerConfig() {
@@ -16921,34 +16922,39 @@ function useDefaultSkinToneConfig() {
16921
16922
  defaultSkinTone = _usePickerConfig2.defaultSkinTone;
16922
16923
  return defaultSkinTone;
16923
16924
  }
16924
- function useSkinTonesDisabledConfig() {
16925
+ function useAllowExpandReactions() {
16925
16926
  var _usePickerConfig3 = usePickerConfig(),
16926
- skinTonesDisabled = _usePickerConfig3.skinTonesDisabled;
16927
+ allowExpandReactions = _usePickerConfig3.allowExpandReactions;
16928
+ return allowExpandReactions;
16929
+ }
16930
+ function useSkinTonesDisabledConfig() {
16931
+ var _usePickerConfig4 = usePickerConfig(),
16932
+ skinTonesDisabled = _usePickerConfig4.skinTonesDisabled;
16927
16933
  return skinTonesDisabled;
16928
16934
  }
16929
16935
  function useEmojiStyleConfig() {
16930
- var _usePickerConfig4 = usePickerConfig(),
16931
- emojiStyle = _usePickerConfig4.emojiStyle;
16936
+ var _usePickerConfig5 = usePickerConfig(),
16937
+ emojiStyle = _usePickerConfig5.emojiStyle;
16932
16938
  return emojiStyle;
16933
16939
  }
16934
16940
  function useAutoFocusSearchConfig() {
16935
- var _usePickerConfig5 = usePickerConfig(),
16936
- autoFocusSearch = _usePickerConfig5.autoFocusSearch;
16941
+ var _usePickerConfig6 = usePickerConfig(),
16942
+ autoFocusSearch = _usePickerConfig6.autoFocusSearch;
16937
16943
  return autoFocusSearch;
16938
16944
  }
16939
16945
  function useCategoriesConfig() {
16940
- var _usePickerConfig6 = usePickerConfig(),
16941
- categories = _usePickerConfig6.categories;
16946
+ var _usePickerConfig7 = usePickerConfig(),
16947
+ categories = _usePickerConfig7.categories;
16942
16948
  return categories;
16943
16949
  }
16944
16950
  function useCustomEmojisConfig() {
16945
- var _usePickerConfig7 = usePickerConfig(),
16946
- customEmojis = _usePickerConfig7.customEmojis;
16951
+ var _usePickerConfig8 = usePickerConfig(),
16952
+ customEmojis = _usePickerConfig8.customEmojis;
16947
16953
  return customEmojis;
16948
16954
  }
16949
16955
  function useOpenConfig() {
16950
- var _usePickerConfig8 = usePickerConfig(),
16951
- open = _usePickerConfig8.open;
16956
+ var _usePickerConfig9 = usePickerConfig(),
16957
+ open = _usePickerConfig9.open;
16952
16958
  return open;
16953
16959
  }
16954
16960
  function useOnEmojiClickConfig(mouseEventSource) {
@@ -16959,73 +16965,73 @@ function useOnEmojiClickConfig(mouseEventSource) {
16959
16965
  return handler || function () {};
16960
16966
  }
16961
16967
  function usePreviewConfig() {
16962
- var _usePickerConfig9 = usePickerConfig(),
16963
- previewConfig = _usePickerConfig9.previewConfig;
16968
+ var _usePickerConfig10 = usePickerConfig(),
16969
+ previewConfig = _usePickerConfig10.previewConfig;
16964
16970
  return previewConfig;
16965
16971
  }
16966
16972
  function useThemeConfig() {
16967
- var _usePickerConfig10 = usePickerConfig(),
16968
- theme = _usePickerConfig10.theme;
16973
+ var _usePickerConfig11 = usePickerConfig(),
16974
+ theme = _usePickerConfig11.theme;
16969
16975
  return theme;
16970
16976
  }
16971
16977
  function useSuggestedEmojisModeConfig() {
16972
- var _usePickerConfig11 = usePickerConfig(),
16973
- suggestedEmojisMode = _usePickerConfig11.suggestedEmojisMode;
16978
+ var _usePickerConfig12 = usePickerConfig(),
16979
+ suggestedEmojisMode = _usePickerConfig12.suggestedEmojisMode;
16974
16980
  return suggestedEmojisMode;
16975
16981
  }
16976
16982
  function useLazyLoadEmojisConfig() {
16977
- var _usePickerConfig12 = usePickerConfig(),
16978
- lazyLoadEmojis = _usePickerConfig12.lazyLoadEmojis;
16983
+ var _usePickerConfig13 = usePickerConfig(),
16984
+ lazyLoadEmojis = _usePickerConfig13.lazyLoadEmojis;
16979
16985
  return lazyLoadEmojis;
16980
16986
  }
16981
16987
  function useClassNameConfig() {
16982
- var _usePickerConfig13 = usePickerConfig(),
16983
- className = _usePickerConfig13.className;
16988
+ var _usePickerConfig14 = usePickerConfig(),
16989
+ className = _usePickerConfig14.className;
16984
16990
  return className;
16985
16991
  }
16986
16992
  function useStyleConfig() {
16987
- var _usePickerConfig14 = usePickerConfig(),
16988
- height = _usePickerConfig14.height,
16989
- width = _usePickerConfig14.width,
16990
- style = _usePickerConfig14.style;
16993
+ var _usePickerConfig15 = usePickerConfig(),
16994
+ height = _usePickerConfig15.height,
16995
+ width = _usePickerConfig15.width,
16996
+ style = _usePickerConfig15.style;
16991
16997
  return _extends({
16992
16998
  height: getDimension(height),
16993
16999
  width: getDimension(width)
16994
17000
  }, style);
16995
17001
  }
16996
17002
  function useReactionsOpenConfig() {
16997
- var _usePickerConfig15 = usePickerConfig(),
16998
- reactionsDefaultOpen = _usePickerConfig15.reactionsDefaultOpen;
17003
+ var _usePickerConfig16 = usePickerConfig(),
17004
+ reactionsDefaultOpen = _usePickerConfig16.reactionsDefaultOpen;
16999
17005
  return reactionsDefaultOpen;
17000
17006
  }
17001
17007
  function useEmojiVersionConfig() {
17002
- var _usePickerConfig16 = usePickerConfig(),
17003
- emojiVersion = _usePickerConfig16.emojiVersion;
17008
+ var _usePickerConfig17 = usePickerConfig(),
17009
+ emojiVersion = _usePickerConfig17.emojiVersion;
17004
17010
  return emojiVersion;
17005
17011
  }
17006
17012
  function useSearchDisabledConfig() {
17007
- var _usePickerConfig17 = usePickerConfig(),
17008
- searchDisabled = _usePickerConfig17.searchDisabled;
17013
+ var _usePickerConfig18 = usePickerConfig(),
17014
+ searchDisabled = _usePickerConfig18.searchDisabled;
17009
17015
  return searchDisabled;
17010
17016
  }
17011
17017
  function useSkinTonePickerLocationConfig() {
17012
- var _usePickerConfig18 = usePickerConfig(),
17013
- skinTonePickerLocation = _usePickerConfig18.skinTonePickerLocation;
17018
+ var _usePickerConfig19 = usePickerConfig(),
17019
+ skinTonePickerLocation = _usePickerConfig19.skinTonePickerLocation;
17014
17020
  return skinTonePickerLocation;
17015
17021
  }
17016
17022
  function useUnicodeToHide() {
17017
- var _usePickerConfig19 = usePickerConfig(),
17018
- unicodeToHide = _usePickerConfig19.unicodeToHide;
17023
+ var _usePickerConfig20 = usePickerConfig(),
17024
+ unicodeToHide = _usePickerConfig20.unicodeToHide;
17019
17025
  return unicodeToHide;
17020
17026
  }
17021
17027
  function useReactionsConfig() {
17022
- var _usePickerConfig20 = usePickerConfig(),
17023
- reactions = _usePickerConfig20.reactions;
17028
+ var _usePickerConfig21 = usePickerConfig(),
17029
+ reactions = _usePickerConfig21.reactions;
17024
17030
  return reactions;
17025
17031
  }
17026
17032
  function useGetEmojiUrlConfig() {
17027
- var _usePickerConfig21 = usePickerConfig(),
17028
- getEmojiUrl = _usePickerConfig21.getEmojiUrl;
17033
+ var _usePickerConfig22 = usePickerConfig(),
17034
+ getEmojiUrl = _usePickerConfig22.getEmojiUrl;
17029
17035
  return getEmojiUrl;
17030
17036
  }
17031
17037
  function getDimension(dimensionConfig) {
@@ -19090,6 +19096,7 @@ function Reactions() {
19090
19096
  var reactions = useReactionsConfig();
19091
19097
  useMouseDownHandlers(ReactionsRef, MOUSE_EVENT_SOURCE.REACTIONS);
19092
19098
  var emojiStyle = useEmojiStyleConfig();
19099
+ var allowExpandReactions = useAllowExpandReactions();
19093
19100
  if (!reactionsOpen) {
19094
19101
  return null;
19095
19102
  }
@@ -19107,7 +19114,7 @@ function Reactions() {
19107
19114
  className: flairup.cx(styles$6.emojiButton),
19108
19115
  noBackground: true
19109
19116
  }));
19110
- }), React.createElement("li", null, React.createElement(BtnPlus, null)));
19117
+ }), allowExpandReactions ? React.createElement("li", null, React.createElement(BtnPlus, null)) : null);
19111
19118
  }
19112
19119
  var styles$6 = /*#__PURE__*/stylesheet.create({
19113
19120
  list: {
@@ -19603,15 +19610,8 @@ function useEmojiPreviewEvents(allow, setPreviewEmoji) {
19603
19610
  if (button) {
19604
19611
  var belowFoldByPx = detectEmojyPartiallyBelowFold(button, bodyRef);
19605
19612
  var buttonHeight = button.getBoundingClientRect().height;
19606
- if (belowFoldByPx < buttonHeight / 2) {
19607
- return handlePartiallyVisibleElementFocus(button, setPreviewEmoji);
19608
- }
19609
19613
  if (belowFoldByPx < buttonHeight) {
19610
- button.scrollIntoView({
19611
- behavior: 'smooth',
19612
- block: 'end'
19613
- });
19614
- return;
19614
+ return handlePartiallyVisibleElementFocus(button, setPreviewEmoji);
19615
19615
  }
19616
19616
  focusElement(button);
19617
19617
  }
@@ -20427,19 +20427,32 @@ function EmojiPicker(props) {
20427
20427
  function ContentControl() {
20428
20428
  var _useReactionsModeStat = useReactionsModeState(),
20429
20429
  reactionsDefaultOpen = _useReactionsModeStat[0];
20430
+ var allowExpandReactions = useAllowExpandReactions();
20430
20431
  var _React$useState = React.useState(!reactionsDefaultOpen),
20431
20432
  renderAll = _React$useState[0],
20432
20433
  setRenderAll = _React$useState[1];
20433
20434
  var isOpen = useOpenConfig();
20434
20435
  React.useEffect(function () {
20436
+ if (reactionsDefaultOpen && !allowExpandReactions) {
20437
+ return;
20438
+ }
20435
20439
  if (!renderAll) {
20436
20440
  setRenderAll(true);
20437
20441
  }
20438
- }, [renderAll]);
20442
+ }, [renderAll, allowExpandReactions, reactionsDefaultOpen]);
20439
20443
  if (!isOpen) {
20440
20444
  return null;
20441
20445
  }
20442
- 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);
20446
+ return React.createElement(PickerMain, null, React.createElement(Reactions, null), React.createElement(ExpandedPickerContent, {
20447
+ renderAll: renderAll
20448
+ }));
20449
+ }
20450
+ function ExpandedPickerContent(_ref) {
20451
+ var renderAll = _ref.renderAll;
20452
+ if (!renderAll) {
20453
+ return null;
20454
+ }
20455
+ return React.createElement(React.Fragment, null, React.createElement(Header, null), React.createElement(Body, null), React.createElement(Preview, null));
20443
20456
  }
20444
20457
  // eslint-disable-next-line complexity
20445
20458
  var EmojiPickerReact = /*#__PURE__*/React.memo(EmojiPicker, compareConfig);