27 lines
1.2 KiB
React
27 lines
1.2 KiB
React
// Metro module 322 (f323).
|
|
import { useContext, useMemo, createContext } from "react";
|
|
const context = createContext(null);
|
|
export { context as VirtualizedListContext };
|
|
export function VirtualizedListContextResetter(props) {
|
|
return <context.Provider value={null}>{props.children}</context.Provider>;
|
|
}
|
|
export function VirtualizedListContextProvider(props) {
|
|
const { children, value } = props;
|
|
return <context.Provider value={useMemo(() => ({
|
|
cellKey: null,
|
|
getScrollMetrics: value.getScrollMetrics,
|
|
horizontal: value.horizontal,
|
|
getOutermostParentListRef: value.getOutermostParentListRef,
|
|
registerAsNestedChild: value.registerAsNestedChild,
|
|
unregisterAsNestedChild: value.unregisterAsNestedChild
|
|
}), [value.getScrollMetrics, value.horizontal, value.getOutermostParentListRef, value.registerAsNestedChild, value.unregisterAsNestedChild])}>{children}</context.Provider>;
|
|
}
|
|
export function VirtualizedListCellContextProvider(props) {
|
|
const { cellKey, children } = props;
|
|
const context2 = useContext(context);
|
|
return <context.Provider value={useMemo(() => context2 != null ? {
|
|
...context2,
|
|
cellKey
|
|
} : null, [context2, cellKey])}>{children}</context.Provider>;
|
|
}
|