import React, { Image, Swipeable, Text, TextInput, Touchable, View } from '../dist/react-native-web' const { Component, PropTypes } = React class Heading extends Component { static propTypes = { children: Text.propTypes.children, level: PropTypes.oneOf(['1', '2', '3']), size: PropTypes.oneOf(['xlarge', 'large', 'normal']) } static defaultProps = { level: '1', size: 'normal' } render() { const { children, level, size } = this.props return ( ) } } const headingStyles = { size: { xlarge: { fontSize: '2rem', marginBottom: '1em' }, large: { fontSize: '1.5rem', marginBottom: '1em', marginTop: '1em' }, normal: { fontSize: '1.25rem', marginBottom: '0.5em', marginTop: '0.5em' } } } class Example extends Component { static propTypes = { style: View.propTypes.style } render() { return ( React Native for Web: examples Image Inner content} defaultSource={{ uri: 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAZAAAAGQCAIAAAAP3aGbAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH3wkGESkdPWMDggAAAB1pVFh0Q29tbWVudAAAAAAAQ3JlYXRlZCB3aXRoIEdJTVBkLmUHAAAD5UlEQVR42u3UMQ0AAAgEMcC/x7eCCgaSVsIN10kK4IORADAsAMMCDAvAsAAMCzAsAMMCMCzAsAAMC8CwAMMCMCwAwwIMC8CwAAwLMCwAwwIwLMCwAAwLwLAAwwIwLADDAgwLwLAAwwIwLADDAgwLwLAADAswLADDAjAswLAADAvAsADDAjAsAMMCDAvAsAAMCzAsAMMCMCzAsAAMC8CwAMMCMCwAwwIMC8CwAMMCMCwAwwIMC8CwAAwLMCwAwwIwLMCwAAwLwLAAwwIwLADDAgwLwLAADAswLADDAjAswLAADAvAsADDAjAsAMMCDAvAsADDAjAsAMMCDAvAsAAMCzAsAMMCMCzAsAAMC8CwAMMCMCwAwwIMC8CwAAwLMCwAwwIwLMCwAAwLwLAAwwIwLADDAgwLwLAAwwIwLADDAgwLwLAADAswLADDAjAswLAADAvAsADDAjAsAMMCDAvAsAAMCzAsAMMCMCzAsAAMC8CwAMMCMCwAwwIMC8CwAMMCMCwAwwIMC8CwAAwLMCwAwwIwLMCwAAwLwLAAwwIwLADDAgwLwLAADAswLADDAjAswLAADAvAsADDAjAsAMMCDAvAsADDAjAsAMMCDAvAsAAMCzAsAMMCMCzAsAAMC8CwAMMCMCwAwwIMC8CwAAwLMCwAwwIwLMCwAAwLwLAAwwIwLADDAgwLwLAAwwIwLADDAgwLwLAADAswLADDAjAswLAADAvAsADDAjAsAMMCDAvAsAAMCzAsAMMCMCzAsAAMC8CwAMMCMCwAwwIMC8CwAMMCMCwAwwIMC8CwAAwLMCwAwwIwLMCwAAwLwLAAwwIwLADDAgwLwLAADAswLADDAjAswLAADAvAsADDAjAswLAkAAwLwLAAwwIwLADDAgwLwLAADAswLADDAjAswLAADAvAsADDAjAsAMMCDAvAsAAMCzAsAMMCMCzAsAAMC8CwAMMCMCzAsAAMC8CwAMMCMCwAwwIMC8CwAAwLMCwAwwIwLMCwAAwLwLAAwwIwLADDAgwLwLAADAswLADDAjAswLAADAvAsADDAjAswLAADAvAsADDAjAsAMMCDAvAsAAMCzAsAMMCMCzAsAAMC8CwAMMCMCwAwwIMC8CwAAwLMCwAwwIwLMCwAAwLwLAAwwIwLMCwAAwLwLAAwwIwLADDAgwLwLAADAswLADDAjAswLAADAvAsADDAjAsAMMCDAvAsAAMCzAsAMMCMCzAsAAMC8CwAMMCMCzAsAAMC8CwAMMCMCwAwwIMC8CwAAwLMCwAwwIwLMCwAAwLwLAAwwIwLADDAgwLwLAADAswLADDAjAswLAALi04UQW9HF910gAAAABJRU5ErkJggg==' }} onError={(e) => { console.log('Image.onError', e) }} onLoad={(e) => { console.log('Image.onLoad', e) }} onLoadEnd={() => { console.log('Image.onLoadEnd') }} onLoadStart={() => { console.log('Image.onLoadStart') }} resizeMode={'contain'} source={{ height: 400, uri: 'http://facebook.github.io/react/img/logo_og.png', width: 400 }} style={{ borderWidth: '5px' }} testID='Example.image' /> Swipeable { console.log('Swipeable.onSwiped', e) }} testID={'Example.swipeable'} > Text { console.log('Text.onPress', e) }} testID={'Example.text'} > PRESS ME. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent vel lectus urna. Aliquam vitae justo porttitor, aliquam erat nec, venenatis diam. Vivamus facilisis augue non urna mattis ultricies. Suspendisse et vulputate enim, a maximus nulla. Vivamus imperdiet hendrerit consequat. Aliquam lorem quam, elementum eget ex nec, ultrices porttitor nibh. Nulla pellentesque urna leo, a aliquet elit rhoncus a. Aenean ultricies, nunc a interdum dictum, dui odio scelerisque mauris, a fringilla elit ligula vel sem. Sed vel aliquet ipsum, sed rhoncus velit. Vivamus commodo pretium libero id placerat. TRUNCATED after 1 line. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent vel lectus urna. Aliquam vitae justo porttitor, aliquam erat nec, venenatis diam. Vivamus facilisis augue non urna mattis ultricies. Suspendisse et vulputate enim, a maximus nulla. Vivamus imperdiet hendrerit consequat. TextInput { console.log('TextInput.onBlur', e) }} onChange={(e) => { console.log('TextInput.onChange', e) }} onChangeText={(e) => { console.log('TextInput.onChangeText', e) }} onFocus={(e) => { console.log('TextInput.onFocus', e) }} /> Touchable { console.log('Touchable.onLongPress', e) }} onPress={(e) => { console.log('Touchable.onPress', e) }} onPressIn={(e) => { console.log('Touchable.onPressIn', e) }} onPressOut={(e) => { console.log('Touchable.onPressOut', e) }} > Touchable area (press, long press) View Default layout {[ 1, 2, 3, 4, 5, 6 ].map((item, i) => { return ( {item} ) })} Row layout {[ 1, 2, 3, 4, 5, 6 ].map((item, i) => { return ( {item} ) })} pointerEvents {['box-none', 'box-only', 'none'].map((value, i) => { return ( ) })} ) } } const styles = { root: { fontFamily: 'sans-serif', maxWidth: '600px', margin: '0 auto' }, row: { flexDirection: 'row', flexWrap: 'wrap' }, box: { alignItems: 'center', flexGrow: 1, justifyContent: 'center', borderWidth: '1px' }, boxFull: { width: '100%' }, pointerEventsBox: { alignItems: 'center', borderWidth: '1px', flexGrow: '1', height: '100px', justifyContent: 'center' }, touchableArea: { alignItems: 'center', borderWidth: 1, height: '200px', justifyContent: 'center' } } React.render(, document.getElementById('react-root'))