emoji-picker-react 4.20.5 → 4.20.6

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.
@@ -29691,50 +29691,61 @@ function EmojiList(_ref) {
29691
29691
  // native button role for activation semantics.
29692
29692
  // https://github.com/ealush/emoji-picker-react/issues/508
29693
29693
  // The list markup is kept for a backwards-compatible DOM structure;
29694
- // the grid role override is intentional (see below).
29695
- // eslint-disable-next-line jsx-a11y/no-noninteractive-element-to-interactive-role
29696
- return createElement("ul", {
29697
- className: cx(styles$8.emojiList),
29698
- ref: EmojiListRef,
29699
- role: "grid"
29700
- }, createElement(MeasureEmoji, null), categories.map(function (categoryConfig) {
29701
- var category = categoryFromCategoryConfig(categoryConfig);
29702
- var currentOffset = topOffset;
29703
- var categoryHeight = categoryHeights[category];
29704
- if (categoryHeight) {
29705
- topOffset += categoryHeight + labelHeight;
29706
- }
29707
- return createElement(RenderCategory, {
29708
- key: category,
29709
- categoryEmojis: getEmojisByCategory(category),
29710
- categoryConfig: categoryConfig,
29711
- topOffset: currentOffset,
29712
- onHeightReady: function onHeightReady(height) {
29713
- if (categoryHeights[category] !== height) {
29714
- setCategoryHeights(function (prev) {
29715
- var _extends2;
29716
- return _extends({}, prev, (_extends2 = {}, _extends2[category] = height, _extends2));
29717
- });
29718
- }
29719
- },
29720
- scrollTop: scrollTop
29721
- });
29722
- }));
29694
+ // the grid role override is intentional.
29695
+ return (
29696
+ // eslint-disable-next-line jsx-a11y/no-noninteractive-element-to-interactive-role
29697
+ createElement("ul", {
29698
+ className: cx(styles$8.emojiList),
29699
+ ref: EmojiListRef,
29700
+ role: "grid"
29701
+ }, createElement(MeasureEmoji, null), categories.map(function (categoryConfig, index) {
29702
+ var category = categoryFromCategoryConfig(categoryConfig);
29703
+ var currentOffset = topOffset;
29704
+ var categoryHeight = categoryHeights[category];
29705
+ if (categoryHeight) {
29706
+ topOffset += categoryHeight + labelHeight;
29707
+ }
29708
+ return createElement(RenderCategory, {
29709
+ key: category,
29710
+ categoryEmojis: getEmojisByCategory(category),
29711
+ categoryConfig: categoryConfig,
29712
+ topOffset: currentOffset,
29713
+ isFirstCategory: index === 0,
29714
+ onHeightReady: function onHeightReady(height) {
29715
+ if (categoryHeights[category] !== height) {
29716
+ setCategoryHeights(function (prev) {
29717
+ var _extends2;
29718
+ return _extends({}, prev, (_extends2 = {}, _extends2[category] = height, _extends2));
29719
+ });
29720
+ }
29721
+ },
29722
+ scrollTop: scrollTop
29723
+ });
29724
+ }))
29725
+ );
29723
29726
  }
29724
29727
  function RenderCategory(_ref2) {
29725
29728
  var categoryEmojis = _ref2.categoryEmojis,
29726
29729
  categoryConfig = _ref2.categoryConfig,
29727
29730
  topOffset = _ref2.topOffset,
29728
29731
  onHeightReady = _ref2.onHeightReady,
29729
- scrollTop = _ref2.scrollTop;
29732
+ scrollTop = _ref2.scrollTop,
29733
+ isFirstCategory = _ref2.isFirstCategory;
29730
29734
  var _useVisibleCategories = useVisibleCategoriesState(),
29731
29735
  visibleCategories = _useVisibleCategories[0];
29736
+ // The observer is the only writer of visibleCategories. When it never
29737
+ // fires (zero-height container at mount, hidden modal), no category
29738
+ // would ever render. The first category paints optimistically to break
29739
+ // the deadlock; the observer takes over from there.
29740
+ // https://github.com/ealush/emoji-picker-react/issues/469
29741
+ // https://github.com/ealush/emoji-picker-react/issues/475
29742
+ var isCategoryVisible = isFirstCategory || visibleCategories.includes(categoryConfig.category);
29732
29743
  var _useEmojiVirtualizati = useEmojiVirtualization({
29733
29744
  categoryEmojis: categoryEmojis,
29734
29745
  topOffset: topOffset,
29735
29746
  onHeightReady: onHeightReady,
29736
29747
  scrollTop: scrollTop,
29737
- isCategoryVisible: visibleCategories.includes(categoryConfig.category)
29748
+ isCategoryVisible: isCategoryVisible
29738
29749
  }),
29739
29750
  virtualizedCounter = _useEmojiVirtualizati.virtualizedCounter,
29740
29751
  emojis = _useEmojiVirtualizati.emojis,