This commit is contained in:
parent
90b6337d76
commit
8d25174671
933
App/app/App.js
933
App/app/App.js
|
@ -1,555 +1,504 @@
|
||||||
import React, {Component} from 'react';
|
import React, { Component } from "react";
|
||||||
import {
|
import {
|
||||||
Platform,
|
Platform,
|
||||||
StyleSheet,
|
StyleSheet,
|
||||||
Text,
|
Text,
|
||||||
View,
|
View,
|
||||||
StatusBar,
|
StatusBar,
|
||||||
Dimensions,
|
Dimensions,
|
||||||
Image,
|
Image,
|
||||||
ActivityIndicator,
|
ActivityIndicator,
|
||||||
Button,
|
Button,
|
||||||
TouchableHighlight,
|
TouchableHighlight,
|
||||||
Keyboard,
|
Keyboard,
|
||||||
ImageBackground,
|
ImageBackground,
|
||||||
LinearGradient,
|
LinearGradient,
|
||||||
TouchableOpacity,
|
TouchableOpacity,
|
||||||
TextInput,
|
TextInput,
|
||||||
NetInfo,
|
NetInfo,
|
||||||
Animated
|
Animated
|
||||||
|
} from "react-native";
|
||||||
|
|
||||||
} from 'react-native';
|
import { bindActionCreators } from "redux";
|
||||||
|
import { connect } from "react-redux";
|
||||||
|
|
||||||
import {bindActionCreators} from 'redux';
|
import QRCodeScanner from "react-native-qrcode-scanner";
|
||||||
import {connect} from 'react-redux';
|
import { UtilStyles } from "./assets/styles";
|
||||||
|
|
||||||
import QRCodeScanner from 'react-native-qrcode-scanner';
|
import * as Actions from "./store/actions";
|
||||||
import {UtilStyles} from './assets/styles'
|
|
||||||
|
|
||||||
import * as Actions from './store/actions';
|
import { RkButton, RkTheme, RkText, RkTextInput } from "react-native-ui-kitten";
|
||||||
|
|
||||||
import {RkButton, RkTheme, RkText, RkTextInput} from 'react-native-ui-kitten';
|
|
||||||
|
|
||||||
import Modal from "react-native-modal";
|
import Modal from "react-native-modal";
|
||||||
|
|
||||||
import Router from './Router'
|
import Router from "./Router";
|
||||||
|
|
||||||
import Icon from "react-native-vector-icons/Ionicons"
|
import Icon from "react-native-vector-icons/Ionicons";
|
||||||
|
|
||||||
const SCREEN_HEIGHT = Dimensions.get("window").height;
|
const SCREEN_HEIGHT = Dimensions.get("window").height;
|
||||||
const SCREEN_WIDTH = Dimensions.get("window").width;
|
const SCREEN_WIDTH = Dimensions.get("window").width;
|
||||||
|
|
||||||
import Swiper from 'react-native-swiper';
|
import Swiper from "react-native-swiper";
|
||||||
var TimerMixin = require('react-timer-mixin');
|
var TimerMixin = require("react-timer-mixin");
|
||||||
|
|
||||||
function handleConnectivityChange() {
|
function handleConnectivityChange() {
|
||||||
console.log("asdasd");
|
console.log("asdasd");
|
||||||
}
|
}
|
||||||
|
|
||||||
class App extends Component {
|
class App extends Component {
|
||||||
handleConnectivityChange = isConnected => {
|
handleConnectivityChange = isConnected => {
|
||||||
this.setState({ isConnected });
|
this.setState({ isConnected });
|
||||||
}
|
};
|
||||||
_activate=()=>{
|
_activate = () => {
|
||||||
|
this.setState({ isModalVisible: !this.state.isModalVisible });
|
||||||
this.setState({ isModalVisible: !this.state.isModalVisible});
|
this.scanner.reactivate();
|
||||||
this.scanner.reactivate();
|
};
|
||||||
|
_scanQr = () => {
|
||||||
}
|
this.props.openScannerLogin();
|
||||||
_scanQr=()=>{
|
console.log(this.props.UI_loginScannerActive);
|
||||||
this.props.openScannerLogin()
|
};
|
||||||
console.log(this.props.UI_loginScannerActive)
|
_tryLogin = () => {
|
||||||
}
|
//console.log(this.state.text)
|
||||||
_tryLogin=()=>{
|
//this.scanner.reactivate();
|
||||||
|
this.props.login(this.state.username, this.state.text);
|
||||||
//console.log(this.state.text)
|
};
|
||||||
//this.scanner.reactivate();
|
|
||||||
this.props.login(this.state.username, this.state.text);
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
_toggleModal = () =>
|
|
||||||
this.setState({ isModalVisible: !this.state.isModalVisible });
|
|
||||||
|
|
||||||
constructor(props) {
|
|
||||||
|
|
||||||
super(props);
|
|
||||||
|
|
||||||
this.state = {
|
|
||||||
|
|
||||||
token: {valid: false},
|
|
||||||
tokenData: '',
|
|
||||||
onHold: true,
|
|
||||||
logged: false,
|
|
||||||
isModalVisible: false,
|
|
||||||
state : {text: ''},
|
|
||||||
username:'QR code',
|
|
||||||
failedAttempt: false,
|
|
||||||
push:4,
|
|
||||||
UI_loginScannerActive:false,
|
|
||||||
userDetails:{username:'', password:''},
|
|
||||||
isConnected: true
|
|
||||||
};
|
|
||||||
|
|
||||||
}
|
|
||||||
_print=()=>{
|
|
||||||
console.log("hello")
|
|
||||||
this.setState({push:0})
|
|
||||||
}
|
|
||||||
checkValue=(e)=>{
|
|
||||||
console.log("check"+e)
|
|
||||||
}
|
|
||||||
_handleConnectionChange = (isConnected) => {
|
|
||||||
this.props.connectionState(true);
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
componentDidMount() {
|
|
||||||
this.props.hold();
|
|
||||||
NetInfo.isConnected.addEventListener('connectionChange', this.handleConnectivityChange);
|
|
||||||
|
|
||||||
this.setState({isModalVisible: false})
|
|
||||||
//verifica se o utilizador tem token guardado
|
|
||||||
this.props.checkUser(this.props.userDetails);
|
|
||||||
this.keyboardDidShowListener = Keyboard.addListener('keyboardDidShow', this._keyboardDidShow);
|
|
||||||
this.keyboardDidHideListener = Keyboard.addListener('keyboardDidHide', this._keyboardDidHide);
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
componentWillUnmount() {
|
|
||||||
NetInfo.isConnected.removeEventListener('connectionChange', this.handleConnectivityChange);
|
|
||||||
}
|
|
||||||
|
|
||||||
_keyboardDidShow () {
|
|
||||||
//alert('Keyboard Shown');
|
|
||||||
// this.setState({push:0})
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
_keyboardDidHide () {
|
|
||||||
|
|
||||||
//this.setState({push:4})
|
|
||||||
|
|
||||||
}
|
|
||||||
onSuccess = (e) => {
|
|
||||||
|
|
||||||
// this.setState({ isModalVisible: !this.state.isModalVisible });
|
|
||||||
// this.props.login(e.data, 'f8908cc0');
|
|
||||||
this.props.closeLoginQRScan();
|
|
||||||
this.setState({username:e.data})
|
|
||||||
|
|
||||||
console.log("QR code lido");
|
|
||||||
|
|
||||||
|
_toggleModal = () =>
|
||||||
|
this.setState({ isModalVisible: !this.state.isModalVisible });
|
||||||
|
|
||||||
|
constructor(props) {
|
||||||
|
super(props);
|
||||||
|
|
||||||
|
this.state = {
|
||||||
|
token: { valid: false },
|
||||||
|
tokenData: "",
|
||||||
|
onHold: true,
|
||||||
|
logged: false,
|
||||||
|
isModalVisible: false,
|
||||||
|
state: { text: "" },
|
||||||
|
username: "QR code",
|
||||||
|
failedAttempt: false,
|
||||||
|
push: 4,
|
||||||
|
UI_loginScannerActive: false,
|
||||||
|
userDetails: { username: "", password: "" },
|
||||||
|
isConnected: true,
|
||||||
|
modalOpen: false
|
||||||
};
|
};
|
||||||
|
}
|
||||||
|
_print = () => {
|
||||||
|
console.log("hello");
|
||||||
|
this.setState({ push: 0 });
|
||||||
|
};
|
||||||
|
checkValue = e => {
|
||||||
|
console.log("check" + e);
|
||||||
|
};
|
||||||
|
_handleConnectionChange = isConnected => {
|
||||||
|
this.props.connectionState(true);
|
||||||
|
};
|
||||||
|
|
||||||
render() {
|
componentDidMount() {
|
||||||
if (!this.state.isConnected) {
|
//this.props.hold();
|
||||||
return (
|
NetInfo.isConnected.addEventListener(
|
||||||
<View>
|
"connectionChange",
|
||||||
<Text>cenas da vida</Text>
|
this.handleConnectivityChange
|
||||||
</View>
|
);
|
||||||
);
|
|
||||||
}
|
|
||||||
if (!this.props.logged && this.props.onHold) {
|
|
||||||
|
|
||||||
|
this.setState({ isModalVisible: false });
|
||||||
|
//verifica se o utilizador tem token guardado
|
||||||
|
this.props.checkUser(this.props.userDetails);
|
||||||
|
this.keyboardDidShowListener = Keyboard.addListener(
|
||||||
|
"keyboardDidShow",
|
||||||
|
this._keyboardDidShow
|
||||||
|
);
|
||||||
|
this.keyboardDidHideListener = Keyboard.addListener(
|
||||||
|
"keyboardDidHide",
|
||||||
|
this._keyboardDidHide
|
||||||
|
);
|
||||||
|
}
|
||||||
|
componentWillUnmount() {
|
||||||
|
NetInfo.isConnected.removeEventListener(
|
||||||
|
"connectionChange",
|
||||||
|
this.handleConnectivityChange
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
return (
|
_keyboardDidShow() {
|
||||||
<View style={UtilStyles.containerLoading}>
|
//alert('Keyboard Shown');
|
||||||
|
// this.setState({push:0})
|
||||||
<ActivityIndicator size="large" color="red"/>
|
}
|
||||||
</View>
|
|
||||||
)
|
|
||||||
|
|
||||||
}
|
_keyboardDidHide() {
|
||||||
else
|
//this.setState({push:4})
|
||||||
{
|
}
|
||||||
|
onSuccess = e => {
|
||||||
|
// this.setState({ isModalVisible: !this.state.isModalVisible });
|
||||||
|
// this.props.login(e.data, 'f8908cc0');
|
||||||
|
this.props.closeLoginQRScan();
|
||||||
|
this.setState({ username: e.data });
|
||||||
|
|
||||||
// console.log('token... '+ this.props.logged)
|
console.log("QR code lido");
|
||||||
|
};
|
||||||
|
|
||||||
//se existir token
|
render() {
|
||||||
|
if (!this.state.isConnected) {
|
||||||
if (this.props.logged ) {
|
return (
|
||||||
|
<View>
|
||||||
return (
|
<Text>cenas da vida</Text>
|
||||||
|
</View>
|
||||||
<Router></Router>
|
);
|
||||||
)
|
|
||||||
}
|
|
||||||
return (
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<View style={styles.slide2}>
|
|
||||||
<Modal isVisible={this.props.UI_loginScannerActive}>
|
|
||||||
<View style={{ flex: 1 , backgroundColor:'white'}}>
|
|
||||||
<Button onPress={this.props.closeLoginQRScan} title={"Fechar scanner"}> </Button>
|
|
||||||
|
|
||||||
<QRCodeScanner
|
|
||||||
onRead={this.onSuccess}
|
|
||||||
cameraStyle={ styles.cameraContainer}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/>
|
|
||||||
</View>
|
|
||||||
|
|
||||||
</Modal>
|
|
||||||
<View style={{ width:'100%',
|
|
||||||
|
|
||||||
justifyContent: 'center',
|
|
||||||
alignItems: 'center',}}>
|
|
||||||
<Image style={styles.logo2} source={require('./assets/img/logo2.png')}/>
|
|
||||||
|
|
||||||
</View>
|
|
||||||
<View styles={styles.loginContainer}>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<View style={styles.inputSection}>
|
|
||||||
|
|
||||||
<TextInput
|
|
||||||
style={styles.input}
|
|
||||||
placeholder={this.state.username}
|
|
||||||
onChangeText={(searchString) => {this.setState({searchString})}}
|
|
||||||
maxLength={15}
|
|
||||||
underlineColorAndroid="transparent"
|
|
||||||
/>
|
|
||||||
<TouchableOpacity onPress={this._scanQr}>
|
|
||||||
|
|
||||||
<View style={styles.scanQR}>
|
|
||||||
|
|
||||||
<Icon style={styles.searchIcon} name="ios-qr-scanner" size={30} color="#000"/>
|
|
||||||
<Text>Scan QR</Text>
|
|
||||||
|
|
||||||
</View>
|
|
||||||
</TouchableOpacity>
|
|
||||||
|
|
||||||
</View>
|
|
||||||
|
|
||||||
<TextInput style={styles.passwordInput}
|
|
||||||
onFocus={this._print}
|
|
||||||
maxLength={10}
|
|
||||||
blurOnSubmit ={true}
|
|
||||||
secureTextEntry={true}
|
|
||||||
|
|
||||||
onChangeText={(text) => this.setState({text})}
|
|
||||||
clearButtonMode='always'
|
|
||||||
value={this.state.text}
|
|
||||||
clearTextOnFocus={true}
|
|
||||||
onSubmitEditing={Keyboard.dismiss}
|
|
||||||
placeholder='Password' />
|
|
||||||
|
|
||||||
<RkButton rkType='dark' style={styles.loginBtn} onPress={this._tryLogin}>Entrar</RkButton>
|
|
||||||
|
|
||||||
</View>
|
|
||||||
|
|
||||||
<View style={ styles.buttons }>
|
|
||||||
<TouchableOpacity
|
|
||||||
style={styles.button}>
|
|
||||||
|
|
||||||
<Icon name="logo-facebook" size={40}/>
|
|
||||||
</TouchableOpacity>
|
|
||||||
<TouchableOpacity
|
|
||||||
style={styles.button}>
|
|
||||||
|
|
||||||
<Icon name="logo-instagram" size={40}/>
|
|
||||||
</TouchableOpacity>
|
|
||||||
<TouchableOpacity
|
|
||||||
style={styles.button}>
|
|
||||||
|
|
||||||
<Icon name="md-heart" size={40}/>
|
|
||||||
|
|
||||||
</TouchableOpacity>
|
|
||||||
|
|
||||||
</View>
|
|
||||||
<View style={styles.footer}>
|
|
||||||
<View style={styles.textRow}>
|
|
||||||
|
|
||||||
<RkText rkType='primary3'>Não sabes a password?</RkText>
|
|
||||||
<RkButton rkType='clear' onPress={this.onSignUpButtonPressed}>
|
|
||||||
|
|
||||||
<TouchableOpacity>
|
|
||||||
<RkText style={{color:'red'}} kType='header6'>Recuperar Password</RkText>
|
|
||||||
</TouchableOpacity>
|
|
||||||
|
|
||||||
</RkButton>
|
|
||||||
|
|
||||||
</View>
|
|
||||||
</View>
|
|
||||||
</View>
|
|
||||||
|
|
||||||
|
|
||||||
);
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
if (!this.props.logged && this.props.onHold) {
|
||||||
|
return (
|
||||||
|
<View style={UtilStyles.containerLoading}>
|
||||||
|
<ActivityIndicator size="large" color="red" />
|
||||||
|
</View>
|
||||||
|
);
|
||||||
|
} else {
|
||||||
|
// console.log('token... '+ this.props.logged)
|
||||||
|
|
||||||
|
//se existir token
|
||||||
|
|
||||||
|
if (this.props.logged) {
|
||||||
|
return <Router />;
|
||||||
|
}
|
||||||
|
return (
|
||||||
|
<View style={styles.slide2}>
|
||||||
|
<Modal isVisible={this.props.UI_loginScannerActive}>
|
||||||
|
<View style={{ flex: 1, backgroundColor: "white" }}>
|
||||||
|
<Button
|
||||||
|
onPress={this.props.closeLoginQRScan}
|
||||||
|
title={"Fechar scanner"}
|
||||||
|
>
|
||||||
|
{" "}
|
||||||
|
</Button>
|
||||||
|
|
||||||
|
<QRCodeScanner
|
||||||
|
onRead={this.onSuccess}
|
||||||
|
cameraStyle={styles.cameraContainer}
|
||||||
|
/>
|
||||||
|
</View>
|
||||||
|
</Modal>
|
||||||
|
<View
|
||||||
|
style={{
|
||||||
|
width: "100%",
|
||||||
|
|
||||||
|
justifyContent: "center",
|
||||||
|
alignItems: "center"
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
<Image
|
||||||
|
style={styles.logo2}
|
||||||
|
source={require("./assets/img/logo2.png")}
|
||||||
|
/>
|
||||||
|
</View>
|
||||||
|
<View styles={styles.loginContainer}>
|
||||||
|
<View style={styles.inputSection}>
|
||||||
|
<TextInput
|
||||||
|
style={styles.input}
|
||||||
|
placeholder={this.state.username}
|
||||||
|
onChangeText={searchString => {
|
||||||
|
this.setState({ searchString });
|
||||||
|
}}
|
||||||
|
maxLength={15}
|
||||||
|
underlineColorAndroid="transparent"
|
||||||
|
/>
|
||||||
|
<TouchableOpacity onPress={this._scanQr}>
|
||||||
|
<View style={styles.scanQR}>
|
||||||
|
<Icon
|
||||||
|
style={styles.searchIcon}
|
||||||
|
name="ios-qr-scanner"
|
||||||
|
size={30}
|
||||||
|
color="#000"
|
||||||
|
/>
|
||||||
|
<Text>Scan QR</Text>
|
||||||
|
</View>
|
||||||
|
</TouchableOpacity>
|
||||||
|
</View>
|
||||||
|
|
||||||
|
<TextInput
|
||||||
|
style={styles.passwordInput}
|
||||||
|
onFocus={this._print}
|
||||||
|
maxLength={10}
|
||||||
|
blurOnSubmit={true}
|
||||||
|
secureTextEntry={true}
|
||||||
|
onChangeText={text => this.setState({ text })}
|
||||||
|
clearButtonMode="always"
|
||||||
|
value={this.state.text}
|
||||||
|
clearTextOnFocus={true}
|
||||||
|
onSubmitEditing={Keyboard.dismiss}
|
||||||
|
placeholder="Password"
|
||||||
|
/>
|
||||||
|
|
||||||
|
<RkButton
|
||||||
|
rkType="dark"
|
||||||
|
style={styles.loginBtn}
|
||||||
|
onPress={this._tryLogin}
|
||||||
|
>
|
||||||
|
Entrar
|
||||||
|
</RkButton>
|
||||||
|
</View>
|
||||||
|
|
||||||
|
<View style={styles.buttons}>
|
||||||
|
<TouchableOpacity style={styles.button}>
|
||||||
|
<Icon name="logo-facebook" size={40} />
|
||||||
|
</TouchableOpacity>
|
||||||
|
<TouchableOpacity style={styles.button}>
|
||||||
|
<Icon name="logo-instagram" size={40} />
|
||||||
|
</TouchableOpacity>
|
||||||
|
<TouchableOpacity style={styles.button}>
|
||||||
|
<Icon name="md-heart" size={40} />
|
||||||
|
</TouchableOpacity>
|
||||||
|
</View>
|
||||||
|
<View style={styles.footer}>
|
||||||
|
<View style={styles.textRow}>
|
||||||
|
<RkText rkType="primary3">Não sabes a password?</RkText>
|
||||||
|
<RkButton rkType="clear" onPress={this.onSignUpButtonPressed}>
|
||||||
|
<TouchableOpacity>
|
||||||
|
<RkText style={{ color: "red" }} kType="header6">
|
||||||
|
Recuperar Password
|
||||||
|
</RkText>
|
||||||
|
</TouchableOpacity>
|
||||||
|
</RkButton>
|
||||||
|
</View>
|
||||||
|
</View>
|
||||||
|
</View>
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
RkTheme.setType("RkButton", "dark", {
|
||||||
|
container: {
|
||||||
|
paddingTop: 10,
|
||||||
|
backgroundColor: "gray",
|
||||||
|
|
||||||
RkTheme.setType('RkButton', 'dark', {
|
borderRadius: 90
|
||||||
container: {
|
}
|
||||||
paddingTop: 10,
|
|
||||||
backgroundColor: 'gray',
|
|
||||||
|
|
||||||
borderRadius: 90,
|
|
||||||
}
|
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
const rectDimensions = SCREEN_WIDTH * 0.85; // this is equivalent to 255 from a 393 device width
|
const rectDimensions = SCREEN_WIDTH * 0.85; // this is equivalent to 255 from a 393 device width
|
||||||
|
|
||||||
const overlayColor = 'rgba(0,0,0,0.30)';
|
const overlayColor = "rgba(0,0,0,0.30)";
|
||||||
|
|
||||||
const styles = {
|
const styles = {
|
||||||
cameraContainer:{
|
cameraContainer: {
|
||||||
// height: Dimensions.get('window').height ,
|
// height: Dimensions.get('window').height ,
|
||||||
},
|
},
|
||||||
passwordInput:{
|
passwordInput: {
|
||||||
borderRadius: 90,
|
borderRadius: 90,
|
||||||
|
|
||||||
borderColor:'#bfbdbd',
|
|
||||||
borderWidth: 1,
|
|
||||||
marginTop:20,
|
|
||||||
marginBottom:20,
|
|
||||||
width:SCREEN_WIDTH*0.8,
|
|
||||||
|
|
||||||
backgroundColor: 'white',
|
|
||||||
|
|
||||||
borderRadius: 90,
|
borderColor: "#bfbdbd",
|
||||||
height: SCREEN_HEIGHT*0.08,
|
borderWidth: 1,
|
||||||
borderColor:'#bfbdbd',
|
marginTop: 20,
|
||||||
borderWidth: 1,
|
marginBottom: 20,
|
||||||
paddingLeft:SCREEN_WIDTH*0.05,
|
width: SCREEN_WIDTH * 0.8,
|
||||||
|
|
||||||
},
|
|
||||||
scanQRText:{
|
|
||||||
|
|
||||||
paddingTop:50
|
backgroundColor: "white",
|
||||||
// paddingTop:20,
|
|
||||||
|
|
||||||
|
|
||||||
},
|
borderRadius: 90,
|
||||||
scanQR:{
|
height: SCREEN_HEIGHT * 0.08,
|
||||||
|
borderColor: "#bfbdbd",
|
||||||
//flexDirection: 'row',
|
borderWidth: 1,
|
||||||
paddingTop:5,
|
paddingLeft: SCREEN_WIDTH * 0.05
|
||||||
backgroundColor:10,
|
},
|
||||||
|
scanQRText: {
|
||||||
width:80,
|
paddingTop: 50
|
||||||
paddingLeft:10,
|
// paddingTop:20,
|
||||||
backgroundColor:'#f24b4b',
|
},
|
||||||
borderBottomRightRadius:90,
|
scanQR: {
|
||||||
borderTopRightRadius:90,
|
//flexDirection: 'row',
|
||||||
height:'100%',
|
paddingTop: 5,
|
||||||
|
backgroundColor: 10,
|
||||||
},
|
|
||||||
inputSection: {
|
|
||||||
|
|
||||||
flexDirection: 'row',
|
|
||||||
backgroundColor: '#fff',
|
|
||||||
|
|
||||||
backgroundColor: 'white',
|
|
||||||
|
|
||||||
borderRadius: 90,
|
width: 80,
|
||||||
height: SCREEN_HEIGHT*0.08,
|
paddingLeft: 10,
|
||||||
borderColor:'#bfbdbd',
|
backgroundColor: "#f24b4b",
|
||||||
borderWidth: 1,
|
borderBottomRightRadius: 90,
|
||||||
|
borderTopRightRadius: 90,
|
||||||
|
height: "100%"
|
||||||
|
},
|
||||||
|
inputSection: {
|
||||||
|
flexDirection: "row",
|
||||||
|
backgroundColor: "#fff",
|
||||||
|
|
||||||
},
|
backgroundColor: "white",
|
||||||
searchIcon: {
|
|
||||||
paddingLeft:10
|
|
||||||
},
|
|
||||||
|
|
||||||
input: {
|
borderRadius: 90,
|
||||||
|
height: SCREEN_HEIGHT * 0.08,
|
||||||
|
borderColor: "#bfbdbd",
|
||||||
|
borderWidth: 1
|
||||||
flex: 1,
|
},
|
||||||
paddingRight: 10,
|
searchIcon: {
|
||||||
|
paddingLeft: 10
|
||||||
|
},
|
||||||
paddingLeft: 0,
|
|
||||||
paddingLeft:SCREEN_WIDTH*0.05,
|
|
||||||
color: '#424242',
|
|
||||||
|
|
||||||
},
|
|
||||||
textRow:{
|
|
||||||
marginBottom:40
|
|
||||||
},
|
|
||||||
loginContainer:{
|
|
||||||
width: '100%',
|
|
||||||
height: '30%',
|
|
||||||
justifyContent: 'center',
|
|
||||||
alignItems: 'center'
|
|
||||||
},
|
|
||||||
loginBtn:{
|
|
||||||
marginTop:10,
|
|
||||||
marginBottom:20,
|
|
||||||
marginLeft: '25%',
|
|
||||||
|
|
||||||
},
|
|
||||||
|
|
||||||
button: {
|
|
||||||
borderWidth:1,
|
|
||||||
borderColor:'rgba(0,0,0,0.2)',
|
|
||||||
alignItems:'center',
|
|
||||||
justifyContent:'center',
|
|
||||||
width:60,
|
|
||||||
height:60,
|
|
||||||
backgroundColor:'#fff',
|
|
||||||
borderRadius:100,
|
|
||||||
marginRight: 10,
|
|
||||||
marginLeft:10
|
|
||||||
},
|
|
||||||
footer: {},
|
|
||||||
|
|
||||||
buttons: {
|
input: {
|
||||||
flexDirection: 'row',
|
flex: 1,
|
||||||
marginBottom: 24,
|
paddingRight: 10,
|
||||||
marginHorizontal: 24,
|
|
||||||
marginTop:24,
|
|
||||||
justifyContent: 'space-around',
|
|
||||||
|
|
||||||
|
|
||||||
},
|
|
||||||
|
|
||||||
logoContainer:{
|
paddingLeft: 0,
|
||||||
|
paddingLeft: SCREEN_WIDTH * 0.05,
|
||||||
|
color: "#424242"
|
||||||
|
},
|
||||||
|
textRow: {
|
||||||
|
marginBottom: 40
|
||||||
|
},
|
||||||
|
loginContainer: {
|
||||||
|
width: "100%",
|
||||||
|
height: "30%",
|
||||||
|
justifyContent: "center",
|
||||||
|
alignItems: "center"
|
||||||
|
},
|
||||||
|
loginBtn: {
|
||||||
|
marginTop: 10,
|
||||||
|
marginBottom: 20,
|
||||||
|
marginLeft: "25%"
|
||||||
|
},
|
||||||
|
|
||||||
width:'100%',
|
button: {
|
||||||
|
borderWidth: 1,
|
||||||
justifyContent: 'center',
|
borderColor: "rgba(0,0,0,0.2)",
|
||||||
alignItems: 'center',
|
alignItems: "center",
|
||||||
marginTop:200
|
justifyContent: "center",
|
||||||
|
width: 60,
|
||||||
|
height: 60,
|
||||||
|
backgroundColor: "#fff",
|
||||||
|
borderRadius: 100,
|
||||||
|
marginRight: 10,
|
||||||
|
marginLeft: 10
|
||||||
|
},
|
||||||
|
footer: {},
|
||||||
|
|
||||||
},
|
buttons: {
|
||||||
|
flexDirection: "row",
|
||||||
|
marginBottom: 24,
|
||||||
|
marginHorizontal: 24,
|
||||||
|
marginTop: 24,
|
||||||
|
justifyContent: "space-around"
|
||||||
|
},
|
||||||
|
|
||||||
logo2:{
|
logoContainer: {
|
||||||
|
width: "100%",
|
||||||
// flex: 1,
|
|
||||||
// resizeMode: 'contain',
|
|
||||||
width: 200, height: 200,
|
|
||||||
|
|
||||||
},
|
justifyContent: "center",
|
||||||
wrapper: {
|
alignItems: "center",
|
||||||
},
|
marginTop: 200
|
||||||
slide1: {
|
},
|
||||||
flex: 1,
|
|
||||||
justifyContent: 'center',
|
|
||||||
alignItems: 'center',
|
|
||||||
backgroundColor: 'white',
|
|
||||||
},
|
|
||||||
slide2: {
|
|
||||||
flex: 1,
|
|
||||||
justifyContent: 'center',
|
|
||||||
alignItems: 'center',
|
|
||||||
backgroundColor: 'white',
|
|
||||||
},
|
|
||||||
slide3: {
|
|
||||||
flex: 1,
|
|
||||||
justifyContent: 'center',
|
|
||||||
alignItems: 'center',
|
|
||||||
color:'black',
|
|
||||||
backgroundColor: 'white',
|
|
||||||
},
|
|
||||||
text: {
|
|
||||||
color: '#fff',
|
|
||||||
fontSize: 30,
|
|
||||||
fontWeight: 'bold',
|
|
||||||
},
|
|
||||||
recover: {
|
|
||||||
paddingTop: 10,
|
|
||||||
color: "red",
|
|
||||||
paddingBottom: 10
|
|
||||||
},
|
|
||||||
manual: {},
|
|
||||||
|
|
||||||
logo: {
|
logo2: {
|
||||||
|
// flex: 1,
|
||||||
|
// resizeMode: 'contain',
|
||||||
|
width: 200,
|
||||||
|
height: 200
|
||||||
|
},
|
||||||
|
wrapper: {},
|
||||||
|
slide1: {
|
||||||
|
flex: 1,
|
||||||
|
justifyContent: "center",
|
||||||
|
alignItems: "center",
|
||||||
|
backgroundColor: "white"
|
||||||
|
},
|
||||||
|
slide2: {
|
||||||
|
flex: 1,
|
||||||
|
justifyContent: "center",
|
||||||
|
alignItems: "center",
|
||||||
|
backgroundColor: "white"
|
||||||
|
},
|
||||||
|
slide3: {
|
||||||
|
flex: 1,
|
||||||
|
justifyContent: "center",
|
||||||
|
alignItems: "center",
|
||||||
|
color: "black",
|
||||||
|
backgroundColor: "white"
|
||||||
|
},
|
||||||
|
text: {
|
||||||
|
color: "#fff",
|
||||||
|
fontSize: 30,
|
||||||
|
fontWeight: "bold"
|
||||||
|
},
|
||||||
|
recover: {
|
||||||
|
paddingTop: 10,
|
||||||
|
color: "red",
|
||||||
|
paddingBottom: 10
|
||||||
|
},
|
||||||
|
manual: {},
|
||||||
|
|
||||||
height: SCREEN_HEIGHT * 0.35,
|
logo: {
|
||||||
width: SCREEN_WIDTH,
|
height: SCREEN_HEIGHT * 0.35,
|
||||||
backgroundColor: overlayColor,
|
width: SCREEN_WIDTH,
|
||||||
},
|
backgroundColor: overlayColor
|
||||||
rectangleContainer: {
|
},
|
||||||
|
rectangleContainer: {
|
||||||
|
flex: 1,
|
||||||
|
alignItems: "center",
|
||||||
|
justifyContent: "center",
|
||||||
|
backgroundColor: "transparent"
|
||||||
|
},
|
||||||
|
|
||||||
flex: 1,
|
rectangle: {
|
||||||
alignItems: "center",
|
height: rectDimensions,
|
||||||
justifyContent: "center",
|
width: rectDimensions,
|
||||||
backgroundColor: "transparent",
|
alignItems: "center",
|
||||||
|
justifyContent: "center",
|
||||||
|
backgroundColor: "transparent"
|
||||||
|
},
|
||||||
|
|
||||||
},
|
topOverlay: {
|
||||||
|
flex: 1,
|
||||||
|
backgroundColor: overlayColor,
|
||||||
|
justifyContent: "center",
|
||||||
|
alignItems: "center"
|
||||||
|
},
|
||||||
|
|
||||||
rectangle: {
|
bottomOverlay: {
|
||||||
|
flex: 1,
|
||||||
|
height: SCREEN_HEIGHT,
|
||||||
|
width: SCREEN_WIDTH,
|
||||||
|
backgroundColor: overlayColor,
|
||||||
|
paddingBottom: SCREEN_WIDTH * 0.2
|
||||||
|
},
|
||||||
|
|
||||||
height: rectDimensions,
|
leftAndRightOverlay: {
|
||||||
width: rectDimensions,
|
height: rectDimensions,
|
||||||
alignItems: "center",
|
width: SCREEN_WIDTH,
|
||||||
justifyContent: "center",
|
backgroundColor: overlayColor
|
||||||
backgroundColor: "transparent"
|
}
|
||||||
},
|
|
||||||
|
|
||||||
topOverlay: {
|
|
||||||
flex: 1,
|
|
||||||
backgroundColor: overlayColor,
|
|
||||||
justifyContent: "center",
|
|
||||||
alignItems: "center"
|
|
||||||
},
|
|
||||||
|
|
||||||
bottomOverlay: {
|
|
||||||
flex: 1,
|
|
||||||
height: SCREEN_HEIGHT,
|
|
||||||
width: SCREEN_WIDTH,
|
|
||||||
backgroundColor: overlayColor,
|
|
||||||
paddingBottom: SCREEN_WIDTH * 0.2
|
|
||||||
},
|
|
||||||
|
|
||||||
leftAndRightOverlay: {
|
|
||||||
height: rectDimensions,
|
|
||||||
width: SCREEN_WIDTH,
|
|
||||||
backgroundColor: overlayColor
|
|
||||||
},
|
|
||||||
};
|
};
|
||||||
RkTheme.setType('RkTextInput', 'frame', {
|
RkTheme.setType("RkTextInput", "frame", {
|
||||||
input: {
|
input: {
|
||||||
backgroundColor: 'white',
|
backgroundColor: "white",
|
||||||
marginLeft: 0,
|
marginLeft: 0,
|
||||||
marginHorizontal: 0,
|
marginHorizontal: 0,
|
||||||
borderRadius: 5
|
borderRadius: 5
|
||||||
},
|
},
|
||||||
color: 'gray',
|
color: "gray",
|
||||||
backgroundColor: 'gray',
|
backgroundColor: "gray",
|
||||||
borderRadius: 10,
|
borderRadius: 10,
|
||||||
container: {
|
container: {
|
||||||
paddingHorizontal: 20
|
paddingHorizontal: 20
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
mapStateToProps = (state, props) => {
|
mapStateToProps = (state, props) => {
|
||||||
|
return {
|
||||||
return {
|
token: state.apiReducer.token,
|
||||||
token: state.apiReducer.token,
|
loggedIn: state.apiReducer.loggedIn,
|
||||||
loggedIn: state.apiReducer.loggedIn,
|
onHold: state.apiReducer.onHold,
|
||||||
onHold: state.apiReducer.onHold,
|
logged: state.apiReducer.logged,
|
||||||
logged: state.apiReducer.logged,
|
failedAttempt: state.apiReducer.failedAttempt,
|
||||||
failedAttempt:state.apiReducer.failedAttempt,
|
UI_loginScannerActive: state.uiReducer.UI_loginScannerActive,
|
||||||
UI_loginScannerActive: state.uiReducer.UI_loginScannerActive,
|
userDetails: state.apiReducer.userDetails,
|
||||||
userDetails: state.apiReducer.userDetails,
|
modalOpen: state.apiReducer.modalOpen,
|
||||||
}
|
modalInfo: state.apiReducer.modalInfo,
|
||||||
|
type: state.apiReducer.type
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
mapDispatchToProps = (dispatch) => {
|
mapDispatchToProps = dispatch => {
|
||||||
|
return bindActionCreators(Actions, dispatch);
|
||||||
return bindActionCreators(Actions, dispatch);
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
export default connect(
|
||||||
export default connect(mapStateToProps, mapDispatchToProps)(App);
|
mapStateToProps,
|
||||||
|
mapDispatchToProps
|
||||||
|
)(App);
|
||||||
|
|
|
@ -1,61 +1,47 @@
|
||||||
import * as React from 'react';
|
import * as React from "react";
|
||||||
import {
|
import { View, StyleSheet, Dimensions, Text, Button } from "react-native";
|
||||||
View,
|
import { TabView, TabBar, SceneMap } from "react-native-tab-view";
|
||||||
StyleSheet,
|
|
||||||
Dimensions,
|
|
||||||
Text,
|
|
||||||
Button
|
|
||||||
} from 'react-native';
|
|
||||||
import { TabView, TabBar, SceneMap } from 'react-native-tab-view';
|
|
||||||
|
|
||||||
|
|
||||||
const FirstRoute = () => (
|
const FirstRoute = () => (
|
||||||
<View style={[styles.scene, { backgroundColor: '#ff4081' }]} />
|
<View style={[styles.scene, { backgroundColor: "#ff4081" }]} />
|
||||||
);
|
);
|
||||||
const SecondRoute = () => (
|
const SecondRoute = () => (
|
||||||
<View style={[styles.scene, { backgroundColor: '#673ab7' }]} />
|
<View style={[styles.scene, { backgroundColor: "#673ab7" }]} />
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
||||||
const ThirdRoute = () => (
|
const ThirdRoute = () => (
|
||||||
<View style={[styles.scene, { backgroundColor: '#673ab7' }]} />
|
<View style={[styles.scene, { backgroundColor: "#673ab7" }]} />
|
||||||
);
|
);
|
||||||
|
|
||||||
const FourthRoute = () => (
|
const FourthRoute = () => (
|
||||||
<View style={[styles.scene, { backgroundColor: '#673ab7' }]} />
|
<View style={[styles.scene, { backgroundColor: "#673ab7" }]} />
|
||||||
);
|
);
|
||||||
|
|
||||||
|
export default class Eventos extends React.Component {
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
export default class Eventos extends React.Component {
|
|
||||||
|
|
||||||
state = {
|
state = {
|
||||||
index: 0,
|
index: 0,
|
||||||
routes: [
|
routes: [
|
||||||
{ key: 'first', title: 'Festarola' },
|
{ key: "first", title: "Festarola" },
|
||||||
{ key: 'second', title: 'Febrada' },
|
{ key: "second", title: "Febrada" },
|
||||||
{ key: 'third', title: 'Rally' },
|
{ key: "third", title: "Rally" },
|
||||||
{ key: 'fourth', title: 'Peddy' },
|
{ key: "fourth", title: "Peddy" }
|
||||||
|
]
|
||||||
|
};
|
||||||
|
|
||||||
],
|
render() {
|
||||||
};
|
return (
|
||||||
|
<View>
|
||||||
render() {
|
<Button
|
||||||
return (
|
|
||||||
<View>
|
|
||||||
<Button
|
|
||||||
title="Febrada"
|
title="Febrada"
|
||||||
onPress={() => this.props.navigation.navigate('febrada')}
|
onPress={() => this.props.navigation.navigate("febrada")}
|
||||||
/>
|
/>
|
||||||
</View>
|
</View>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
const styles = StyleSheet.create({
|
const styles = StyleSheet.create({
|
||||||
scene: {
|
scene: {
|
||||||
flex: 1,
|
flex: 1
|
||||||
},
|
}
|
||||||
});
|
});
|
||||||
|
|
|
@ -1,458 +1,504 @@
|
||||||
import * as React from 'react';
|
import * as React from "react";
|
||||||
import {
|
import {
|
||||||
View,
|
View,
|
||||||
StyleSheet,
|
StyleSheet,
|
||||||
Dimensions,
|
Dimensions,
|
||||||
Image,
|
ScrollView,
|
||||||
ScrollView,
|
Text,
|
||||||
Text,
|
Button,
|
||||||
Button,
|
TouchableOpacity,
|
||||||
TouchableOpacity,
|
Picker,
|
||||||
Picker,
|
ActivityIndicator,
|
||||||
CheckBox,
|
|
||||||
ActivityIndicator,
|
FlatList
|
||||||
SectionList,
|
} from "react-native";
|
||||||
FlatList
|
import moment from "moment";
|
||||||
} from 'react-native';
|
|
||||||
import moment from 'moment'
|
|
||||||
|
|
||||||
import {TabView, TabBar, SceneMap} from 'react-native-tab-view';
|
import Modal from "react-native-modal";
|
||||||
import {
|
|
||||||
RkButton, RkCard, RkText,
|
|
||||||
RkTheme
|
|
||||||
} from 'react-native-ui-kitten';
|
|
||||||
import Timeline from 'react-native-timeline-feed'
|
|
||||||
|
|
||||||
import * as Progress from 'react-native-progress';
|
|
||||||
|
|
||||||
|
|
||||||
import {connect} from 'react-redux';
|
import * as Progress from "react-native-progress";
|
||||||
|
|
||||||
import {bindActionCreators} from 'redux';
|
import { connect } from "react-redux";
|
||||||
|
|
||||||
|
import { bindActionCreators } from "redux";
|
||||||
|
|
||||||
|
import * as Actions from "../store/actions"; //Import your actionss
|
||||||
|
import AwesomeAlert from 'react-native-awesome-alerts';
|
||||||
|
|
||||||
import * as Actions from '../store/actions'; //Import your actionss
|
|
||||||
import Swiper from 'react-native-swiper';
|
|
||||||
|
|
||||||
const SCREEN_HEIGHT = Dimensions.get("window").height;
|
const SCREEN_HEIGHT = Dimensions.get("window").height;
|
||||||
const SCREEN_WIDTH = Dimensions.get("window").width;
|
const SCREEN_WIDTH = Dimensions.get("window").width;
|
||||||
import FitImage from 'react-native-fit-image';
|
|
||||||
|
|
||||||
import { Dropdown } from 'react-native-material-dropdown';
|
import FitImage from "react-native-fit-image";
|
||||||
import {Card, Divider} from 'react-native-elements'
|
|
||||||
import IconF from "react-native-vector-icons/Foundation"
|
|
||||||
|
|
||||||
import LinearGradient from 'react-native-linear-gradient';
|
|
||||||
|
|
||||||
import ProgressBarAnimated from 'react-native-progress-bar-animated';
|
|
||||||
|
|
||||||
import IconFA from "react-native-vector-icons/FontAwesome5"
|
|
||||||
const formatObj = (obj) => {
|
|
||||||
|
|
||||||
let a = {};
|
|
||||||
|
|
||||||
a.push({})
|
|
||||||
|
|
||||||
return a
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
|
import { Divider } from "react-native-elements";
|
||||||
|
|
||||||
|
|
||||||
|
import LinearGradient from "react-native-linear-gradient";
|
||||||
|
|
||||||
|
import IconFA from "react-native-vector-icons/FontAwesome5";
|
||||||
|
|
||||||
|
|
||||||
class choosePath extends React.Component {
|
class choosePath extends React.Component {
|
||||||
|
_verifySession = Id => {
|
||||||
_verifySession=(Id)=>{
|
var sessions = this.props.user.Sessions;
|
||||||
|
for (let key in sessions) {
|
||||||
var sessions= this.props.user.Sessions
|
if (sessions[key].Id == Id) return true;
|
||||||
for(let key in sessions){
|
// cenas.push(result[key]);
|
||||||
|
console.log();
|
||||||
if(sessions[key].Id==Id)
|
|
||||||
return true
|
|
||||||
// cenas.push(result[key]);
|
|
||||||
console.log();
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
static navigationOptions = ({ navigation }) => ({
|
};
|
||||||
|
static navigationOptions = ({ navigation }) => ({
|
||||||
headerTitleStyle : {textAlign: 'center',alignSelf:'center'},
|
headerTitleStyle: { textAlign: "center", alignSelf: "center" },
|
||||||
headerStyle:{
|
headerStyle: {
|
||||||
backgroundColor:'rgba(0,0,0,0)',
|
backgroundColor: "rgba(0,0,0,0)",
|
||||||
shadowRadius:0,
|
shadowRadius: 0,
|
||||||
elevation:0
|
elevation: 0
|
||||||
},
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
state = {
|
state = {
|
||||||
calendar:{},
|
calendar: {},
|
||||||
guest:'9'
|
guest: "9"
|
||||||
|
};
|
||||||
|
|
||||||
|
_mount = () => {
|
||||||
|
var sessions = this.props.sessions;
|
||||||
|
|
||||||
|
for (let key in sessions) {
|
||||||
|
if (sessions[key].Name == "IA") {
|
||||||
|
this.setState({ guest: "9" });
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
componentDidMount() {
|
||||||
|
// this.props.getEvents(this.props.user);
|
||||||
|
this.props.getAvailableGuestlists(this.props.userDetails.token);
|
||||||
|
this.props.getSessions(this.props.userDetails.token);
|
||||||
|
this._mount();
|
||||||
|
|
||||||
|
//console.log('didMount');
|
||||||
|
// console.log(this.props.events);
|
||||||
|
}
|
||||||
|
|
||||||
|
_update = () => {
|
||||||
|
this.setState({ user: this.props.user });
|
||||||
|
console.log(this.props.events);
|
||||||
|
};
|
||||||
|
|
||||||
|
_findPath = id => {
|
||||||
|
var sessions = this.props.sessions;
|
||||||
|
|
||||||
|
for (let key in sessions) {
|
||||||
|
if (sessions[key].Name == id) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
};
|
||||||
|
|
||||||
|
constructor() {
|
||||||
|
super();
|
||||||
|
this.state = {
|
||||||
|
showAlert:true,
|
||||||
|
Blocks: [],
|
||||||
|
onHoldBlocks: true,
|
||||||
|
checked: true,
|
||||||
|
modalVisible: false,
|
||||||
|
isModalVisible: false,
|
||||||
};
|
};
|
||||||
|
|
||||||
_mount=()=>{
|
this.data = [];
|
||||||
|
}
|
||||||
|
onPress = () => {
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
var sessions= this.props.sessions
|
_s() {
|
||||||
|
|
||||||
for(let key in sessions){
|
|
||||||
|
|
||||||
if(sessions[key].Name=='IA'){
|
|
||||||
|
|
||||||
this.setState({guest:'9'})
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
componentDidMount() {
|
|
||||||
|
|
||||||
// this.props.getEvents(this.props.user);
|
|
||||||
this.props.getAvailableGuestlists(this.props.userDetails.token)
|
|
||||||
this.props.getSessions(this.props.userDetails.token)
|
|
||||||
this._mount()
|
|
||||||
|
|
||||||
//console.log('didMount');
|
|
||||||
// console.log(this.props.events);
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
_update = () => {
|
|
||||||
this.setState({user: this.props.user});
|
|
||||||
console.log(this.props.events);
|
|
||||||
}
|
|
||||||
|
|
||||||
_findPath=(id)=> {
|
|
||||||
|
|
||||||
var sessions= this.props.sessions
|
this.props.signSession(this.props.userDetails.token, item[index].Id);
|
||||||
|
}
|
||||||
|
getCareerPaths = () => {
|
||||||
|
this.props.getAvailableGuestlists(this.props.userDetails.token);
|
||||||
|
console.log(this.props.calendar);
|
||||||
|
};
|
||||||
|
_keyExtractor = (item, index) => item.id;
|
||||||
|
|
||||||
for(let key in sessions){
|
_renderItem = ({ item }) => (
|
||||||
|
<MyListItem
|
||||||
if(sessions[key].Name==id){
|
id={item.id}
|
||||||
|
onPressItem={this._onPressItem}
|
||||||
return true;
|
selected={!!this.state.selected.get(item.id)}
|
||||||
}
|
title={item.title}
|
||||||
|
|
||||||
}
|
|
||||||
return false
|
|
||||||
}
|
|
||||||
|
|
||||||
constructor() {
|
|
||||||
|
|
||||||
super()
|
|
||||||
this.state={
|
|
||||||
Blocks:[],
|
|
||||||
onHoldBlocks:true,
|
|
||||||
checked:true
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
this.data = [
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
]
|
|
||||||
}
|
|
||||||
getCareerPaths=()=>{
|
|
||||||
|
|
||||||
this.props.getAvailableGuestlists(this.props.userDetails.token)
|
|
||||||
console.log(this.props.calendar)
|
|
||||||
}
|
|
||||||
_keyExtractor = (item, index) => item.id;
|
|
||||||
|
|
||||||
_renderItem = ({item}) => (
|
|
||||||
<MyListItem
|
|
||||||
id={item.id}
|
|
||||||
onPressItem={this._onPressItem}
|
|
||||||
selected={!!this.state.selected.get(item.id)}
|
|
||||||
title={item.title}
|
|
||||||
/>
|
|
||||||
);
|
|
||||||
_onPressItem = (id) => {
|
|
||||||
// updater functions are preferred for transactional updates
|
|
||||||
this.setState((state) => {
|
|
||||||
// copy the map rather than modifying state.
|
|
||||||
const selected = new Map(state.selected);
|
|
||||||
selected.set(id, !selected.get(id)); // toggle
|
|
||||||
return {selected};
|
|
||||||
});
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
_render=({item})=>{
|
|
||||||
<Text>Cenas: {item.Name}</Text>
|
|
||||||
}
|
|
||||||
|
|
||||||
render() {
|
|
||||||
|
|
||||||
|
|
||||||
return (
|
|
||||||
<ScrollView style={styles.page}>
|
|
||||||
|
|
||||||
{this._findPath('IA') && <LinearGradient colors={[ '#D95856', '#CC1A17']} style={styles.linearGradient}>
|
|
||||||
<Text style={{margin:15,marginBottom:0, fontWeight:'bold', color:'white'}}> Empresa responsável: </Text>
|
|
||||||
<View style={styles.companyContainer}>
|
|
||||||
<View style={styles.companyDescription}>
|
|
||||||
<Text style={{fontSize:16, fontWeight:'bold', margin:6, color:'white'}}>Critical Software</Text>
|
|
||||||
<Text style={{margin:6, marginTop:0, color:'white'}}>A CRITICAL Software fornece sistemas e serviços de software para segurança e
|
|
||||||
aplicações essenciais aos negócios.</Text>
|
|
||||||
</View>
|
|
||||||
<View style={styles.companyLogo}>
|
|
||||||
<FitImage
|
|
||||||
source={{ uri: 'https://upload.wikimedia.org/wikipedia/commons/8/8a/CSW_Gradiente_rgb.png' }}
|
|
||||||
style={styles.fitImage}
|
|
||||||
/>
|
|
||||||
</View>
|
|
||||||
</View>
|
|
||||||
</LinearGradient>}
|
|
||||||
{this._findPath('NET') && <LinearGradient colors={[ '#5887FF', '#715AFF']} style={styles.linearGradient}>
|
|
||||||
<Text style={{margin:15,marginBottom:0, fontWeight:'bold', color:'white'}}> Empresa responsável: </Text>
|
|
||||||
<View style={styles.companyContainer}>
|
|
||||||
<View style={styles.companyDescription}>
|
|
||||||
<Text style={{fontSize:16, fontWeight:'bold', margin:6, color:'white'}}>Altice</Text>
|
|
||||||
<Text style={{margin:6, marginTop:0, color:'white'}}>Altice é uma multinacional neerlandesa de telecomunicações, conteúdos, media, entretenimento e publicidade.</Text>
|
|
||||||
</View>
|
|
||||||
<View style={styles.companyLogo}>
|
|
||||||
<FitImage
|
|
||||||
source={{ uri: 'https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcTuIfl0Km4mTbCGdJSr4bWn_ApFHnOrjYsmJ4VlBL1OkaIlb93t' }}
|
|
||||||
style={styles.fitImage}
|
|
||||||
/>
|
|
||||||
</View>
|
|
||||||
</View>
|
|
||||||
</LinearGradient>}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<View style={{flex:1,width:SCREEN_WIDTH*0.7, alignContent:'center'}}>
|
|
||||||
|
|
||||||
|
|
||||||
<View style={styles.pickerCareer}>
|
|
||||||
<Picker
|
|
||||||
selectedValue={this.state.guest}
|
|
||||||
style={{width:'100%'}}
|
|
||||||
onValueChange={(itemValue, itemIndex) =>{
|
|
||||||
|
|
||||||
this.setState({guest: itemValue})
|
|
||||||
this.props.timerChangeGuest();
|
|
||||||
this.props.waitChangeGuest();
|
|
||||||
|
|
||||||
|
|
||||||
this.props.changeGuestList(this.props.userDetails.token,itemValue)
|
|
||||||
|
|
||||||
// this.props.waitChangeGuest();
|
|
||||||
// this.props.getAvailableSessions(this.props.userDetails.token);
|
|
||||||
|
|
||||||
|
|
||||||
// this.props.waitChangeGuest();
|
|
||||||
|
|
||||||
// this.props.getSessionBlocks(this.props.sessions)
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
}>
|
|
||||||
<Picker.Item label="Escolhe o teu career path!" value="0" />
|
|
||||||
<Picker.Item label="Inteligência Artificial" value="9" />
|
|
||||||
<Picker.Item label="Redes e Segurança" value="10" />
|
|
||||||
<Picker.Item label="Data Science" value="15" />
|
|
||||||
<Picker.Item label="Desenvolvimento Web" value="14" />
|
|
||||||
<Picker.Item label="Internet das Coisas" value="12" />
|
|
||||||
<Picker.Item label="Desenvolvimento Mobile" value="11" />
|
|
||||||
|
|
||||||
</Picker>
|
|
||||||
</View>
|
|
||||||
<View style={{width:SCREEN_WIDTH}}>
|
|
||||||
|
|
||||||
{
|
|
||||||
!this.props.changingGuest &&<FlatList
|
|
||||||
data={this.props.Blocks}
|
|
||||||
renderItem={({item, index}) => <View style={styles.block}>
|
|
||||||
<View style={styles.time}>
|
|
||||||
<Text style={
|
|
||||||
{
|
|
||||||
margin:10,
|
|
||||||
fontSize:25,
|
|
||||||
color:'#CC1A17',
|
|
||||||
marginBottom:0
|
|
||||||
}
|
|
||||||
}>
|
|
||||||
{moment(item[0].SessionStart).format('HH:mm')}</Text>
|
|
||||||
<Text style={{marginLeft:20}}>às</Text>
|
|
||||||
<Text style={
|
|
||||||
{
|
|
||||||
margin:10,
|
|
||||||
fontSize:25,
|
|
||||||
color:'#CC1A17',
|
|
||||||
marginTop:5
|
|
||||||
}
|
|
||||||
}>
|
|
||||||
{moment(item[0].SessionEnd).format('HH:mm')}</Text>
|
|
||||||
|
|
||||||
</View>
|
|
||||||
<View style={styles.sessions}>
|
|
||||||
<FlatList
|
|
||||||
data={item}
|
|
||||||
renderItem={({data, index}) => <View><View style={styles.session}>
|
|
||||||
{ this._verifySession(item[index].Id) &&
|
|
||||||
<TouchableOpacity>
|
|
||||||
<IconFA name="check-square" size={30} color={'#CC1A17'}/>
|
|
||||||
</TouchableOpacity>
|
|
||||||
}{
|
|
||||||
!this._verifySession(item[index].Id)
|
|
||||||
&&
|
|
||||||
<TouchableOpacity>
|
|
||||||
<IconFA name="square" size={30}/>
|
|
||||||
</TouchableOpacity>
|
|
||||||
}
|
|
||||||
|
|
||||||
<TouchableOpacity><View style={styles.sessionInfo}>
|
|
||||||
<Text style={styles.sessionTitle}>{item[index].Name}</Text>
|
|
||||||
<Text style={{marginTop:10, marginBottom:5}}>{item[index].MaxAttendees - item[index].Enrolled} Lugares disponíveis</Text>
|
|
||||||
<Progress.Bar color={'#000000'} progress={(item[index].Enrolled/item[index].MaxAttendees)} unfilledColor={'white'} width={170}/>
|
|
||||||
</View></TouchableOpacity>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</View>
|
|
||||||
|
|
||||||
<Divider style={{ backgroundColor: '#eeeeee' }} />
|
|
||||||
|
|
||||||
</View>}
|
|
||||||
/>
|
/>
|
||||||
</View>
|
);
|
||||||
</View>}
|
|
||||||
/>}</View>
|
|
||||||
|
|
||||||
|
_toggleModal = () =>
|
||||||
|
this.setState({ isModalVisible: !this.state.isModalVisible });
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</View >
|
|
||||||
|
|
||||||
{(this.props.changingGuest || this.props.Blocks==true) &&
|
|
||||||
|
|
||||||
<ActivityIndicator size="large" color="red" style={{flex:1, alignContent:'center'}}/>
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</ScrollView>
|
_onPressItem = id => {
|
||||||
);
|
// updater functions are preferred for transactional updates
|
||||||
}
|
this.setState(state => {
|
||||||
|
// copy the map rather than modifying state.
|
||||||
|
const selected = new Map(state.selected);
|
||||||
|
selected.set(id, !selected.get(id)); // toggle
|
||||||
|
return { selected };
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
_render = ({ item }) => {
|
||||||
|
<Text>Cenas: {item.Name}</Text>;
|
||||||
|
};
|
||||||
|
|
||||||
|
render() {
|
||||||
|
return (
|
||||||
|
<View>
|
||||||
|
|
||||||
|
<ScrollView style={styles.page}>
|
||||||
|
|
||||||
|
{this._findPath("IA") && (
|
||||||
|
<LinearGradient
|
||||||
|
colors={["#D95856", "#CC1A17"]}
|
||||||
|
style={styles.linearGradient}
|
||||||
|
>
|
||||||
|
<Text
|
||||||
|
style={{
|
||||||
|
margin: 15,
|
||||||
|
marginBottom: 0,
|
||||||
|
fontWeight: "bold",
|
||||||
|
color: "white"
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
{" "}
|
||||||
|
Empresa responsável:{" "}
|
||||||
|
</Text>
|
||||||
|
<View style={styles.companyContainer}>
|
||||||
|
<View style={styles.companyDescription}>
|
||||||
|
<Text
|
||||||
|
style={{
|
||||||
|
fontSize: 16,
|
||||||
|
fontWeight: "bold",
|
||||||
|
margin: 6,
|
||||||
|
color: "white"
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
Critical Software
|
||||||
|
</Text>
|
||||||
|
<Text style={{ margin: 6, marginTop: 0, color: "white" }}>
|
||||||
|
A CRITICAL Software fornece sistemas e serviços de software
|
||||||
|
para segurança e aplicações essenciais aos negócios.
|
||||||
|
</Text>
|
||||||
|
</View>
|
||||||
|
<View style={styles.companyLogo}>
|
||||||
|
<FitImage
|
||||||
|
source={{
|
||||||
|
uri:
|
||||||
|
"https://upload.wikimedia.org/wikipedia/commons/8/8a/CSW_Gradiente_rgb.png"
|
||||||
|
}}
|
||||||
|
style={styles.fitImage}
|
||||||
|
/>
|
||||||
|
</View>
|
||||||
|
</View>
|
||||||
|
</LinearGradient>
|
||||||
|
)}
|
||||||
|
{this._findPath("NET") && (
|
||||||
|
<LinearGradient
|
||||||
|
colors={["#5887FF", "#715AFF"]}
|
||||||
|
style={styles.linearGradient}
|
||||||
|
>
|
||||||
|
<Text
|
||||||
|
style={{
|
||||||
|
margin: 15,
|
||||||
|
marginBottom: 0,
|
||||||
|
fontWeight: "bold",
|
||||||
|
color: "white"
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
{" "}
|
||||||
|
Empresa responsável:{" "}
|
||||||
|
</Text>
|
||||||
|
<View style={styles.companyContainer}>
|
||||||
|
<View style={styles.companyDescription}>
|
||||||
|
<Text
|
||||||
|
style={{
|
||||||
|
fontSize: 16,
|
||||||
|
fontWeight: "bold",
|
||||||
|
margin: 6,
|
||||||
|
color: "white"
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
Altice
|
||||||
|
</Text>
|
||||||
|
<Text style={{ margin: 6, marginTop: 0, color: "white" }}>
|
||||||
|
Altice é uma multinacional neerlandesa de telecomunicações,
|
||||||
|
conteúdos, media, entretenimento e publicidade.
|
||||||
|
</Text>
|
||||||
|
</View>
|
||||||
|
<View style={styles.companyLogo}>
|
||||||
|
<FitImage
|
||||||
|
source={{
|
||||||
|
uri:
|
||||||
|
"https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcTuIfl0Km4mTbCGdJSr4bWn_ApFHnOrjYsmJ4VlBL1OkaIlb93t"
|
||||||
|
}}
|
||||||
|
style={styles.fitImage}
|
||||||
|
/>
|
||||||
|
</View>
|
||||||
|
</View>
|
||||||
|
</LinearGradient>
|
||||||
|
)}
|
||||||
|
|
||||||
|
<View
|
||||||
|
style={{ flex: 1, width: SCREEN_WIDTH * 0.7, alignContent: "center" }}
|
||||||
|
>
|
||||||
|
<View style={styles.pickerCareer}>
|
||||||
|
<Picker
|
||||||
|
selectedValue={this.state.guest}
|
||||||
|
style={{ width: "100%" }}
|
||||||
|
onValueChange={(itemValue, itemIndex) => {
|
||||||
|
this.setState({ guest: itemValue });
|
||||||
|
this.props.timerChangeGuest();
|
||||||
|
this.props.waitChangeGuest();
|
||||||
|
|
||||||
|
this.props.changeGuestList(
|
||||||
|
this.props.userDetails.token,
|
||||||
|
itemValue
|
||||||
|
);
|
||||||
|
|
||||||
|
// this.props.waitChangeGuest();
|
||||||
|
// this.props.getAvailableSessions(this.props.userDetails.token);
|
||||||
|
|
||||||
|
// this.props.waitChangeGuest();
|
||||||
|
|
||||||
|
// this.props.getSessionBlocks(this.props.sessions)
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
<Picker.Item label="Escolhe o teu career path!" value="0" />
|
||||||
|
<Picker.Item label="Inteligência Artificial" value="9" />
|
||||||
|
<Picker.Item label="Redes e Segurança" value="10" />
|
||||||
|
<Picker.Item label="Data Science" value="15" />
|
||||||
|
<Picker.Item label="Desenvolvimento Web" value="14" />
|
||||||
|
<Picker.Item label="Internet das Coisas" value="12" />
|
||||||
|
<Picker.Item label="Desenvolvimento Mobile" value="11" />
|
||||||
|
</Picker>
|
||||||
|
</View>
|
||||||
|
<View style={{ width: SCREEN_WIDTH }}>
|
||||||
|
{!this.props.changingGuest && (
|
||||||
|
<FlatList
|
||||||
|
data={this.props.Blocks}
|
||||||
|
renderItem={({ item, index }) => (
|
||||||
|
<View style={styles.block}>
|
||||||
|
<View style={styles.time}>
|
||||||
|
<Text
|
||||||
|
style={{
|
||||||
|
margin: 10,
|
||||||
|
fontSize: 25,
|
||||||
|
color: "#CC1A17",
|
||||||
|
marginBottom: 0
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
{moment(item[0].SessionStart).format("HH:mm")}
|
||||||
|
</Text>
|
||||||
|
<Text style={{ marginLeft: 20 }}>às</Text>
|
||||||
|
<Text
|
||||||
|
style={{
|
||||||
|
margin: 10,
|
||||||
|
fontSize: 25,
|
||||||
|
color: "#CC1A17",
|
||||||
|
marginTop: 5
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
{moment(item[0].SessionEnd).format("HH:mm")}
|
||||||
|
</Text>
|
||||||
|
</View>
|
||||||
|
<View style={styles.sessions}>
|
||||||
|
<FlatList
|
||||||
|
data={item}
|
||||||
|
renderItem={({ data, index }) => (
|
||||||
|
<View>
|
||||||
|
<View style={styles.session}>
|
||||||
|
{this._verifySession(item[index].Id) && (
|
||||||
|
<TouchableOpacity
|
||||||
|
onPress={() => {}}
|
||||||
|
style={{ flex: 1, alignSelf: "center" }}
|
||||||
|
>
|
||||||
|
<View>
|
||||||
|
<IconFA
|
||||||
|
name="check-square"
|
||||||
|
color={"#CC1A17"}
|
||||||
|
size={35}
|
||||||
|
/>
|
||||||
|
</View>
|
||||||
|
</TouchableOpacity>
|
||||||
|
)}
|
||||||
|
{!this._verifySession(item[index].Id) && (
|
||||||
|
<TouchableOpacity
|
||||||
|
onPress={() => {
|
||||||
|
this.props.waitChangeGuest()
|
||||||
|
this.props.signSession(
|
||||||
|
this.props.userDetails.token,
|
||||||
|
item[index].Id
|
||||||
|
);
|
||||||
|
}}
|
||||||
|
style={{ flex: 1, alignSelf: "center" }}
|
||||||
|
>
|
||||||
|
<View>
|
||||||
|
<IconFA name="square" size={35} />
|
||||||
|
</View>
|
||||||
|
</TouchableOpacity>
|
||||||
|
)}
|
||||||
|
|
||||||
|
<TouchableOpacity
|
||||||
|
onPress={() =>
|
||||||
|
this.props.navigation.navigate("febrada")
|
||||||
|
}
|
||||||
|
>
|
||||||
|
<View style={styles.sessionInfo}>
|
||||||
|
<Text style={styles.sessionTitle}>
|
||||||
|
{item[index].Name}
|
||||||
|
</Text>
|
||||||
|
<Text
|
||||||
|
style={{ marginTop: 10, marginBottom: 5 }}
|
||||||
|
>
|
||||||
|
{item[index].MaxAttendees -
|
||||||
|
item[index].Enrolled}{" "}
|
||||||
|
Lugares disponíveis
|
||||||
|
</Text>
|
||||||
|
<Progress.Bar
|
||||||
|
color={"#000000"}
|
||||||
|
progress={
|
||||||
|
item[index].Enrolled /
|
||||||
|
item[index].MaxAttendees
|
||||||
|
}
|
||||||
|
unfilledColor={"white"}
|
||||||
|
width={170}
|
||||||
|
/>
|
||||||
|
</View>
|
||||||
|
</TouchableOpacity>
|
||||||
|
</View>
|
||||||
|
|
||||||
|
<Divider style={{ backgroundColor: "#eeeeee" }} />
|
||||||
|
</View>
|
||||||
|
)}
|
||||||
|
/>
|
||||||
|
</View>
|
||||||
|
</View>
|
||||||
|
)}
|
||||||
|
/>
|
||||||
|
)}
|
||||||
|
</View>
|
||||||
|
</View>
|
||||||
|
|
||||||
|
{(this.props.changingGuest || this.props.Blocks == true) && (
|
||||||
|
<ActivityIndicator
|
||||||
|
size="large"
|
||||||
|
color="red"
|
||||||
|
style={{ flex: 1, alignContent: "center" }}
|
||||||
|
/>
|
||||||
|
)}
|
||||||
|
</ScrollView>
|
||||||
|
</View>
|
||||||
|
);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
const styles = StyleSheet.create({
|
const styles = StyleSheet.create({
|
||||||
companyLogo:{
|
companyLogo: {
|
||||||
backgroundColor:'white',
|
backgroundColor: "white",
|
||||||
margin:20,
|
margin: 20,
|
||||||
width:SCREEN_WIDTH*0.35,
|
width: SCREEN_WIDTH * 0.35,
|
||||||
borderRadius:3,
|
borderRadius: 3,
|
||||||
padding:5
|
padding: 5
|
||||||
},
|
},
|
||||||
companyDescription:{
|
companyDescription: {
|
||||||
// backgroundColor:'white',
|
// backgroundColor:'white',
|
||||||
margin:20,
|
margin: 20,
|
||||||
marginRight:0,
|
marginRight: 0,
|
||||||
width:SCREEN_WIDTH*0.5,
|
width: SCREEN_WIDTH * 0.5,
|
||||||
borderRadius:3,
|
borderRadius: 3
|
||||||
},
|
},
|
||||||
sessionInfo:{
|
sessionInfo: {
|
||||||
margin:5
|
margin: 5
|
||||||
},
|
},
|
||||||
sessionTitle:{
|
sessionTitle: {
|
||||||
fontSize:15,
|
fontSize: 15,
|
||||||
fontWeight:'bold'
|
fontWeight: "bold"
|
||||||
},
|
},
|
||||||
day:{
|
day: {
|
||||||
margin:10
|
margin: 10
|
||||||
},
|
},
|
||||||
dayText:{
|
dayText: {
|
||||||
fontSize:20,
|
fontSize: 20,
|
||||||
color: '#CC1A17',
|
color: "#CC1A17",
|
||||||
textAlign: 'center',
|
textAlign: "center"
|
||||||
|
},
|
||||||
},
|
time: {
|
||||||
time:{
|
alignContent: "center",
|
||||||
alignContent:'center',
|
width: SCREEN_WIDTH * 0.23,
|
||||||
width:SCREEN_WIDTH*0.23,
|
backgroundColor: "white"
|
||||||
backgroundColor:'white'
|
|
||||||
},
|
|
||||||
|
|
||||||
block:{
|
|
||||||
|
|
||||||
flex:1,
|
|
||||||
flexDirection:'row',
|
|
||||||
backgroundColor:'red',
|
|
||||||
margin:10,
|
|
||||||
borderRadius:5
|
|
||||||
|
|
||||||
},
|
|
||||||
|
|
||||||
companyContainer:{
|
|
||||||
flex:1,
|
|
||||||
// backgroundColor:'blue',
|
|
||||||
|
|
||||||
flexDirection:'row',
|
|
||||||
marginTop:0
|
|
||||||
|
|
||||||
|
|
||||||
},
|
},
|
||||||
|
|
||||||
|
block: {
|
||||||
sessions:{
|
flex: 1,
|
||||||
flex:1,
|
flexDirection: "row",
|
||||||
flexDirection:'column',
|
backgroundColor: "red",
|
||||||
|
margin: 10,
|
||||||
backgroundColor:'white',
|
borderRadius: 5
|
||||||
|
|
||||||
},
|
},
|
||||||
|
|
||||||
page:{
|
companyContainer: {
|
||||||
backgroundColor:'#eeeeee',
|
flex: 1,
|
||||||
|
// backgroundColor:'blue',
|
||||||
},
|
|
||||||
pickerCareer:{
|
|
||||||
|
|
||||||
paddingLeft:30,
|
|
||||||
paddingRight:30,
|
|
||||||
backgroundColor:'white',
|
|
||||||
width:SCREEN_WIDTH,
|
|
||||||
|
|
||||||
|
flexDirection: "row",
|
||||||
|
marginTop: 0
|
||||||
},
|
},
|
||||||
session:{
|
|
||||||
margin:10,
|
sessions: {
|
||||||
flex:1,
|
flex: 1,
|
||||||
flexDirection:'row',
|
flexDirection: "column",
|
||||||
|
|
||||||
|
backgroundColor: "white"
|
||||||
|
},
|
||||||
|
|
||||||
|
page: {
|
||||||
|
backgroundColor: "#eeeeee"
|
||||||
|
},
|
||||||
|
pickerCareer: {
|
||||||
|
paddingLeft: 30,
|
||||||
|
paddingRight: 30,
|
||||||
|
backgroundColor: "white",
|
||||||
|
width: SCREEN_WIDTH
|
||||||
|
},
|
||||||
|
session: {
|
||||||
|
margin: 10,
|
||||||
|
flex: 1,
|
||||||
|
flexDirection: "row"
|
||||||
}
|
}
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
function mapStateToProps(state, props) {
|
function mapStateToProps(state, props) {
|
||||||
|
return {
|
||||||
return {
|
// token: state.apiReducer.token,
|
||||||
|
showAlert: state.apiReducer.showAlert,
|
||||||
// token: state.apiReducer.token,
|
user: state.apiReducer.user,
|
||||||
user: state.apiReducer.user,
|
logged: state.apiReducer.logged,
|
||||||
logged: state.apiReducer.logged,
|
events: state.apiReducer.events,
|
||||||
events: state.apiReducer.events,
|
userDetails: state.apiReducer.userDetails,
|
||||||
userDetails: state.apiReducer.userDetails,
|
calendar: state.apiReducer.calendar,
|
||||||
calendar : state.apiReducer.calendar,
|
changingGuest: state.apiReducer.changingGuest,
|
||||||
changingGuest : state.apiReducer.changingGuest,
|
sessions: state.apiReducer.sessions,
|
||||||
sessions:state.apiReducer.sessions,
|
Blocks: state.apiReducer.Blocks,
|
||||||
Blocks: state.apiReducer.Blocks,
|
showAlert: state.apiReducer.showAlert
|
||||||
onHoldBlocks:state.apiReducer.onHoldBlocks,
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function mapDispatchToProps(dispatch) {
|
function mapDispatchToProps(dispatch) {
|
||||||
|
return bindActionCreators(Actions, dispatch);
|
||||||
return bindActionCreators(Actions, dispatch);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
export default connect(mapStateToProps, mapDispatchToProps)(choosePath);
|
export default connect(
|
||||||
|
mapStateToProps,
|
||||||
|
mapDispatchToProps
|
||||||
|
)(choosePath);
|
||||||
|
|
|
@ -32,4 +32,7 @@ export const UI_LOGIN_NOINTERNET='UI_LOGIN_NOINTERNET'
|
||||||
export const UI_LOGIN_OPEN_SCANNER='UI_LOIN_OPEN_SCANNER'
|
export const UI_LOGIN_OPEN_SCANNER='UI_LOIN_OPEN_SCANNER'
|
||||||
|
|
||||||
|
|
||||||
//HOME
|
|
||||||
|
|
||||||
|
export const OPEN_MODAL='OPEN_MODAL'
|
||||||
|
export const CLOSE_MODAL='CLOSE_MODAL'
|
File diff suppressed because it is too large
Load Diff
|
@ -1,6 +1,8 @@
|
||||||
export {checkUser,
|
export {checkUser,
|
||||||
login,getEvents,
|
login,
|
||||||
hold, getUserInfo,
|
getEvents,
|
||||||
|
hold,
|
||||||
|
getUserInfo,
|
||||||
logoutUser,
|
logoutUser,
|
||||||
getAvailableGuestlists,
|
getAvailableGuestlists,
|
||||||
changeGuestList,
|
changeGuestList,
|
||||||
|
@ -10,6 +12,9 @@ export {checkUser,
|
||||||
getSessionBlocks,
|
getSessionBlocks,
|
||||||
timerChangeGuest,
|
timerChangeGuest,
|
||||||
getSessions,
|
getSessions,
|
||||||
|
signSession,
|
||||||
|
openModal,
|
||||||
|
closeModal
|
||||||
} from "./api"
|
} from "./api"
|
||||||
|
|
||||||
export {
|
export {
|
||||||
|
|
|
@ -1,191 +1,211 @@
|
||||||
import { DATA_AVAILABLE, API_LOGIN, CHECK_USER, LOGOUT_USER, USER_INFO, HOLD, GET_EVENTS, GET_CAREERS, CHANGE_GUEST, WAIT_CHANGE, GET_SESSIONS, SESSION_BLOCKS, TIMERWAIT_CHANGE } from "../actions/actionTypes" //Import the actions types constant we defined in our actions
|
import {
|
||||||
import { REHYDRATE } from 'redux-persist';
|
DATA_AVAILABLE,
|
||||||
|
API_LOGIN,
|
||||||
|
CHECK_USER,
|
||||||
|
LOGOUT_USER,
|
||||||
|
USER_INFO,
|
||||||
|
HOLD,
|
||||||
|
GET_EVENTS,
|
||||||
|
GET_CAREERS,
|
||||||
|
CHANGE_GUEST,
|
||||||
|
WAIT_CHANGE,
|
||||||
|
GET_SESSIONS,
|
||||||
|
SESSION_BLOCKS,
|
||||||
|
TIMERWAIT_CHANGE,
|
||||||
|
SIGN_SESSION,
|
||||||
|
OPEN_MODAL,
|
||||||
|
CLOSE_MODAL
|
||||||
|
} from "../actions/actionTypes"; //Import the actions types constant we defined in our actions
|
||||||
|
import { REHYDRATE } from "redux-persist";
|
||||||
|
|
||||||
|
let apiState = {
|
||||||
|
isConnected: false,
|
||||||
|
logged: false,
|
||||||
|
onHold: true,
|
||||||
|
user: {},
|
||||||
|
events: [],
|
||||||
|
showAlert: true,
|
||||||
|
failedAttempt: false,
|
||||||
|
userDetails: {
|
||||||
|
username: "",
|
||||||
|
password: "",
|
||||||
|
token: {
|
||||||
|
expirationDateToken: 0,
|
||||||
|
access_token: ""
|
||||||
|
}
|
||||||
|
},
|
||||||
|
calendar: {},
|
||||||
|
changingGuest: false,
|
||||||
|
sessions: {},
|
||||||
|
Blocks: {},
|
||||||
|
onHoldBlocks: true,
|
||||||
|
careerPath: "SEM",
|
||||||
|
|
||||||
let apiState= {
|
};
|
||||||
|
|
||||||
isConnected:false,
|
|
||||||
logged:false,
|
|
||||||
onHold:true,user:{},
|
|
||||||
events:[],
|
|
||||||
failedAttempt:false,
|
|
||||||
userDetails:{
|
|
||||||
username:'',
|
|
||||||
password:'',
|
|
||||||
token:{
|
|
||||||
expirationDateToken:0,
|
|
||||||
access_token:''
|
|
||||||
}
|
|
||||||
},
|
|
||||||
calendar:{
|
|
||||||
|
|
||||||
},
|
|
||||||
changingGuest:false,
|
|
||||||
sessions:{},
|
|
||||||
Blocks:{},
|
|
||||||
onHoldBlocks:true,
|
|
||||||
careerPath:'SEM'
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
const apiReducer = (state = apiState, action) => {
|
const apiReducer = (state = apiState, action) => {
|
||||||
|
switch (action.type) {
|
||||||
switch(action.type){
|
case REHYDRATE:
|
||||||
|
console.log(action);
|
||||||
|
if (action.payload != undefined) {
|
||||||
|
console.log(action.payload);
|
||||||
|
|
||||||
case REHYDRATE:
|
var expirationDateTokenA = 0;
|
||||||
console.log(action)
|
var access_tokenA = "";
|
||||||
if(action.payload!=undefined){
|
|
||||||
|
|
||||||
console.log( action.payload)
|
|
||||||
|
|
||||||
var expirationDateTokenA=0;
|
if (action.payload.apiReducer.userDetails.token != undefined) {
|
||||||
var access_tokenA='';
|
if (
|
||||||
|
action.payload.apiReducer.userDetails.token.expirationDateToken !=
|
||||||
|
undefined
|
||||||
|
) {
|
||||||
|
expirationDateTokenA =
|
||||||
|
action.payload.apiReducer.userDetails.token.expirationDateToken;
|
||||||
|
}
|
||||||
|
|
||||||
if(action.payload.apiReducer.userDetails.token!=undefined){
|
if (
|
||||||
|
action.payload.apiReducer.userDetails.token.access_token !=
|
||||||
if(action.payload.apiReducer.userDetails.token.expirationDateToken!= undefined){
|
undefined
|
||||||
|
) {
|
||||||
expirationDateTokenA= action.payload.apiReducer.userDetails.token.expirationDateToken;
|
access_tokenA =
|
||||||
}
|
action.payload.apiReducer.userDetails.token.access_token;
|
||||||
|
}
|
||||||
if((action.payload.apiReducer.userDetails.token.access_token!= undefined)){
|
}
|
||||||
|
|
||||||
access_tokenA= action.payload.apiReducer.userDetails.token.access_token;
|
return {
|
||||||
|
sessions: action.payload.apiReducer.sessions,
|
||||||
|
// token: action.payload.apiReducer.token,
|
||||||
|
user: action.payload.apiReducer.user,
|
||||||
|
onHoldBlocks: true,
|
||||||
|
userDetails: {
|
||||||
|
token: {
|
||||||
|
expirationDateToken: expirationDateTokenA,
|
||||||
|
access_token: access_tokenA
|
||||||
|
},
|
||||||
|
username: action.payload.apiReducer.userDetails.username,
|
||||||
|
password: action.payload.apiReducer.userDetails.password
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
}
|
case "CHANGE_CONNECTION_STATUS":
|
||||||
|
return Object.assign({}, state, {
|
||||||
}
|
isConnected: action.isConnected
|
||||||
|
});
|
||||||
return {
|
|
||||||
|
|
||||||
// token: action.payload.apiReducer.token,
|
|
||||||
user: action.payload.apiReducer.user,
|
|
||||||
onHoldBlocks:true,
|
|
||||||
userDetails:{
|
|
||||||
token:{
|
|
||||||
expirationDateToken: expirationDateTokenA,
|
|
||||||
access_token:access_tokenA,
|
|
||||||
|
|
||||||
},
|
|
||||||
username:action.payload.apiReducer.userDetails.username,
|
|
||||||
password:action.payload.apiReducer.userDetails.password
|
|
||||||
}
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
case 'CHANGE_CONNECTION_STATUS':
|
case HOLD:
|
||||||
return Object.assign({}, state, {
|
state = Object.assign({}, state, { onHold: true });
|
||||||
isConnected: action.isConnected,
|
return state;
|
||||||
});
|
|
||||||
|
|
||||||
|
|
||||||
case HOLD:
|
|
||||||
|
|
||||||
state=Object.assign({},state, { onHold:true });
|
case API_LOGIN:
|
||||||
return state;
|
state = Object.assign({}, state, {
|
||||||
|
logged: action.logged,
|
||||||
|
//token:action.token,
|
||||||
|
failedAttempt: action.failedAttempt,
|
||||||
|
user: action.user,
|
||||||
|
userDetails: {
|
||||||
|
token: action.token,
|
||||||
|
username: action.userDetails.username,
|
||||||
|
password: action.userDetails.password
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
case API_LOGIN:
|
return state;
|
||||||
|
|
||||||
|
|
||||||
state=Object.assign({},state, {
|
|
||||||
logged:action.logged,
|
|
||||||
//token:action.token,
|
|
||||||
failedAttempt: action.failedAttempt,
|
|
||||||
user:action.user,
|
|
||||||
userDetails: {token:action.token, username:action.userDetails.username, password:action.userDetails.password},
|
|
||||||
|
|
||||||
|
|
||||||
});
|
|
||||||
|
|
||||||
return state;
|
case CHECK_USER:
|
||||||
|
var u = action.userDetails;
|
||||||
|
if (action.token != undefined) u.token = action.token;
|
||||||
|
|
||||||
case CHECK_USER:
|
state = Object.assign({}, state, {
|
||||||
|
logged: action.logged,
|
||||||
|
onHold: action.onHold,
|
||||||
|
userDetails: u
|
||||||
|
});
|
||||||
|
|
||||||
var u= action.userDetails;
|
return state;
|
||||||
if(action.token!=undefined)
|
|
||||||
u.token= action.token;
|
|
||||||
|
|
||||||
state=Object.assign({},state, {logged:action.logged, onHold:action.onHold, userDetails:u });
|
case LOGOUT_USER:
|
||||||
|
state = Object.assign({}, state, { logged: false });
|
||||||
|
|
||||||
return state;
|
return state;
|
||||||
|
|
||||||
case LOGOUT_USER:
|
case USER_INFO:
|
||||||
|
state = Object.assign({}, state, {
|
||||||
|
user: action.user,
|
||||||
|
loggedIn: action.loggedIn,
|
||||||
|
onHold: action.onHold
|
||||||
|
});
|
||||||
|
|
||||||
state=Object.assign({},state, { logged:false});
|
return state;
|
||||||
|
|
||||||
return state;
|
case GET_EVENTS:
|
||||||
|
state = Object.assign({}, state, { events: action.events });
|
||||||
|
|
||||||
case USER_INFO:
|
return state;
|
||||||
|
|
||||||
state=Object.assign({},state, { user: action.user , loggedIn:action.loggedIn, onHold:action.onHold});
|
case OPEN_MODAL:
|
||||||
|
console.log("open modal")
|
||||||
return state;
|
state = Object.assign({}, state, {
|
||||||
|
modalOpen: true,
|
||||||
case GET_EVENTS:
|
modalInfo: action.modalInfo,
|
||||||
|
modalType: action.type
|
||||||
|
});
|
||||||
|
return state;
|
||||||
|
|
||||||
state=Object.assign({},state, { events: action.events});
|
case CLOSE_MODAL:
|
||||||
|
state = Object.assign({}, state, {
|
||||||
return state;
|
modalOpen: false,
|
||||||
|
modalInfo: "",
|
||||||
|
type: ""
|
||||||
|
});
|
||||||
|
return state;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
case SESSION_BLOCKS:
|
|
||||||
state=Object.assign({},state, { Blocks: action.Blocks, onHoldBlocks:false, changingGuest:false});
|
|
||||||
return state;
|
|
||||||
|
|
||||||
case GET_CAREERS:
|
|
||||||
var c= {
|
|
||||||
guests:action.guests
|
|
||||||
}
|
|
||||||
state=Object.assign({},state, { calendar:c });
|
|
||||||
|
|
||||||
return state;
|
case SIGN_SESSION:
|
||||||
|
state = Object.assign({}, state, {
|
||||||
case CHANGE_GUEST:
|
Blocks: action.Blocks,
|
||||||
state=Object.assign({},state, { changingGuest:false, sessions:action.sessions, Blocks:action.Blocks});
|
changingGuest: false
|
||||||
return state;
|
});
|
||||||
|
return state;
|
||||||
|
|
||||||
case WAIT_CHANGE:
|
case SESSION_BLOCKS:
|
||||||
state=Object.assign({},state, { changingGuest:true});
|
state = Object.assign({}, state, {
|
||||||
return state;
|
Blocks: action.Blocks,
|
||||||
|
onHoldBlocks: false,
|
||||||
|
changingGuest: false
|
||||||
|
});
|
||||||
|
return state;
|
||||||
|
|
||||||
case TIMERWAIT_CHANGE:
|
case GET_CAREERS:
|
||||||
state=Object.assign({},state, { Blocks:true});
|
var c = {
|
||||||
return state;
|
guests: action.guests
|
||||||
case GET_SESSIONS:
|
};
|
||||||
state=Object.assign({},state, { sessions:action.sessions, Blocks: action.Blocks, careerPath:action.careerPath});
|
state = Object.assign({}, state, { calendar: c });
|
||||||
return state;
|
|
||||||
default:
|
return state;
|
||||||
return state;
|
|
||||||
}
|
case CHANGE_GUEST:
|
||||||
}
|
state = Object.assign({}, state, {
|
||||||
export default apiReducer;
|
changingGuest: false,
|
||||||
|
sessions: action.sessions,
|
||||||
|
Blocks: action.Blocks
|
||||||
|
});
|
||||||
|
return state;
|
||||||
|
|
||||||
|
case WAIT_CHANGE:
|
||||||
|
state = Object.assign({}, state, { changingGuest: true });
|
||||||
|
return state;
|
||||||
|
|
||||||
|
case TIMERWAIT_CHANGE:
|
||||||
|
state = Object.assign({}, state, { Blocks: true });
|
||||||
|
return state;
|
||||||
|
case GET_SESSIONS:
|
||||||
|
state = Object.assign({}, state, {
|
||||||
|
sessions: action.sessions,
|
||||||
|
Blocks: action.Blocks,
|
||||||
|
careerPath: action.careerPath
|
||||||
|
});
|
||||||
|
return state;
|
||||||
|
default:
|
||||||
|
return state;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
export default apiReducer;
|
||||||
|
|
|
@ -7840,6 +7840,14 @@
|
||||||
"resolved": "https://registry.npmjs.org/react-native-app-intro-slider/-/react-native-app-intro-slider-1.0.1.tgz",
|
"resolved": "https://registry.npmjs.org/react-native-app-intro-slider/-/react-native-app-intro-slider-1.0.1.tgz",
|
||||||
"integrity": "sha512-5Gzg5FG2uP/RHkSDFB5+2df4vQ2FpyUJ5PGYd23lLEISsEOJe0Zredh1hHMJj+fB5D9B7ZoL0IlR+SNn8iFxHg=="
|
"integrity": "sha512-5Gzg5FG2uP/RHkSDFB5+2df4vQ2FpyUJ5PGYd23lLEISsEOJe0Zredh1hHMJj+fB5D9B7ZoL0IlR+SNn8iFxHg=="
|
||||||
},
|
},
|
||||||
|
"react-native-awesome-alerts": {
|
||||||
|
"version": "1.2.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/react-native-awesome-alerts/-/react-native-awesome-alerts-1.2.0.tgz",
|
||||||
|
"integrity": "sha512-ouxDGJ/porNkuaeqpgxIJA4jAPqHC9bJIsxLA21NA6eZhnEhbqWOprjsNqwI0/7bJxXm9baTzXESCMzwAy3eZw==",
|
||||||
|
"requires": {
|
||||||
|
"prop-types": "^15.5.10"
|
||||||
|
}
|
||||||
|
},
|
||||||
"react-native-branch": {
|
"react-native-branch": {
|
||||||
"version": "2.2.5",
|
"version": "2.2.5",
|
||||||
"resolved": "https://registry.npmjs.org/react-native-branch/-/react-native-branch-2.2.5.tgz",
|
"resolved": "https://registry.npmjs.org/react-native-branch/-/react-native-branch-2.2.5.tgz",
|
||||||
|
|
|
@ -18,6 +18,7 @@
|
||||||
"react-native": "0.57.8",
|
"react-native": "0.57.8",
|
||||||
"react-native-action-button": "^2.8.5",
|
"react-native-action-button": "^2.8.5",
|
||||||
"react-native-app-intro-slider": "^1.0.1",
|
"react-native-app-intro-slider": "^1.0.1",
|
||||||
|
"react-native-awesome-alerts": "^1.2.0",
|
||||||
"react-native-camera": "^1.9.2",
|
"react-native-camera": "^1.9.2",
|
||||||
"react-native-check-box": "^2.1.7",
|
"react-native-check-box": "^2.1.7",
|
||||||
"react-native-cli": "^2.0.1",
|
"react-native-cli": "^2.0.1",
|
||||||
|
|
Loading…
Reference in New Issue