import { requireNativeViewManager } from 'expo-modules-core'; import React, { ReactElement } from 'react'; import { View, useWindowDimensions } from 'react-native'; import { getSizeFromModifiers, mapToNativeModifiers, } from '../../utils/modifiers'; import { onBaseEvent } from '../../utils/onBaseEvent'; import { ListProps, NativeListProps } from './types'; const NativeList: React.ComponentType = requireNativeViewManager('List'); export function List({ style, children, ...modifiers }: ListProps) { const { width } = useWindowDimensions(); let rowWidth = width; switch (modifiers.listStyle || 'insetGrouped') { default: case 'insetGrouped': rowWidth = width - 80; break; case 'inset': case 'grouped': case 'plain': rowWidth = width - 40; break; } return ( { onBaseEvent(e, modifiers); }} > {React.Children.map(children, (child: ReactElement) => { return ( {child} ); })} ); }