From 3e72bfa56c860826429a842f6c128d78d4a930db Mon Sep 17 00:00:00 2001 From: Jules Laplace Date: Thu, 1 Jun 2017 19:47:08 -0400 Subject: react-native-web port of fmf app --- client/src/lib/timeline/timelineEvent.js | 102 +++++++++++++++++++++++++++++++ 1 file changed, 102 insertions(+) create mode 100644 client/src/lib/timeline/timelineEvent.js (limited to 'client/src/lib/timeline/timelineEvent.js') diff --git a/client/src/lib/timeline/timelineEvent.js b/client/src/lib/timeline/timelineEvent.js new file mode 100644 index 0000000..903ceed --- /dev/null +++ b/client/src/lib/timeline/timelineEvent.js @@ -0,0 +1,102 @@ +import React, { Component } from 'react'; +import { + TouchableOpacity, + StyleSheet, + Image, + View +} from 'react-native'; + +import ClearText from '../components/text' + +const isIphone = (navigator.userAgent.match(/iPhone/i)) || (navigator.userAgent.match(/iPod/i)) +const isIpad = (navigator.userAgent.match(/iPad/i)) +const isAndroid = (navigator.userAgent.match(/Android/i)) +const isMobile = isIphone || isIpad || isAndroid +const isDesktop = ! isMobile + +const imageHeight = isMobile ? 70 : 100 +const imageWidth = isMobile ? 100 : 150 + +export default class TimelineEvent extends Component { + constructor() { + super() + } + render() { + const item = this.props.item + let image; + if (item.image && item.image.uri) { + const originalWidth = Number(item.image.width) + const originalHeight = Number(item.image.height) + let height = originalHeight > imageHeight ? imageHeight : originalHeight + let width = originalWidth * height / originalHeight + if (width > imageWidth) { + width = imageWidth + height = originalHeight * imageWidth / originalWidth + } + if (isNaN(width) || isNaN(height)) { + console.log(width, height, item.image.uri) + } + image = + } else { + image = + } + return ( + this.props.onPress(this.props.item) }> +
this.ref = ref} style={{flex: 0}}>
+ + + {item.date} + + {image} + + {item.title} + + +
+ ) + } +} + +const styles = StyleSheet.create({ + item: { + flex: 1, + width: '80%', + justifyContent: 'flex-start', + alignItems: 'center', + flexDirection: 'row', + padding: 10, + marginBottom: 10, + minHeight: 100, + }, + dateContainer: { + width: '30%', + justifyContent: 'flex-start', + alignItems: 'center', + paddingRight: 10, + paddingLeft: 30, + }, + imageContainer: { + width: '40%', + justifyContent: 'flex-start', + alignItems: 'center', + marginRight: 10, + }, + titleContainer: { + width: '30%', + justifyContent: 'flex-start', + alignItems: 'center', + paddingLeft: 10, + }, + title: { + textAlign: 'center', + fontWeight: 'bold', + }, + date: { + textAlign: 'center', + }, +}) -- cgit v1.2.3-70-g09d2