emoji-picker-react 4.7.11 → 4.7.13
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 +2 -2
- package/dist/DomUtils/detectEmojyPartiallyBelowFold.d.ts +2 -0
- package/dist/config/compareConfig.d.ts +2 -0
- package/dist/config/config.d.ts +1 -0
- package/dist/config/useConfig.d.ts +1 -0
- package/dist/emoji-picker-react.cjs.development.js +79 -43
- package/dist/emoji-picker-react.cjs.development.js.map +1 -1
- package/dist/emoji-picker-react.cjs.production.min.js +1 -1
- package/dist/emoji-picker-react.cjs.production.min.js.map +1 -1
- package/dist/emoji-picker-react.esm.js +80 -44
- package/dist/emoji-picker-react.esm.js.map +1 -1
- package/package.json +1 -1
- package/src/DomUtils/detectEmojyPartiallyBelowFold.ts +16 -0
- package/src/EmojiPickerReact.tsx +10 -24
- package/src/components/context/PickerConfigContext.tsx +24 -3
- package/src/components/main/PickerMain.tsx +1 -2
- package/src/config/compareConfig.ts +28 -0
- package/src/config/config.ts +3 -1
- package/src/config/mutableConfig.ts +3 -1
- package/src/config/useConfig.ts +5 -0
- package/src/hooks/useEmojiPreviewEvents.ts +11 -0
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import React__default, { memo, createElement, useState, useEffect,
|
|
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() {
|
|
@@ -180,6 +180,14 @@ function darkMode(key, value) {
|
|
|
180
180
|
};
|
|
181
181
|
}
|
|
182
182
|
|
|
183
|
+
// eslint-disable-next-line complexity
|
|
184
|
+
function compareConfig(prev, next) {
|
|
185
|
+
var _prev$customEmojis, _next$customEmojis;
|
|
186
|
+
var prevCustomEmojis = (_prev$customEmojis = prev.customEmojis) != null ? _prev$customEmojis : [];
|
|
187
|
+
var nextCustomEmojis = (_next$customEmojis = next.customEmojis) != null ? _next$customEmojis : [];
|
|
188
|
+
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;
|
|
189
|
+
}
|
|
190
|
+
|
|
183
191
|
var DEFAULT_REACTIONS = ['1f44d', '2764-fe0f', '1f603', '1f622', '1f64f', '1f44e', '1f621' // 😡
|
|
184
192
|
];
|
|
185
193
|
|
|
@@ -16834,7 +16842,8 @@ function basePickerConfig() {
|
|
|
16834
16842
|
unicodeToHide: new Set(KNOWN_FAILING_EMOJIS),
|
|
16835
16843
|
width: 350,
|
|
16836
16844
|
reactionsDefaultOpen: false,
|
|
16837
|
-
reactions: DEFAULT_REACTIONS
|
|
16845
|
+
reactions: DEFAULT_REACTIONS,
|
|
16846
|
+
open: true
|
|
16838
16847
|
};
|
|
16839
16848
|
}
|
|
16840
16849
|
var basePreviewConfig = {
|
|
@@ -16854,20 +16863,20 @@ function PickerConfigProvider(_ref) {
|
|
|
16854
16863
|
}, children);
|
|
16855
16864
|
}
|
|
16856
16865
|
function useSetConfig(config) {
|
|
16857
|
-
var _config$
|
|
16866
|
+
var _config$customEmojis;
|
|
16858
16867
|
var _React$useState = useState(function () {
|
|
16859
16868
|
return mergeConfig(config);
|
|
16860
16869
|
}),
|
|
16861
16870
|
mergedConfig = _React$useState[0],
|
|
16862
16871
|
setMergedConfig = _React$useState[1];
|
|
16863
16872
|
useEffect(function () {
|
|
16864
|
-
|
|
16865
|
-
|
|
16866
|
-
setMergedConfig(mergeConfig(config));
|
|
16873
|
+
if (compareConfig(mergedConfig, config)) {
|
|
16874
|
+
return;
|
|
16867
16875
|
}
|
|
16876
|
+
setMergedConfig(mergeConfig(config));
|
|
16868
16877
|
// not gonna...
|
|
16869
16878
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
16870
|
-
}, [(_config$
|
|
16879
|
+
}, [(_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]);
|
|
16871
16880
|
return mergedConfig;
|
|
16872
16881
|
}
|
|
16873
16882
|
function usePickerConfig() {
|
|
@@ -16886,7 +16895,8 @@ function useDefineMutableConfig(config) {
|
|
|
16886
16895
|
});
|
|
16887
16896
|
React__default.useEffect(function () {
|
|
16888
16897
|
MutableConfigRef.current.onEmojiClick = config.onEmojiClick || emptyFunc;
|
|
16889
|
-
|
|
16898
|
+
MutableConfigRef.current.onReactionClick = config.onReactionClick || config.onEmojiClick;
|
|
16899
|
+
}, [config.onEmojiClick, config.onReactionClick]);
|
|
16890
16900
|
return MutableConfigRef;
|
|
16891
16901
|
}
|
|
16892
16902
|
function emptyFunc() {}
|
|
@@ -16935,6 +16945,11 @@ function useCustomEmojisConfig() {
|
|
|
16935
16945
|
customEmojis = _usePickerConfig7.customEmojis;
|
|
16936
16946
|
return customEmojis;
|
|
16937
16947
|
}
|
|
16948
|
+
function useOpenConfig() {
|
|
16949
|
+
var _usePickerConfig8 = usePickerConfig(),
|
|
16950
|
+
open = _usePickerConfig8.open;
|
|
16951
|
+
return open;
|
|
16952
|
+
}
|
|
16938
16953
|
function useOnEmojiClickConfig(mouseEventSource) {
|
|
16939
16954
|
var _ref;
|
|
16940
16955
|
var _useMutableConfig = useMutableConfig(),
|
|
@@ -16943,73 +16958,73 @@ function useOnEmojiClickConfig(mouseEventSource) {
|
|
|
16943
16958
|
return handler || function () {};
|
|
16944
16959
|
}
|
|
16945
16960
|
function usePreviewConfig() {
|
|
16946
|
-
var
|
|
16947
|
-
previewConfig =
|
|
16961
|
+
var _usePickerConfig9 = usePickerConfig(),
|
|
16962
|
+
previewConfig = _usePickerConfig9.previewConfig;
|
|
16948
16963
|
return previewConfig;
|
|
16949
16964
|
}
|
|
16950
16965
|
function useThemeConfig() {
|
|
16951
|
-
var
|
|
16952
|
-
theme =
|
|
16966
|
+
var _usePickerConfig10 = usePickerConfig(),
|
|
16967
|
+
theme = _usePickerConfig10.theme;
|
|
16953
16968
|
return theme;
|
|
16954
16969
|
}
|
|
16955
16970
|
function useSuggestedEmojisModeConfig() {
|
|
16956
|
-
var
|
|
16957
|
-
suggestedEmojisMode =
|
|
16971
|
+
var _usePickerConfig11 = usePickerConfig(),
|
|
16972
|
+
suggestedEmojisMode = _usePickerConfig11.suggestedEmojisMode;
|
|
16958
16973
|
return suggestedEmojisMode;
|
|
16959
16974
|
}
|
|
16960
16975
|
function useLazyLoadEmojisConfig() {
|
|
16961
|
-
var
|
|
16962
|
-
lazyLoadEmojis =
|
|
16976
|
+
var _usePickerConfig12 = usePickerConfig(),
|
|
16977
|
+
lazyLoadEmojis = _usePickerConfig12.lazyLoadEmojis;
|
|
16963
16978
|
return lazyLoadEmojis;
|
|
16964
16979
|
}
|
|
16965
16980
|
function useClassNameConfig() {
|
|
16966
|
-
var
|
|
16967
|
-
className =
|
|
16981
|
+
var _usePickerConfig13 = usePickerConfig(),
|
|
16982
|
+
className = _usePickerConfig13.className;
|
|
16968
16983
|
return className;
|
|
16969
16984
|
}
|
|
16970
16985
|
function useStyleConfig() {
|
|
16971
|
-
var
|
|
16972
|
-
height =
|
|
16973
|
-
width =
|
|
16974
|
-
style =
|
|
16986
|
+
var _usePickerConfig14 = usePickerConfig(),
|
|
16987
|
+
height = _usePickerConfig14.height,
|
|
16988
|
+
width = _usePickerConfig14.width,
|
|
16989
|
+
style = _usePickerConfig14.style;
|
|
16975
16990
|
return _extends({
|
|
16976
16991
|
height: getDimension(height),
|
|
16977
16992
|
width: getDimension(width)
|
|
16978
16993
|
}, style);
|
|
16979
16994
|
}
|
|
16980
16995
|
function useReactionsOpenConfig() {
|
|
16981
|
-
var
|
|
16982
|
-
reactionsDefaultOpen =
|
|
16996
|
+
var _usePickerConfig15 = usePickerConfig(),
|
|
16997
|
+
reactionsDefaultOpen = _usePickerConfig15.reactionsDefaultOpen;
|
|
16983
16998
|
return reactionsDefaultOpen;
|
|
16984
16999
|
}
|
|
16985
17000
|
function useEmojiVersionConfig() {
|
|
16986
|
-
var
|
|
16987
|
-
emojiVersion =
|
|
17001
|
+
var _usePickerConfig16 = usePickerConfig(),
|
|
17002
|
+
emojiVersion = _usePickerConfig16.emojiVersion;
|
|
16988
17003
|
return emojiVersion;
|
|
16989
17004
|
}
|
|
16990
17005
|
function useSearchDisabledConfig() {
|
|
16991
|
-
var
|
|
16992
|
-
searchDisabled =
|
|
17006
|
+
var _usePickerConfig17 = usePickerConfig(),
|
|
17007
|
+
searchDisabled = _usePickerConfig17.searchDisabled;
|
|
16993
17008
|
return searchDisabled;
|
|
16994
17009
|
}
|
|
16995
17010
|
function useSkinTonePickerLocationConfig() {
|
|
16996
|
-
var
|
|
16997
|
-
skinTonePickerLocation =
|
|
17011
|
+
var _usePickerConfig18 = usePickerConfig(),
|
|
17012
|
+
skinTonePickerLocation = _usePickerConfig18.skinTonePickerLocation;
|
|
16998
17013
|
return skinTonePickerLocation;
|
|
16999
17014
|
}
|
|
17000
17015
|
function useUnicodeToHide() {
|
|
17001
|
-
var
|
|
17002
|
-
unicodeToHide =
|
|
17016
|
+
var _usePickerConfig19 = usePickerConfig(),
|
|
17017
|
+
unicodeToHide = _usePickerConfig19.unicodeToHide;
|
|
17003
17018
|
return unicodeToHide;
|
|
17004
17019
|
}
|
|
17005
17020
|
function useReactionsConfig() {
|
|
17006
|
-
var
|
|
17007
|
-
reactions =
|
|
17021
|
+
var _usePickerConfig20 = usePickerConfig(),
|
|
17022
|
+
reactions = _usePickerConfig20.reactions;
|
|
17008
17023
|
return reactions;
|
|
17009
17024
|
}
|
|
17010
17025
|
function useGetEmojiUrlConfig() {
|
|
17011
|
-
var
|
|
17012
|
-
getEmojiUrl =
|
|
17026
|
+
var _usePickerConfig21 = usePickerConfig(),
|
|
17027
|
+
getEmojiUrl = _usePickerConfig21.getEmojiUrl;
|
|
17013
17028
|
return getEmojiUrl;
|
|
17014
17029
|
}
|
|
17015
17030
|
function getDimension(dimensionConfig) {
|
|
@@ -18916,6 +18931,16 @@ var styles$9 = /*#__PURE__*/stylesheet.create({
|
|
|
18916
18931
|
}
|
|
18917
18932
|
});
|
|
18918
18933
|
|
|
18934
|
+
function detectEmojyPartiallyBelowFold(button, bodyRef) {
|
|
18935
|
+
if (!button || !bodyRef) {
|
|
18936
|
+
return 0;
|
|
18937
|
+
}
|
|
18938
|
+
var buttonRect = button.getBoundingClientRect();
|
|
18939
|
+
var bodyRect = bodyRef.getBoundingClientRect();
|
|
18940
|
+
// If the element is obscured by at least half of its size
|
|
18941
|
+
return bodyRect.height - (buttonRect.y - bodyRect.y);
|
|
18942
|
+
}
|
|
18943
|
+
|
|
18919
18944
|
function useEmojiPreviewEvents(allow, setPreviewEmoji) {
|
|
18920
18945
|
var BodyRef = useBodyRef();
|
|
18921
18946
|
var isMouseDisallowed = useIsMouseDisallowed();
|
|
@@ -18969,6 +18994,18 @@ function useEmojiPreviewEvents(allow, setPreviewEmoji) {
|
|
|
18969
18994
|
}
|
|
18970
18995
|
var button = buttonFromTarget(e.target);
|
|
18971
18996
|
if (button) {
|
|
18997
|
+
var belowFoldByPx = detectEmojyPartiallyBelowFold(button, bodyRef);
|
|
18998
|
+
var buttonHeight = button.getBoundingClientRect().height;
|
|
18999
|
+
if (belowFoldByPx < buttonHeight / 2) {
|
|
19000
|
+
return;
|
|
19001
|
+
}
|
|
19002
|
+
if (belowFoldByPx < buttonHeight) {
|
|
19003
|
+
button.scrollIntoView({
|
|
19004
|
+
behavior: 'smooth',
|
|
19005
|
+
block: 'end'
|
|
19006
|
+
});
|
|
19007
|
+
return;
|
|
19008
|
+
}
|
|
18972
19009
|
focusElement(button);
|
|
18973
19010
|
}
|
|
18974
19011
|
}
|
|
@@ -20182,7 +20219,7 @@ function useOnFocus() {
|
|
|
20182
20219
|
var _excluded$1 = ["width", "height"];
|
|
20183
20220
|
function PickerMain(_ref) {
|
|
20184
20221
|
var children = _ref.children;
|
|
20185
|
-
return createElement(PickerContextProvider, null, createElement(
|
|
20222
|
+
return createElement(PickerContextProvider, null, createElement(PickerRootElement, null, children));
|
|
20186
20223
|
}
|
|
20187
20224
|
function PickerRootElement(_ref2) {
|
|
20188
20225
|
var _cx;
|
|
@@ -20348,7 +20385,7 @@ var styles$j = /*#__PURE__*/stylesheet.create({
|
|
|
20348
20385
|
});
|
|
20349
20386
|
|
|
20350
20387
|
function EmojiPicker(props) {
|
|
20351
|
-
return createElement(ElementRefContextProvider, null, createElement(PickerConfigProvider, Object.assign({}, props), createElement(ContentControl, null)));
|
|
20388
|
+
return createElement(ElementRefContextProvider, null, createElement(PickerStyleTag, null), createElement(PickerConfigProvider, Object.assign({}, props), createElement(ContentControl, null)));
|
|
20352
20389
|
}
|
|
20353
20390
|
function ContentControl() {
|
|
20354
20391
|
var _useReactionsModeStat = useReactionsModeState(),
|
|
@@ -20356,20 +20393,19 @@ function ContentControl() {
|
|
|
20356
20393
|
var _React$useState = useState(!reactionsDefaultOpen),
|
|
20357
20394
|
renderAll = _React$useState[0],
|
|
20358
20395
|
setRenderAll = _React$useState[1];
|
|
20396
|
+
var isOpen = useOpenConfig();
|
|
20359
20397
|
useEffect(function () {
|
|
20360
20398
|
if (!renderAll) {
|
|
20361
20399
|
setRenderAll(true);
|
|
20362
20400
|
}
|
|
20363
20401
|
}, [renderAll]);
|
|
20402
|
+
if (!isOpen) {
|
|
20403
|
+
return null;
|
|
20404
|
+
}
|
|
20364
20405
|
return createElement(PickerMain, null, createElement(Reactions, null), renderAll ? createElement(Fragment, null, createElement(Header, null), createElement(Body, null), createElement(Preview, null)) : null);
|
|
20365
20406
|
}
|
|
20366
20407
|
// eslint-disable-next-line complexity
|
|
20367
|
-
var EmojiPickerReact = /*#__PURE__*/memo(EmojiPicker,
|
|
20368
|
-
var _prev$customEmojis, _next$customEmojis;
|
|
20369
|
-
var prevCustomEmojis = (_prev$customEmojis = prev.customEmojis) != null ? _prev$customEmojis : [];
|
|
20370
|
-
var nextCustomEmojis = (_next$customEmojis = next.customEmojis) != null ? _next$customEmojis : [];
|
|
20371
|
-
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;
|
|
20372
|
-
});
|
|
20408
|
+
var EmojiPickerReact = /*#__PURE__*/memo(EmojiPicker, compareConfig);
|
|
20373
20409
|
|
|
20374
20410
|
var ErrorBoundary = /*#__PURE__*/function (_React$Component) {
|
|
20375
20411
|
_inheritsLoose(ErrorBoundary, _React$Component);
|