more changes

This commit is contained in:
Arjun Patel
2018-04-25 16:07:40 -07:00
parent f4e767815e
commit ab9614848a
3 changed files with 220 additions and 0 deletions
+80
View File
@@ -0,0 +1,80 @@
/*
* Home screen with logo and connect button
*/
import React, { Component } from 'react';
import {
Dimensions,
View,
ImageBackground,
Text,
TouchableOpacity,
Permissions,
AsyncStorage
} from 'react-native';
import {
Actions
} from 'react-native-router-flux';
const windowWidth = Dimensions.get('window').width;
const windowHeight = Dimensions.get('window').height;
const backgroundLink = 'https://cdn.shopify.com/s/files/1/2567/6484/products/Polygon_Esprit_geometric_white_and_gold_5.jpg?v=1517325402';
type Props = {};
export default class Home extends Component<Props> {
connect() {
Actions.loading();
}
render() {
return (
<View style={homeStyles.container}>
<ImageBackground style={homeStyles.bg} source={{uri : backgroundLink}} >
<View>
<Text style={homeStyles.logo}>Nexto</Text>
<Text style={homeStyles.motto}>spontaneous connection</Text>
</View>
<TouchableOpacity style={homeStyles.connect} onPress={this.connect.bind(this)}>
<Text style={homeStyles.connectTxt}>Connect</Text>
</TouchableOpacity>
</ImageBackground>
</View>
);
}
}
const homeStyles = {
container: {
flex: 1,
backgroundColor: '#0e8f9e',
},
bg: {
flex: 1,
flexDirection: 'column',
justifyContent: 'space-around',
alignItems: 'center',
width: windowWidth,
height: windowHeight
},
logo: {
color: 'grey',
fontSize: 50,
textAlign: 'center',
zIndex: 100
},
motto: {
color: '#0e8f9e',
fontSize: 18
},
connect: {
backgroundColor: '#0e8f9e',
padding: 15,
width: windowWidth - 100,
justifyContent: 'flex-end',
},
connectTxt: {
textAlign: 'center',
color: 'white',
fontSize: 25
}
}
+80
View File
@@ -0,0 +1,80 @@
/*
* Universal Loading screen that can be used for any situations
*/
import React, { Component } from 'react';
import {
Dimensions,
View,
Image,
Text,
AsyncStorage
} from 'react-native';
import {
Actions
} from 'react-native-router-flux';
const windowWidth = Dimensions.get('window').width;
const windowHeight = Dimensions.get('window').height;
const loadingGIF = 'http://www.playrosy.com/ourgames/vampiregirlmakeover/images/_preloader.gif';
type Props = {};
export default class Loading extends Component<Props> {
componentWillMount() {
// Getting the location of the user
navigator.geolocation.getCurrentPosition((position) => {
console.log('Getting User Location:');
this.latitude = parseFloat(position.coords.latitude);
this.longitude = parseFloat(position.coords.longitude);
console.log(String(this.latitude) + ' ' + String(this.longitude));
//AsyncStorage.setItem('longitude', this.longitude);
//AsyncStorage.setItem('latitude', this.latitude);
Actions.main();
},
(error) => console.log(error),
// high accuracy might need slight adjusting with its values
// or perhaps do high accuracy and if it times out then do
// regular getPosition
//{ enableHighAccuracy: false, timeout: 2000, maximumAge: 1000 }
);
}
render() {
return (
<View style={loadingStyles.container}>
<Image style={loadingStyles.gif} source={{ uri: null }} />
<Text style={loadingStyles.waitTxt}>Please wait to be connected...</Text>
<View style={loadingStyles.copyright}>
<Text style={loadingStyles.copyTxt}>&copy; Nexto</Text>
</View>
</View>
);
}
}
const loadingStyles = {
container: {
flex: 1,
justifyContent: 'center',
alignItems: 'center',
flexDirection: 'column',
backgroundColor: '#0e8f9e',
},
gif: {
height: 50,
width: 50
},
waitTxt: {
color: 'white',
fontSize: 15
},
copyright: {
position: 'absolute',
bottom: 30,
zIndex: 10
},
copyTxt: {
fontSize: 15,
color: 'white',
fontFamily: 'TitilliumWeb-Regular'
}
}
+60
View File
@@ -0,0 +1,60 @@
/*
* Main screen with top Navbar, chat scroll view,
* and Ad space components
*/
import React, { Component } from 'react';
import {
Dimensions,
View,
Text
} from 'react-native';
import {
Actions
} from 'react-native-router-flux';
// imported components for different sections in main component
import Navbar from './main/navbar.js';
import Chat from './main/chat.js';
import AdSpace from './main/adspace.js';
const windowWidth = Dimensions.get('window').width;
const windowHeight = Dimensions.get('window').height;
type Props = {};
export default class Main extends Component<Props> {
render() {
console.log('in Main');
return (
<View style={styles.container}>
<View style={styles.navbar}>
<Navbar />
</View>
<View style={styles.chat}>
<Chat />
</View>
<View style={styles.adspace}>
<AdSpace />
</View>
</View>
);
}
}
const styles = {
container: {
flex: 18,
flexDirection: 'column',
justifyContent: 'space-between'
},
navbar: {
flex: 2
},
chat: {
flex: 15,
backgroundColor: 'white'
},
adspace: {
flex: 1
}
}