import { StackScreenProps } from '@react-navigation/stack'; import * as React from 'react'; import { ScrollView, StyleSheet, Text, View } from 'react-native'; import examples from './examples'; type Links = { SVGExample: { title?: string; key: string } }; type Props = StackScreenProps; export default class SVGExampleScreen extends React.Component { static navigationOptions = ({ route }: Props) => { return { title: route.params.title ?? 'An SVG Example', }; }; renderSample = (Sample: React.ComponentType & { title: string }, index: number) => ( {Sample.title} ); renderNoExample = () => No example found.; renderContent = () => { const example = examples[this.props.route.params.key]; if (!example) { return this.renderNoExample(); } const { samples } = example; return samples.map(this.renderSample); }; render() { return ( {this.renderContent()} ); } } const styles = StyleSheet.create({ container: { ...StyleSheet.absoluteFillObject, }, contentContainer: { alignItems: 'center', justifyContent: 'center', }, example: { paddingVertical: 25, alignSelf: 'stretch', alignItems: 'center', borderBottomWidth: StyleSheet.hairlineWidth, borderBottomColor: '#ccc', }, sampleTitle: { marginHorizontal: 15, fontSize: 16, color: '#666', }, });