added some placeholder functions / code.
mostly learning what I can do with React-Native.
This commit is contained in:
@@ -2,11 +2,18 @@ import React, { Component } from 'react';
|
|||||||
import {
|
import {
|
||||||
Platform,
|
Platform,
|
||||||
StyleSheet,
|
StyleSheet,
|
||||||
|
Image,
|
||||||
|
ListView,
|
||||||
Text,
|
Text,
|
||||||
|
ScrollView,
|
||||||
|
TextInput,
|
||||||
|
TouchableHighlight,
|
||||||
View
|
View
|
||||||
} from 'react-native';
|
} from 'react-native';
|
||||||
|
|
||||||
import RunInfo from './components/run-info';
|
import RunInfo from './components/run-info';
|
||||||
|
import RunInfoNumeric from './components/run-info-num';
|
||||||
|
|
||||||
import MapView from 'react-native-maps';
|
import MapView from 'react-native-maps';
|
||||||
const instructions = Platform.select({
|
const instructions = Platform.select({
|
||||||
ios: 'Press Cmd+R to reload,\n' +
|
ios: 'Press Cmd+R to reload,\n' +
|
||||||
@@ -15,29 +22,87 @@ const instructions = Platform.select({
|
|||||||
'Shake or press menu button for dev menu',
|
'Shake or press menu button for dev menu',
|
||||||
});
|
});
|
||||||
|
|
||||||
|
{/*<View style={{flex: 1}}>*/}
|
||||||
|
{/*<MapView style={styles.map}*/}
|
||||||
|
{/*showsUserLocation*/}
|
||||||
|
{/*followsUserLocation*/}
|
||||||
|
{/*initialRegion={{*/}
|
||||||
|
{/*latitude: 37.33307,*/}
|
||||||
|
{/*longitude: -122.0324,*/}
|
||||||
|
{/*latitudeDelta: 0.02,*/}
|
||||||
|
{/*longitudeDelta: 0.02*/}
|
||||||
|
{/*}}*/}
|
||||||
|
{/*/>*/}
|
||||||
|
|
||||||
type Props = {};
|
type Props = {};
|
||||||
export default class App extends Component<Props> {
|
export default class App extends Component<Props> {
|
||||||
render() {
|
constructor(props) {
|
||||||
return (
|
super(props);
|
||||||
<View style={{flex: 1}}>
|
|
||||||
<MapView style={styles.map}
|
|
||||||
showsUserLocation
|
|
||||||
followsUserLocation
|
|
||||||
initialRegion={{
|
|
||||||
latitude: 37.33307,
|
|
||||||
longitude: -122.0324,
|
|
||||||
latitudeDelta: 0.02,
|
|
||||||
longitudeDelta: 0.02
|
|
||||||
}}
|
|
||||||
/>
|
|
||||||
{/*<Text style={{flex: 1, backgroundColor: 'green'}}>Map View</Text>*/}
|
|
||||||
{/*<View style={styles.infoWrapper}>*/}
|
|
||||||
{/*<RunInfo title = "Distance" value = "0 km"/>*/}
|
|
||||||
{/*<RunInfo title = "Speed" value = "0 km/h"/>*/}
|
|
||||||
{/*<RunInfo title = "Direction" value = "NE"/>*/}
|
|
||||||
{/*</View>*/}
|
|
||||||
</View>
|
|
||||||
|
|
||||||
|
let ds = new ListView.DataSource({rowHasChanged: (a, b) => a !== b});
|
||||||
|
this.state = {dataSource: ds.cloneWithRows([
|
||||||
|
'john', 'joel', 'miki', 'iu lol', 'yeeet',
|
||||||
|
'john', 'joel', 'miki', 'iu lol', 'yeeet',
|
||||||
|
'john', 'joel', 'miki', 'iu lol', 'yeeet',
|
||||||
|
'john', 'joel', 'miki', 'iu lol', 'yeeet',
|
||||||
|
'john', 'joel', 'miki', 'iu lol', 'yeeet',
|
||||||
|
])};
|
||||||
|
|
||||||
|
setInterval(() => {
|
||||||
|
// this.distanceInfo.setState({value: Math.random() * 100});
|
||||||
|
// this.speedInfo.setState({value: Math.random() * 15});
|
||||||
|
// this.directionInfo.setState({value: this.directionInfo.state === 'N' ? 'NW' : 'N'});
|
||||||
|
}, 1000);
|
||||||
|
}
|
||||||
|
render() {
|
||||||
|
|
||||||
|
return (
|
||||||
|
<ListView
|
||||||
|
dataSource={this.state.dataSource}
|
||||||
|
renderSeparator={() => <View style = {{backgroundColor: '#CCC', height: 1}}/>}
|
||||||
|
renderRow={(row) => (
|
||||||
|
<View style={{flexDirection: 'row'}}>
|
||||||
|
<Image source = {{uri: 'https://i.imgur.com/Zbv1S4G.png'}} style = {{width: 50, margin: 10}}/>
|
||||||
|
<Text style = {{fontSize: 25, padding: 10}}>{row}</Text>
|
||||||
|
</View>
|
||||||
|
)}
|
||||||
|
/>
|
||||||
|
// <View style ={{flex: 1}}>
|
||||||
|
// <TextInput
|
||||||
|
// style={styles.textInput}
|
||||||
|
// autoCapitalize="words"
|
||||||
|
// placeholder="Type something"
|
||||||
|
// onChangeText={(text) => this.setState({text})}
|
||||||
|
// onBlur={() => this.setState({ text: this.state.text.toUpperCase() })}
|
||||||
|
// />
|
||||||
|
//
|
||||||
|
// <TouchableHighlight
|
||||||
|
// onPress={() => this.setState({confirmedText: this.state.text})}
|
||||||
|
// onLongPress={() => this.setState({confirmedText: this.state.text.toLowerCase()})}
|
||||||
|
// >
|
||||||
|
// <Text style={{fontSize: 16, backgroundColor: '#EEE', textAlign: 'center'}}>Press Me</Text>
|
||||||
|
// </TouchableHighlight>
|
||||||
|
//
|
||||||
|
// <Text style={{flex: 1, fontSize: 18}}>
|
||||||
|
// {this.state.confirmedText}
|
||||||
|
// </Text>
|
||||||
|
//
|
||||||
|
// <View style={styles.infoWrapper}>
|
||||||
|
//
|
||||||
|
// <RunInfoNumeric title = "Distance"
|
||||||
|
// unit="km"
|
||||||
|
// ref={(info) => this.distanceInfo = info}
|
||||||
|
// />
|
||||||
|
// <RunInfoNumeric title = "Speed"
|
||||||
|
// unit="km/h"
|
||||||
|
// ref={(info) => this.speedInfo = info}
|
||||||
|
// />
|
||||||
|
// <RunInfo title = "Direction"
|
||||||
|
// value = "NE"
|
||||||
|
// ref={(info) => this.directionInfo = info}
|
||||||
|
// />
|
||||||
|
// </View>
|
||||||
|
// </View>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+15
-3
@@ -1,4 +1,5 @@
|
|||||||
import React, { Component } from 'react';
|
import React, { Component } from 'react';
|
||||||
|
import sharedStyles from '../shared-styles';
|
||||||
import {
|
import {
|
||||||
Platform,
|
Platform,
|
||||||
StyleSheet,
|
StyleSheet,
|
||||||
@@ -7,11 +8,22 @@ import {
|
|||||||
} from 'react-native';
|
} from 'react-native';
|
||||||
|
|
||||||
export default class RunInfo extends Component {
|
export default class RunInfo extends Component {
|
||||||
|
constructor(props) {
|
||||||
|
super(props);
|
||||||
|
this.state = { value: this.props.value};
|
||||||
|
}
|
||||||
|
|
||||||
|
formatValue() {
|
||||||
|
return this.state.value;
|
||||||
|
}
|
||||||
|
|
||||||
render() {
|
render() {
|
||||||
|
let value = this.state.value ? this.formatValue() : '-';
|
||||||
return (
|
return (
|
||||||
<View>
|
<View style ={[sharedStyles.runInfoWrapper, {flex: 1}]}>
|
||||||
<Text>{this.props.title}</Text>
|
<Text style ={sharedStyles.runInfoValue}>{value}</Text>
|
||||||
<Text>{this.props.value}</Text>
|
<Text style={sharedStyles.runInfoTitle}>{this.props.title}</Text>
|
||||||
|
|
||||||
</View>
|
</View>
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -7,6 +7,7 @@
|
|||||||
"test": "jest"
|
"test": "jest"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
|
"npm": "^6.4.0",
|
||||||
"react": "16.3.1",
|
"react": "16.3.1",
|
||||||
"react-native": "0.55.4",
|
"react-native": "0.55.4",
|
||||||
"react-native-maps": "^0.21.0"
|
"react-native-maps": "^0.21.0"
|
||||||
|
|||||||
Reference in New Issue
Block a user