1import React from 'react'; 2import ComponentListScreen from './ComponentListScreen'; 3import { Layout } from '../constants'; 4import { Screens } from '../navigation/ExpoComponents'; 5 6export default class ExpoComponentsScreen extends React.Component { 7 static path = ''; 8 9 static navigationOptions = { 10 title: Layout.isSmallDevice ? 'Expo SDK Components' : 'Components in Expo SDK', 11 }; 12 13 render() { 14 // @ts-ignore 15 return <ComponentListScreen apis={this._getApis()} tabName="ExpoComponents" />; 16 } 17 18 _getApis = () => { 19 const screens = [ 20 'AdMob', 21 'BarCodeScanner', 22 'BlurView', 23 'Camera', 24 'FacebookAds', 25 'GestureHandlerList', 26 'GestureHandlerPinch', 27 'GestureHandlerSwipeable', 28 'Gif', 29 'GL', 30 'LinearGradient', 31 'Lottie', 32 'Maps', 33 'ReanimatedImagePreview', 34 'ReanimatedProgress', 35 'Screens', 36 'SVG', 37 'Video', 38 'WebView', 39 ]; 40 return screens 41 .map(name => ({ name, isAvailable: !!Screens[name] })) 42 .sort((a, b) => { 43 if (a.isAvailable !== b.isAvailable) { 44 if (a.isAvailable) { 45 return -1; 46 } 47 return 1; 48 } 49 return 0; 50 }); 51 } 52} 53