import Ionicons from '@expo/vector-icons/build/Ionicons'; import { StackNavigationProp } from '@react-navigation/stack'; import React from 'react'; import { FlatList, ListRenderItem, PixelRatio, StyleSheet, Text, TouchableHighlight, View, } from 'react-native'; import examples from './examples'; type StackParams = { SVGExample: { title: string; key: string }; }; export default class SVGScreen extends React.Component<{ navigation: StackNavigationProp; }> { static navigationOptions = { title: '', }; renderItem: ListRenderItem = ({ item: exampleKey }) => ( this.props.navigation.navigate('SVGExample', { title: exampleKey, key: exampleKey }) }> {examples[exampleKey].icon} {exampleKey} ); keyExtractor = (item: string) => item; render() { return ( style={styles.container} data={Object.keys(examples)} renderItem={this.renderItem} keyExtractor={this.keyExtractor} /> ); } } const styles = StyleSheet.create({ container: { ...StyleSheet.absoluteFillObject, backgroundColor: 'white', }, row: { flexDirection: 'row', justifyContent: 'space-between', alignItems: 'center', }, rowDecorator: { alignSelf: 'flex-end', paddingRight: 4, }, rowTouchable: { paddingHorizontal: 10, paddingVertical: 14, borderBottomWidth: 1.0 / PixelRatio.get(), borderBottomColor: '#dddddd', }, rowLabel: { flex: 1, fontSize: 15, }, rowIcon: { marginRight: 10, marginLeft: 6, }, });