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