emoji-picker-react 4.15.0 → 4.15.2
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/dist/components/body/MeasureEmoji.d.ts +2 -0
- package/dist/components/context/PickerContext.d.ts +1 -0
- package/dist/emoji-picker-react.cjs.development.js +177 -119
- 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 +178 -120
- package/dist/emoji-picker-react.esm.js.map +1 -1
- package/package.json +1 -1
- package/src/components/body/EmojiCategory.tsx +2 -0
- package/src/components/body/EmojiList.tsx +2 -0
- package/src/components/body/MeasureEmoji.tsx +74 -0
- package/src/components/context/PickerContext.tsx +11 -2
- package/src/hooks/useActiveCategoryScrollDetection.ts +13 -4
- package/src/hooks/useCategoryHeight.ts +18 -12
- package/src/hooks/useEmojiVirtualization.tsx +15 -12
|
@@ -19,6 +19,7 @@ export declare function useEmojiVariationPickerState(): ReactState<DataEmoji | n
|
|
|
19
19
|
export declare function useSkinToneFanOpenState(): ReactState<boolean>;
|
|
20
20
|
export declare function useDisallowedEmojisRef(): React.MutableRefObject<Record<string, boolean>>;
|
|
21
21
|
export declare function useVisibleCategoriesState(): ReactState<string[]>;
|
|
22
|
+
export declare function useEmojiSizeState(): ReactState<number | null>;
|
|
22
23
|
export declare function useUpdateSuggested(): [number, () => void];
|
|
23
24
|
export declare type FilterState = Record<string, FilterDict>;
|
|
24
25
|
export {};
|
|
@@ -8,74 +8,60 @@ var React = require('react');
|
|
|
8
8
|
var React__default = _interopDefault(React);
|
|
9
9
|
var flairup = require('flairup');
|
|
10
10
|
|
|
11
|
+
function _arrayLikeToArray(r, a) {
|
|
12
|
+
(null == a || a > r.length) && (a = r.length);
|
|
13
|
+
for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];
|
|
14
|
+
return n;
|
|
15
|
+
}
|
|
16
|
+
function _createForOfIteratorHelperLoose(r, e) {
|
|
17
|
+
var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"];
|
|
18
|
+
if (t) return (t = t.call(r)).next.bind(t);
|
|
19
|
+
if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) {
|
|
20
|
+
t && (r = t);
|
|
21
|
+
var o = 0;
|
|
22
|
+
return function () {
|
|
23
|
+
return o >= r.length ? {
|
|
24
|
+
done: !0
|
|
25
|
+
} : {
|
|
26
|
+
done: !1,
|
|
27
|
+
value: r[o++]
|
|
28
|
+
};
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
|
|
32
|
+
}
|
|
11
33
|
function _extends() {
|
|
12
|
-
_extends = Object.assign ? Object.assign.bind() : function (
|
|
13
|
-
for (var
|
|
14
|
-
var
|
|
15
|
-
for (var
|
|
16
|
-
if (Object.prototype.hasOwnProperty.call(source, key)) {
|
|
17
|
-
target[key] = source[key];
|
|
18
|
-
}
|
|
19
|
-
}
|
|
34
|
+
return _extends = Object.assign ? Object.assign.bind() : function (n) {
|
|
35
|
+
for (var e = 1; e < arguments.length; e++) {
|
|
36
|
+
var t = arguments[e];
|
|
37
|
+
for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);
|
|
20
38
|
}
|
|
21
|
-
return
|
|
22
|
-
};
|
|
23
|
-
return _extends.apply(this, arguments);
|
|
39
|
+
return n;
|
|
40
|
+
}, _extends.apply(null, arguments);
|
|
24
41
|
}
|
|
25
|
-
function _inheritsLoose(
|
|
26
|
-
|
|
27
|
-
subClass.prototype.constructor = subClass;
|
|
28
|
-
_setPrototypeOf(subClass, superClass);
|
|
42
|
+
function _inheritsLoose(t, o) {
|
|
43
|
+
t.prototype = Object.create(o.prototype), t.prototype.constructor = t, _setPrototypeOf(t, o);
|
|
29
44
|
}
|
|
30
|
-
function
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
}
|
|
37
|
-
function _objectWithoutPropertiesLoose(source, excluded) {
|
|
38
|
-
if (source == null) return {};
|
|
39
|
-
var target = {};
|
|
40
|
-
var sourceKeys = Object.keys(source);
|
|
41
|
-
var key, i;
|
|
42
|
-
for (i = 0; i < sourceKeys.length; i++) {
|
|
43
|
-
key = sourceKeys[i];
|
|
44
|
-
if (excluded.indexOf(key) >= 0) continue;
|
|
45
|
-
target[key] = source[key];
|
|
45
|
+
function _objectWithoutPropertiesLoose(r, e) {
|
|
46
|
+
if (null == r) return {};
|
|
47
|
+
var t = {};
|
|
48
|
+
for (var n in r) if ({}.hasOwnProperty.call(r, n)) {
|
|
49
|
+
if (-1 !== e.indexOf(n)) continue;
|
|
50
|
+
t[n] = r[n];
|
|
46
51
|
}
|
|
47
|
-
return
|
|
48
|
-
}
|
|
49
|
-
function _unsupportedIterableToArray(o, minLen) {
|
|
50
|
-
if (!o) return;
|
|
51
|
-
if (typeof o === "string") return _arrayLikeToArray(o, minLen);
|
|
52
|
-
var n = Object.prototype.toString.call(o).slice(8, -1);
|
|
53
|
-
if (n === "Object" && o.constructor) n = o.constructor.name;
|
|
54
|
-
if (n === "Map" || n === "Set") return Array.from(o);
|
|
55
|
-
if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);
|
|
52
|
+
return t;
|
|
56
53
|
}
|
|
57
|
-
function
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
54
|
+
function _setPrototypeOf(t, e) {
|
|
55
|
+
return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) {
|
|
56
|
+
return t.__proto__ = e, t;
|
|
57
|
+
}, _setPrototypeOf(t, e);
|
|
61
58
|
}
|
|
62
|
-
function
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
var i = 0;
|
|
68
|
-
return function () {
|
|
69
|
-
if (i >= o.length) return {
|
|
70
|
-
done: true
|
|
71
|
-
};
|
|
72
|
-
return {
|
|
73
|
-
done: false,
|
|
74
|
-
value: o[i++]
|
|
75
|
-
};
|
|
76
|
-
};
|
|
59
|
+
function _unsupportedIterableToArray(r, a) {
|
|
60
|
+
if (r) {
|
|
61
|
+
if ("string" == typeof r) return _arrayLikeToArray(r, a);
|
|
62
|
+
var t = {}.toString.call(r).slice(8, -1);
|
|
63
|
+
return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0;
|
|
77
64
|
}
|
|
78
|
-
throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
|
|
79
65
|
}
|
|
80
66
|
|
|
81
67
|
var ClassNames;
|
|
@@ -340,6 +326,7 @@ function PickerContextProvider(_ref) {
|
|
|
340
326
|
isPastInitialLoad = _useState[0],
|
|
341
327
|
setIsPastInitialLoad = _useState[1];
|
|
342
328
|
var visibleCategoriesState = React.useState([]);
|
|
329
|
+
var emojiSizeState = React.useState(null);
|
|
343
330
|
useMarkInitialLoad(setIsPastInitialLoad);
|
|
344
331
|
return React.createElement(PickerContext.Provider, {
|
|
345
332
|
value: {
|
|
@@ -356,7 +343,8 @@ function PickerContextProvider(_ref) {
|
|
|
356
343
|
skinToneFanOpenState: skinToneFanOpenState,
|
|
357
344
|
suggestedUpdateState: suggestedUpdateState,
|
|
358
345
|
reactionsModeState: reactionsModeState,
|
|
359
|
-
visibleCategoriesState: visibleCategoriesState
|
|
346
|
+
visibleCategoriesState: visibleCategoriesState,
|
|
347
|
+
emojiSizeState: emojiSizeState
|
|
360
348
|
}
|
|
361
349
|
}, children);
|
|
362
350
|
}
|
|
@@ -388,7 +376,8 @@ var PickerContext = /*#__PURE__*/React.createContext({
|
|
|
388
376
|
reactionsModeState: [false, function () {}],
|
|
389
377
|
visibleCategoriesState: [[], function () {
|
|
390
378
|
return [];
|
|
391
|
-
}]
|
|
379
|
+
}],
|
|
380
|
+
emojiSizeState: [null, function () {}]
|
|
392
381
|
});
|
|
393
382
|
function useFilterRef() {
|
|
394
383
|
var _React$useContext = React.useContext(PickerContext),
|
|
@@ -431,18 +420,23 @@ function useEmojiVariationPickerState() {
|
|
|
431
420
|
return emojiVariationPickerState;
|
|
432
421
|
}
|
|
433
422
|
function useSkinToneFanOpenState() {
|
|
434
|
-
var _React$
|
|
435
|
-
skinToneFanOpenState = _React$
|
|
423
|
+
var _React$useContext0 = React.useContext(PickerContext),
|
|
424
|
+
skinToneFanOpenState = _React$useContext0.skinToneFanOpenState;
|
|
436
425
|
return skinToneFanOpenState;
|
|
437
426
|
}
|
|
438
427
|
function useVisibleCategoriesState() {
|
|
439
|
-
var _React$
|
|
440
|
-
visibleCategoriesState = _React$
|
|
428
|
+
var _React$useContext10 = React.useContext(PickerContext),
|
|
429
|
+
visibleCategoriesState = _React$useContext10.visibleCategoriesState;
|
|
441
430
|
return visibleCategoriesState;
|
|
442
431
|
}
|
|
432
|
+
function useEmojiSizeState() {
|
|
433
|
+
var _React$useContext11 = React.useContext(PickerContext),
|
|
434
|
+
emojiSizeState = _React$useContext11.emojiSizeState;
|
|
435
|
+
return emojiSizeState;
|
|
436
|
+
}
|
|
443
437
|
function useUpdateSuggested() {
|
|
444
|
-
var _React$
|
|
445
|
-
suggestedUpdateState = _React$
|
|
438
|
+
var _React$useContext12 = React.useContext(PickerContext),
|
|
439
|
+
suggestedUpdateState = _React$useContext12.suggestedUpdateState;
|
|
446
440
|
var suggestedUpdated = suggestedUpdateState[0],
|
|
447
441
|
setsuggestedUpdate = suggestedUpdateState[1];
|
|
448
442
|
return [suggestedUpdated, function updateSuggested() {
|
|
@@ -17608,7 +17602,7 @@ var basePreviewConfig = {
|
|
|
17608
17602
|
};
|
|
17609
17603
|
|
|
17610
17604
|
var _excluded = ["children"];
|
|
17611
|
-
var ConfigContext = /*#__PURE__*/React.createContext(
|
|
17605
|
+
var ConfigContext = /*#__PURE__*/React.createContext(/*#__PURE__*/basePickerConfig());
|
|
17612
17606
|
function PickerConfigProvider(_ref) {
|
|
17613
17607
|
var children = _ref.children,
|
|
17614
17608
|
config = _objectWithoutPropertiesLoose(_ref, _excluded);
|
|
@@ -17752,73 +17746,73 @@ function useOnSkinToneChangeConfig() {
|
|
|
17752
17746
|
return current.onSkinToneChange || function () {};
|
|
17753
17747
|
}
|
|
17754
17748
|
function usePreviewConfig() {
|
|
17755
|
-
var
|
|
17756
|
-
previewConfig =
|
|
17749
|
+
var _usePickerConfig0 = usePickerConfig(),
|
|
17750
|
+
previewConfig = _usePickerConfig0.previewConfig;
|
|
17757
17751
|
return previewConfig;
|
|
17758
17752
|
}
|
|
17759
17753
|
function useThemeConfig() {
|
|
17760
|
-
var
|
|
17761
|
-
theme =
|
|
17754
|
+
var _usePickerConfig1 = usePickerConfig(),
|
|
17755
|
+
theme = _usePickerConfig1.theme;
|
|
17762
17756
|
return theme;
|
|
17763
17757
|
}
|
|
17764
17758
|
function useSuggestedEmojisModeConfig() {
|
|
17765
|
-
var
|
|
17766
|
-
suggestedEmojisMode =
|
|
17759
|
+
var _usePickerConfig10 = usePickerConfig(),
|
|
17760
|
+
suggestedEmojisMode = _usePickerConfig10.suggestedEmojisMode;
|
|
17767
17761
|
return suggestedEmojisMode;
|
|
17768
17762
|
}
|
|
17769
17763
|
function useLazyLoadEmojisConfig() {
|
|
17770
|
-
var
|
|
17771
|
-
lazyLoadEmojis =
|
|
17764
|
+
var _usePickerConfig11 = usePickerConfig(),
|
|
17765
|
+
lazyLoadEmojis = _usePickerConfig11.lazyLoadEmojis;
|
|
17772
17766
|
return lazyLoadEmojis;
|
|
17773
17767
|
}
|
|
17774
17768
|
function useClassNameConfig() {
|
|
17775
|
-
var
|
|
17776
|
-
className =
|
|
17769
|
+
var _usePickerConfig12 = usePickerConfig(),
|
|
17770
|
+
className = _usePickerConfig12.className;
|
|
17777
17771
|
return className;
|
|
17778
17772
|
}
|
|
17779
17773
|
function useStyleConfig() {
|
|
17780
|
-
var
|
|
17781
|
-
height =
|
|
17782
|
-
width =
|
|
17783
|
-
style =
|
|
17774
|
+
var _usePickerConfig13 = usePickerConfig(),
|
|
17775
|
+
height = _usePickerConfig13.height,
|
|
17776
|
+
width = _usePickerConfig13.width,
|
|
17777
|
+
style = _usePickerConfig13.style;
|
|
17784
17778
|
return _extends({
|
|
17785
17779
|
height: getDimension(height),
|
|
17786
17780
|
width: getDimension(width)
|
|
17787
17781
|
}, style);
|
|
17788
17782
|
}
|
|
17789
17783
|
function useReactionsOpenConfig() {
|
|
17790
|
-
var
|
|
17791
|
-
reactionsDefaultOpen =
|
|
17784
|
+
var _usePickerConfig14 = usePickerConfig(),
|
|
17785
|
+
reactionsDefaultOpen = _usePickerConfig14.reactionsDefaultOpen;
|
|
17792
17786
|
return reactionsDefaultOpen;
|
|
17793
17787
|
}
|
|
17794
17788
|
function useEmojiVersionConfig() {
|
|
17795
|
-
var
|
|
17796
|
-
emojiVersion =
|
|
17789
|
+
var _usePickerConfig15 = usePickerConfig(),
|
|
17790
|
+
emojiVersion = _usePickerConfig15.emojiVersion;
|
|
17797
17791
|
return emojiVersion;
|
|
17798
17792
|
}
|
|
17799
17793
|
function useSearchDisabledConfig() {
|
|
17800
|
-
var
|
|
17801
|
-
searchDisabled =
|
|
17794
|
+
var _usePickerConfig16 = usePickerConfig(),
|
|
17795
|
+
searchDisabled = _usePickerConfig16.searchDisabled;
|
|
17802
17796
|
return searchDisabled;
|
|
17803
17797
|
}
|
|
17804
17798
|
function useSkinTonePickerLocationConfig() {
|
|
17805
|
-
var
|
|
17806
|
-
skinTonePickerLocation =
|
|
17799
|
+
var _usePickerConfig17 = usePickerConfig(),
|
|
17800
|
+
skinTonePickerLocation = _usePickerConfig17.skinTonePickerLocation;
|
|
17807
17801
|
return skinTonePickerLocation;
|
|
17808
17802
|
}
|
|
17809
17803
|
function useUnicodeToHide() {
|
|
17810
|
-
var
|
|
17811
|
-
unicodeToHide =
|
|
17804
|
+
var _usePickerConfig18 = usePickerConfig(),
|
|
17805
|
+
unicodeToHide = _usePickerConfig18.unicodeToHide;
|
|
17812
17806
|
return unicodeToHide;
|
|
17813
17807
|
}
|
|
17814
17808
|
function useReactionsConfig() {
|
|
17815
|
-
var
|
|
17816
|
-
reactions =
|
|
17809
|
+
var _usePickerConfig19 = usePickerConfig(),
|
|
17810
|
+
reactions = _usePickerConfig19.reactions;
|
|
17817
17811
|
return reactions;
|
|
17818
17812
|
}
|
|
17819
17813
|
function useGetEmojiUrlConfig() {
|
|
17820
|
-
var
|
|
17821
|
-
getEmojiUrl =
|
|
17814
|
+
var _usePickerConfig20 = usePickerConfig(),
|
|
17815
|
+
getEmojiUrl = _usePickerConfig20.getEmojiUrl;
|
|
17822
17816
|
return getEmojiUrl;
|
|
17823
17817
|
}
|
|
17824
17818
|
function getDimension(dimensionConfig) {
|
|
@@ -19613,7 +19607,7 @@ function BtnPlus() {
|
|
|
19613
19607
|
}
|
|
19614
19608
|
});
|
|
19615
19609
|
}
|
|
19616
|
-
var styles$5 = /*#__PURE__*/stylesheet.create(
|
|
19610
|
+
var styles$5 = /*#__PURE__*/stylesheet.create(/*#__PURE__*/_extends({
|
|
19617
19611
|
plusSign: {
|
|
19618
19612
|
fontSize: '20px',
|
|
19619
19613
|
padding: '17px',
|
|
@@ -19760,7 +19754,7 @@ function getEmojiPositionStyle(dimensions, index) {
|
|
|
19760
19754
|
} : undefined;
|
|
19761
19755
|
}
|
|
19762
19756
|
|
|
19763
|
-
var EMOJI_SIZE_DEFAULT =
|
|
19757
|
+
var EMOJI_SIZE_DEFAULT = 40;
|
|
19764
19758
|
function useCategoryHeight(emojiCount) {
|
|
19765
19759
|
var EmojiListRef = useEmojiListRef();
|
|
19766
19760
|
var _useReactionsModeStat = useReactionsModeState(),
|
|
@@ -19769,18 +19763,21 @@ function useCategoryHeight(emojiCount) {
|
|
|
19769
19763
|
var emojiSizeRef = React.useRef();
|
|
19770
19764
|
var _useVisibleCategories = useVisibleCategoriesState(),
|
|
19771
19765
|
visibleCategories = _useVisibleCategories[0];
|
|
19766
|
+
var _useEmojiSizeState = useEmojiSizeState(),
|
|
19767
|
+
emojiSizeFromContext = _useEmojiSizeState[0];
|
|
19772
19768
|
var _React$useState = React.useState(),
|
|
19773
19769
|
dimensions = _React$useState[0],
|
|
19774
19770
|
setDimensions = _React$useState[1];
|
|
19775
19771
|
// Helper to compute and store dimensions based on current DOM
|
|
19776
19772
|
var computeAndSetDimensions = React.useCallback(function () {
|
|
19777
|
-
var _ref;
|
|
19778
19773
|
var listEl = EmojiListRef.current;
|
|
19779
19774
|
if (!listEl) return;
|
|
19780
19775
|
var emojiElement = listEl.querySelector(EmojiButtonSelector);
|
|
19781
19776
|
var measured = emojiElement == null ? void 0 : emojiElement.clientHeight;
|
|
19782
|
-
|
|
19783
|
-
|
|
19777
|
+
if (measured) {
|
|
19778
|
+
emojiSizeRef.current = measured;
|
|
19779
|
+
}
|
|
19780
|
+
var emojiSize = emojiSizeFromContext || measured || emojiSizeRef.current || EMOJI_SIZE_DEFAULT;
|
|
19784
19781
|
var pickerWidth = listEl.clientWidth;
|
|
19785
19782
|
if (pickerWidth === 0 || emojiSize === 0) return;
|
|
19786
19783
|
var emojisPerRow = Math.max(1, Math.floor(pickerWidth / emojiSize));
|
|
@@ -19791,7 +19788,7 @@ function useCategoryHeight(emojiCount) {
|
|
|
19791
19788
|
emojisPerRow: emojisPerRow,
|
|
19792
19789
|
emojiSize: emojiSize
|
|
19793
19790
|
});
|
|
19794
|
-
}, [EmojiListRef, emojiCount]);
|
|
19791
|
+
}, [EmojiListRef, emojiCount, emojiSizeFromContext]);
|
|
19795
19792
|
// Recompute on data-count changes and when reactions mode toggles
|
|
19796
19793
|
React.useEffect(function () {
|
|
19797
19794
|
computeAndSetDimensions();
|
|
@@ -19871,17 +19868,20 @@ function useEmojiVirtualization(_ref) {
|
|
|
19871
19868
|
onHeightReady(dimensions.categoryHeight);
|
|
19872
19869
|
}
|
|
19873
19870
|
}, [dimensions, onHeightReady, emojisToPush.length]);
|
|
19874
|
-
var
|
|
19871
|
+
var isVirtualized = function isVirtualized(style) {
|
|
19875
19872
|
var _BodyRef$current$clie, _BodyRef$current;
|
|
19876
|
-
|
|
19877
|
-
var style = getEmojiPositionStyle(dimensions, index);
|
|
19878
|
-
if (dimensions && BodyRef.current && shouldVirtualize({
|
|
19873
|
+
return dimensions && BodyRef.current && shouldVirtualize({
|
|
19879
19874
|
scrollTop: scrollTop,
|
|
19880
19875
|
clientHeight: (_BodyRef$current$clie = (_BodyRef$current = BodyRef.current) == null ? void 0 : _BodyRef$current.clientHeight) != null ? _BodyRef$current$clie : 0,
|
|
19881
19876
|
topOffset: topOffset,
|
|
19882
19877
|
style: style,
|
|
19883
19878
|
dimensions: dimensions
|
|
19884
|
-
})
|
|
19879
|
+
});
|
|
19880
|
+
};
|
|
19881
|
+
var emojis = emojisToPush.reduce(function (accumulator, emoji, index) {
|
|
19882
|
+
var unified = emojiUnified(emoji, activeSkinTone);
|
|
19883
|
+
var style = getEmojiPositionStyle(dimensions, index);
|
|
19884
|
+
if (isVirtualized(style)) {
|
|
19885
19885
|
var _BodyRef$current$clie2, _BodyRef$current2;
|
|
19886
19886
|
virtualizedCounter++;
|
|
19887
19887
|
preloadEmojiIfNeeded(emoji, emojiStyle, scrollTop, (_BodyRef$current$clie2 = (_BodyRef$current2 = BodyRef.current) == null ? void 0 : _BodyRef$current2.clientHeight) != null ? _BodyRef$current$clie2 : 0, topOffset, style, dimensions, getEmojiUrl);
|
|
@@ -19936,6 +19936,7 @@ function EmojiCategory(_ref) {
|
|
|
19936
19936
|
var styles$7 = /*#__PURE__*/stylesheet.create({
|
|
19937
19937
|
category: {
|
|
19938
19938
|
'.': ClassNames.category,
|
|
19939
|
+
minHeight: 'calc(var(--epr-emoji-fullsize) + var(--epr-category-label-height))',
|
|
19939
19940
|
position: 'relative'
|
|
19940
19941
|
},
|
|
19941
19942
|
categoryContent: {
|
|
@@ -19968,6 +19969,55 @@ var styles$7 = /*#__PURE__*/stylesheet.create({
|
|
|
19968
19969
|
}
|
|
19969
19970
|
});
|
|
19970
19971
|
|
|
19972
|
+
function MeasureEmoji() {
|
|
19973
|
+
var categories = useCategoriesConfig();
|
|
19974
|
+
var getEmojisByCategory = useGetEmojisByCategory();
|
|
19975
|
+
var emojiStyle = useEmojiStyleConfig();
|
|
19976
|
+
var getEmojiUrl = useGetEmojiUrlConfig();
|
|
19977
|
+
var lazyLoadEmojis = useLazyLoadEmojisConfig();
|
|
19978
|
+
var _useActiveSkinToneSta = useActiveSkinToneState(),
|
|
19979
|
+
activeSkinTone = _useActiveSkinToneSta[0];
|
|
19980
|
+
var _useEmojiSizeState = useEmojiSizeState(),
|
|
19981
|
+
emojiSize = _useEmojiSizeState[0],
|
|
19982
|
+
setEmojiSize = _useEmojiSizeState[1];
|
|
19983
|
+
var ref = React.useRef(null);
|
|
19984
|
+
React.useLayoutEffect(function () {
|
|
19985
|
+
if (ref.current) {
|
|
19986
|
+
setEmojiSize(ref.current.clientHeight);
|
|
19987
|
+
}
|
|
19988
|
+
});
|
|
19989
|
+
if (emojiSize) {
|
|
19990
|
+
return null;
|
|
19991
|
+
}
|
|
19992
|
+
var firstCategory = categories[0];
|
|
19993
|
+
var dummyEmoji = getEmojisByCategory(categoryFromCategoryConfig(firstCategory))[0];
|
|
19994
|
+
var unified = dummyEmoji ? emojiUnified(dummyEmoji, activeSkinTone) : '';
|
|
19995
|
+
if (!dummyEmoji) {
|
|
19996
|
+
return null;
|
|
19997
|
+
}
|
|
19998
|
+
return React.createElement("div", {
|
|
19999
|
+
ref: ref
|
|
20000
|
+
}, React.createElement(ClickableEmoji, {
|
|
20001
|
+
emoji: dummyEmoji,
|
|
20002
|
+
unified: unified,
|
|
20003
|
+
emojiStyle: emojiStyle,
|
|
20004
|
+
getEmojiUrl: getEmojiUrl,
|
|
20005
|
+
lazyLoad: lazyLoadEmojis,
|
|
20006
|
+
showVariations: false,
|
|
20007
|
+
hidden: false,
|
|
20008
|
+
style: {
|
|
20009
|
+
opacity: 0,
|
|
20010
|
+
pointerEvents: 'none',
|
|
20011
|
+
position: 'absolute',
|
|
20012
|
+
top: 0,
|
|
20013
|
+
left: 0,
|
|
20014
|
+
zIndex: -1,
|
|
20015
|
+
height: 'var(--epr-emoji-fullsize)',
|
|
20016
|
+
width: 'var(--epr-emoji-fullsize)'
|
|
20017
|
+
}
|
|
20018
|
+
}));
|
|
20019
|
+
}
|
|
20020
|
+
|
|
19971
20021
|
function EmojiList(_ref) {
|
|
19972
20022
|
var scrollTop = _ref.scrollTop;
|
|
19973
20023
|
var categories = useCategoriesConfig();
|
|
@@ -19981,7 +20031,7 @@ function EmojiList(_ref) {
|
|
|
19981
20031
|
return React.createElement("ul", {
|
|
19982
20032
|
className: flairup.cx(styles$8.emojiList),
|
|
19983
20033
|
ref: EmojiListRef
|
|
19984
|
-
}, categories.map(function (categoryConfig) {
|
|
20034
|
+
}, React.createElement(MeasureEmoji, null), categories.map(function (categoryConfig) {
|
|
19985
20035
|
var category = categoryFromCategoryConfig(categoryConfig);
|
|
19986
20036
|
var currentOffset = topOffset;
|
|
19987
20037
|
var categoryHeight = categoryHeights[category];
|
|
@@ -20148,7 +20198,7 @@ function useVariationPickerTop(VariationPickerRef) {
|
|
|
20148
20198
|
return emojiOffsetTop - height;
|
|
20149
20199
|
}
|
|
20150
20200
|
}
|
|
20151
|
-
var styles$9 = /*#__PURE__*/stylesheet.create(
|
|
20201
|
+
var styles$9 = /*#__PURE__*/stylesheet.create(/*#__PURE__*/_extends({
|
|
20152
20202
|
variationPicker: {
|
|
20153
20203
|
'.': ClassNames.variationPicker,
|
|
20154
20204
|
position: 'absolute',
|
|
@@ -20651,6 +20701,7 @@ function useActiveCategoryScrollDetection(_ref) {
|
|
|
20651
20701
|
var BodyRef = useBodyRef();
|
|
20652
20702
|
React.useEffect(function () {
|
|
20653
20703
|
var visibleCategories = new Map();
|
|
20704
|
+
var intersectingCategories = new Map();
|
|
20654
20705
|
var bodyRef = BodyRef.current;
|
|
20655
20706
|
var observer = new IntersectionObserver(function (entries) {
|
|
20656
20707
|
if (!bodyRef) {
|
|
@@ -20663,17 +20714,20 @@ function useActiveCategoryScrollDetection(_ref) {
|
|
|
20663
20714
|
continue;
|
|
20664
20715
|
}
|
|
20665
20716
|
visibleCategories.set(_id, entry.intersectionRatio);
|
|
20717
|
+
intersectingCategories.set(_id, entry.isIntersecting);
|
|
20666
20718
|
}
|
|
20667
20719
|
var ratios = Array.from(visibleCategories);
|
|
20668
|
-
|
|
20669
|
-
var
|
|
20670
|
-
|
|
20720
|
+
var visibleCats = ratios.filter(function (_ref2) {
|
|
20721
|
+
var id = _ref2[0],
|
|
20722
|
+
ratio = _ref2[1];
|
|
20723
|
+
return ratio > 0 || intersectingCategories.get(id);
|
|
20671
20724
|
}).map(function (_ref3) {
|
|
20672
20725
|
var id = _ref3[0];
|
|
20673
20726
|
return id;
|
|
20674
|
-
})
|
|
20727
|
+
});
|
|
20728
|
+
setVisibleCategories(visibleCats);
|
|
20675
20729
|
var lastCategory = ratios[ratios.length - 1];
|
|
20676
|
-
if (lastCategory[1] == 1) {
|
|
20730
|
+
if ((lastCategory == null ? void 0 : lastCategory[1]) == 1) {
|
|
20677
20731
|
return setActiveCategory(lastCategory[0]);
|
|
20678
20732
|
}
|
|
20679
20733
|
for (var _i = 0, _ratios = ratios; _i < _ratios.length; _i++) {
|
|
@@ -20686,11 +20740,15 @@ function useActiveCategoryScrollDetection(_ref) {
|
|
|
20686
20740
|
}
|
|
20687
20741
|
}
|
|
20688
20742
|
}, {
|
|
20743
|
+
root: bodyRef,
|
|
20689
20744
|
threshold: [0, 1]
|
|
20690
20745
|
});
|
|
20691
20746
|
bodyRef == null ? void 0 : bodyRef.querySelectorAll(asSelectors(ClassNames.category)).forEach(function (el) {
|
|
20692
20747
|
observer.observe(el);
|
|
20693
20748
|
});
|
|
20749
|
+
return function () {
|
|
20750
|
+
observer.disconnect();
|
|
20751
|
+
};
|
|
20694
20752
|
}, [BodyRef, setActiveCategory, setVisibleCategories]);
|
|
20695
20753
|
}
|
|
20696
20754
|
|
|
@@ -20752,7 +20810,7 @@ var DarkInactivePosition = {
|
|
|
20752
20810
|
}
|
|
20753
20811
|
}
|
|
20754
20812
|
};
|
|
20755
|
-
var styles$f = /*#__PURE__*/stylesheet.create(
|
|
20813
|
+
var styles$f = /*#__PURE__*/stylesheet.create(/*#__PURE__*/_extends({
|
|
20756
20814
|
catBtn: {
|
|
20757
20815
|
'.': 'epr-cat-btn',
|
|
20758
20816
|
display: 'inline-block',
|
|
@@ -20897,7 +20955,7 @@ var HoverDark = {
|
|
|
20897
20955
|
}
|
|
20898
20956
|
}
|
|
20899
20957
|
};
|
|
20900
|
-
var styles$h = /*#__PURE__*/stylesheet.create(
|
|
20958
|
+
var styles$h = /*#__PURE__*/stylesheet.create(/*#__PURE__*/_extends({
|
|
20901
20959
|
btnClearSearch: {
|
|
20902
20960
|
'.': 'epr-btn-clear-search',
|
|
20903
20961
|
position: 'absolute',
|
|
@@ -20944,7 +21002,7 @@ function IcnSearch() {
|
|
|
20944
21002
|
className: flairup.cx(styles$i.icnSearch)
|
|
20945
21003
|
});
|
|
20946
21004
|
}
|
|
20947
|
-
var styles$i = /*#__PURE__*/stylesheet.create(
|
|
21005
|
+
var styles$i = /*#__PURE__*/stylesheet.create(/*#__PURE__*/_extends({
|
|
20948
21006
|
icnSearch: {
|
|
20949
21007
|
'.': 'epr-icn-search',
|
|
20950
21008
|
content: '',
|
|
@@ -21008,7 +21066,7 @@ function Search() {
|
|
|
21008
21066
|
"aria-atomic": "true"
|
|
21009
21067
|
}, statusSearchResults) : null, React.createElement(IcnSearch, null), React.createElement(BtnClearSearch, null));
|
|
21010
21068
|
}
|
|
21011
|
-
var styles$j = /*#__PURE__*/stylesheet.create(
|
|
21069
|
+
var styles$j = /*#__PURE__*/stylesheet.create(/*#__PURE__*/_extends({
|
|
21012
21070
|
overlay: {
|
|
21013
21071
|
padding: 'var(--epr-header-padding)',
|
|
21014
21072
|
zIndex: 'var(--epr-header-overlay-z-index)'
|