emoji-picker-react 4.20.5 → 4.20.7
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/emoji-picker-react.cjs.development.js +55 -33
- 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 +55 -33
- package/dist/emoji-picker-react.esm.js.map +1 -1
- package/package.json +1 -1
- package/src/components/body/EmojiList.tsx +16 -4
- package/src/hooks/useSetVariationPicker.ts +17 -2
|
@@ -27866,9 +27866,20 @@ function useSetVariationPicker() {
|
|
|
27866
27866
|
var setAnchoredEmojiRef = useSetAnchoredEmojiRef();
|
|
27867
27867
|
var _useEmojiVariationPic = useEmojiVariationPickerState(),
|
|
27868
27868
|
setEmojiVariationPicker = _useEmojiVariationPic[1];
|
|
27869
|
+
// Context-aware lookup: respects the `emojiData` prop (e.g. translations).
|
|
27870
|
+
// The legacy global lookup only knows the default English dataset.
|
|
27871
|
+
// https://github.com/ealush/emoji-picker-react/issues/503
|
|
27872
|
+
var _usePickerDataContext = usePickerDataContext(),
|
|
27873
|
+
emojiByUnified = _usePickerDataContext.emojiByUnified;
|
|
27869
27874
|
return function setVariationPicker(element) {
|
|
27870
|
-
var
|
|
27871
|
-
|
|
27875
|
+
var _allUnifiedFromEmojiE = allUnifiedFromEmojiElement(element),
|
|
27876
|
+
unified = _allUnifiedFromEmojiE.unified,
|
|
27877
|
+
originalUnified = _allUnifiedFromEmojiE.originalUnified;
|
|
27878
|
+
var resolvedUnified = unified != null ? unified : originalUnified;
|
|
27879
|
+
if (!resolvedUnified) {
|
|
27880
|
+
return;
|
|
27881
|
+
}
|
|
27882
|
+
var emoji = emojiByUnified(resolvedUnified);
|
|
27872
27883
|
if (emoji) {
|
|
27873
27884
|
setAnchoredEmojiRef(element);
|
|
27874
27885
|
setEmojiVariationPicker(emoji);
|
|
@@ -29692,50 +29703,61 @@ function EmojiList(_ref) {
|
|
|
29692
29703
|
// native button role for activation semantics.
|
|
29693
29704
|
// https://github.com/ealush/emoji-picker-react/issues/508
|
|
29694
29705
|
// The list markup is kept for a backwards-compatible DOM structure;
|
|
29695
|
-
// the grid role override is intentional
|
|
29696
|
-
|
|
29697
|
-
|
|
29698
|
-
|
|
29699
|
-
|
|
29700
|
-
|
|
29701
|
-
|
|
29702
|
-
|
|
29703
|
-
|
|
29704
|
-
|
|
29705
|
-
|
|
29706
|
-
|
|
29707
|
-
|
|
29708
|
-
|
|
29709
|
-
|
|
29710
|
-
|
|
29711
|
-
|
|
29712
|
-
|
|
29713
|
-
|
|
29714
|
-
|
|
29715
|
-
|
|
29716
|
-
|
|
29717
|
-
|
|
29718
|
-
|
|
29719
|
-
|
|
29720
|
-
|
|
29721
|
-
|
|
29722
|
-
|
|
29723
|
-
|
|
29706
|
+
// the grid role override is intentional.
|
|
29707
|
+
return (
|
|
29708
|
+
// eslint-disable-next-line jsx-a11y/no-noninteractive-element-to-interactive-role
|
|
29709
|
+
React.createElement("ul", {
|
|
29710
|
+
className: shipstyles.cx(styles$8.emojiList),
|
|
29711
|
+
ref: EmojiListRef,
|
|
29712
|
+
role: "grid"
|
|
29713
|
+
}, React.createElement(MeasureEmoji, null), categories.map(function (categoryConfig, index) {
|
|
29714
|
+
var category = categoryFromCategoryConfig(categoryConfig);
|
|
29715
|
+
var currentOffset = topOffset;
|
|
29716
|
+
var categoryHeight = categoryHeights[category];
|
|
29717
|
+
if (categoryHeight) {
|
|
29718
|
+
topOffset += categoryHeight + labelHeight;
|
|
29719
|
+
}
|
|
29720
|
+
return React.createElement(RenderCategory, {
|
|
29721
|
+
key: category,
|
|
29722
|
+
categoryEmojis: getEmojisByCategory(category),
|
|
29723
|
+
categoryConfig: categoryConfig,
|
|
29724
|
+
topOffset: currentOffset,
|
|
29725
|
+
isFirstCategory: index === 0,
|
|
29726
|
+
onHeightReady: function onHeightReady(height) {
|
|
29727
|
+
if (categoryHeights[category] !== height) {
|
|
29728
|
+
setCategoryHeights(function (prev) {
|
|
29729
|
+
var _extends2;
|
|
29730
|
+
return _extends({}, prev, (_extends2 = {}, _extends2[category] = height, _extends2));
|
|
29731
|
+
});
|
|
29732
|
+
}
|
|
29733
|
+
},
|
|
29734
|
+
scrollTop: scrollTop
|
|
29735
|
+
});
|
|
29736
|
+
}))
|
|
29737
|
+
);
|
|
29724
29738
|
}
|
|
29725
29739
|
function RenderCategory(_ref2) {
|
|
29726
29740
|
var categoryEmojis = _ref2.categoryEmojis,
|
|
29727
29741
|
categoryConfig = _ref2.categoryConfig,
|
|
29728
29742
|
topOffset = _ref2.topOffset,
|
|
29729
29743
|
onHeightReady = _ref2.onHeightReady,
|
|
29730
|
-
scrollTop = _ref2.scrollTop
|
|
29744
|
+
scrollTop = _ref2.scrollTop,
|
|
29745
|
+
isFirstCategory = _ref2.isFirstCategory;
|
|
29731
29746
|
var _useVisibleCategories = useVisibleCategoriesState(),
|
|
29732
29747
|
visibleCategories = _useVisibleCategories[0];
|
|
29748
|
+
// The observer is the only writer of visibleCategories. When it never
|
|
29749
|
+
// fires (zero-height container at mount, hidden modal), no category
|
|
29750
|
+
// would ever render. The first category paints optimistically to break
|
|
29751
|
+
// the deadlock; the observer takes over from there.
|
|
29752
|
+
// https://github.com/ealush/emoji-picker-react/issues/469
|
|
29753
|
+
// https://github.com/ealush/emoji-picker-react/issues/475
|
|
29754
|
+
var isCategoryVisible = isFirstCategory || visibleCategories.includes(categoryConfig.category);
|
|
29733
29755
|
var _useEmojiVirtualizati = useEmojiVirtualization({
|
|
29734
29756
|
categoryEmojis: categoryEmojis,
|
|
29735
29757
|
topOffset: topOffset,
|
|
29736
29758
|
onHeightReady: onHeightReady,
|
|
29737
29759
|
scrollTop: scrollTop,
|
|
29738
|
-
isCategoryVisible:
|
|
29760
|
+
isCategoryVisible: isCategoryVisible
|
|
29739
29761
|
}),
|
|
29740
29762
|
virtualizedCounter = _useEmojiVirtualizati.virtualizedCounter,
|
|
29741
29763
|
emojis = _useEmojiVirtualizati.emojis,
|