Extend FlatList to support multiple viewability configs

Summary: FlatList only supports one viewability configuration and callback. This change extends FlatList and VirtualizedList to support multiple viewability configurations and corresponding callbacks.

Reviewed By: sahrens

Differential Revision: D5720860

fbshipit-source-id: 9d24946362fa9001d44d4980c85f7d2627e45a33
This commit is contained in:
Vince Oppedisano
2017-09-05 18:33:44 -07:00
committed by Facebook Github Bot
parent 64be88398d
commit ad733ad430
5 changed files with 166 additions and 46 deletions

View File

@@ -22,6 +22,14 @@ export type ViewToken = {
section?: any,
};
export type ViewabilityConfigCallbackPair = {
viewabilityConfig: ViewabilityConfig,
onViewableItemsChanged: (info: {
viewableItems: Array<ViewToken>,
changed: Array<ViewToken>,
}) => void,
};
export type ViewabilityConfig = {|
/**
* Minimum amount of time (in milliseconds) that an item must be physically viewable before the
@@ -256,6 +264,7 @@ class ViewabilityHelper {
onViewableItemsChanged({
viewableItems: Array.from(nextItems.values()),
changed,
viewabilityConfig: this._config,
});
}
}