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