From 44b0f5560b285dfd8e28e6056e9434d76734f3fd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dawid=20Ma=C5=82ecki?= Date: Thu, 22 May 2025 03:41:25 -0700 Subject: [PATCH] Fix VirtualizeSectionList generic arguments (#51496) Summary: Pull Request resolved: https://github.com/facebook/react-native/pull/51496 Fixes problem with generics passed to `VirtualizedSectionList` in generated types. The `flow-api-translator` creates a re-declaration for `export default` variables which shadows generics. Changelog: [Internal] Reviewed By: huntie Differential Revision: D75141051 fbshipit-source-id: 260ef066038320eee3ffa93692f77f1eff5c9205 --- .../virtualized-lists/Lists/VirtualizedSectionList.js | 9 ++++++++- packages/virtualized-lists/index.js | 4 ++-- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/packages/virtualized-lists/Lists/VirtualizedSectionList.js b/packages/virtualized-lists/Lists/VirtualizedSectionList.js index 14cb93ca3bd..4e6331bb3f6 100644 --- a/packages/virtualized-lists/Lists/VirtualizedSectionList.js +++ b/packages/virtualized-lists/Lists/VirtualizedSectionList.js @@ -611,7 +611,7 @@ function ItemWithSeparator( ); } -export default VirtualizedSectionList as component< +const VirtualizedSectionListComponent = VirtualizedSectionList as component< ItemT, SectionT: SectionBase = DefaultSectionT, >( @@ -623,3 +623,10 @@ export default VirtualizedSectionList as component< >, ...VirtualizedSectionListProps ); + +export default VirtualizedSectionListComponent; + +export type AnyVirtualizedSectionList = typeof VirtualizedSectionListComponent< + any, + any, +>; diff --git a/packages/virtualized-lists/index.js b/packages/virtualized-lists/index.js index c7a6767ea1e..7ac07510e26 100644 --- a/packages/virtualized-lists/index.js +++ b/packages/virtualized-lists/index.js @@ -13,7 +13,7 @@ import typeof FillRateHelper from './Lists/FillRateHelper'; import typeof ViewabilityHelper from './Lists/ViewabilityHelper'; import typeof VirtualizedList from './Lists/VirtualizedList'; -import typeof VirtualizedSectionList from './Lists/VirtualizedSectionList'; +import type {AnyVirtualizedSectionList} from './Lists/VirtualizedSectionList'; import {typeof VirtualizedListContextResetter} from './Lists/VirtualizedListContext'; import {keyExtractor} from './Lists/VirtualizeUtils'; @@ -45,7 +45,7 @@ export default { get VirtualizedList(): VirtualizedList { return require('./Lists/VirtualizedList').default; }, - get VirtualizedSectionList(): VirtualizedSectionList { + get VirtualizedSectionList(): AnyVirtualizedSectionList { return require('./Lists/VirtualizedSectionList').default; }, get VirtualizedListContextResetter(): VirtualizedListContextResetter {