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