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