1import * as React from 'react'; 2 3import ComponentListScreen from './ComponentListScreen'; 4import ExpoAPIIcon from '../components/ExpoAPIIcon'; 5 6const screens = [ 7 'ActivityIndicator', 8 'BarCodeScanner', 9 'BlurView', 10 'Button', 11 'Camera', 12 'Checkbox', 13 'ClipboardPasteButton', 14 'DateTimePicker', 15 'DrawerLayoutAndroid', 16 'ExpoMaps', 17 'FlashList', 18 'GL', 19 'GestureHandlerList', 20 'GestureHandlerPinch', 21 'GestureHandlerSwipeable', 22 'Gif', 23 'HTML', 24 'Image', 25 'LinearGradient', 26 'Lottie', 27 'Maps', 28 'MaskedView', 29 'Modal', 30 'Picker', 31 'Pressable', 32 'QRCode', 33 'Reanimated', 34 'Skia', 35 'SVG', 36 'Screens', 37 'ScrollView', 38 'SegmentedControl', 39 'Slider', 40 'Switch', 41 'Text', 42 'TextInput', 43 'TouchableBounce', 44 'Touchables', 45 'Video (expo-av)', 46 'Video (expo-video)', 47 'PagerView', 48 'WebView', 49]; 50 51export const ScreenItems = screens.map((name) => ({ 52 name, 53 route: `/components/${name.toLowerCase()}`, 54 // isAvailable: !!Screens[name], 55 isAvailable: true, 56})); 57 58export default function ExpoComponentsScreen() { 59 const renderItemRight = React.useCallback( 60 ({ name }: { name: string }) => ( 61 <ExpoAPIIcon name={name} style={{ marginRight: 10, marginLeft: 6 }} /> 62 ), 63 [] 64 ); 65 66 return <ComponentListScreen renderItemRight={renderItemRight} apis={ScreenItems} />; 67} 68