diff --git a/App/app/App.js b/App/app/App.js index c90fa352..d4206e48 100755 --- a/App/app/App.js +++ b/App/app/App.js @@ -1,14 +1,13 @@ - import React, {Component} from 'react'; -import {Platform, StyleSheet, Text, View, StatusBar,Dimensions,Image,ActivityIndicator} from 'react-native'; +import {Platform, StyleSheet, Text, View, StatusBar, Dimensions, Image, ActivityIndicator} from 'react-native'; import {bindActionCreators} from 'redux'; -import { connect } from 'react-redux'; +import {connect} from 'react-redux'; import QRCodeScanner from 'react-native-qrcode-scanner'; import {UtilStyles} from './assets/styles' import * as Actions from './actions'; //Import your actions -import {RkButton, RkTheme , RkText} from 'react-native-ui-kitten'; +import {RkButton, RkTheme, RkText} from 'react-native-ui-kitten'; import Router from './Router' @@ -16,140 +15,130 @@ const SCREEN_HEIGHT = Dimensions.get("window").height; const SCREEN_WIDTH = Dimensions.get("window").width; - class App extends Component { +class App extends Component { constructor(props) { - + super(props); this.state = { - - token:{valid:false}, + + token: {valid: false}, tokenData: '', onHold: true, - logged:false + logged: false }; } componentDidMount() { - + //verifica se o utilizador tem token guardado this.props.checkUser(); - - } + + } onSuccess = (e) => { - this.props.login(e.data,'80f3b6e5'); + this.props.login(e.data, '80f3b6e5'); console.log("tentativa de login"); - - }; + + }; render() { - - if(this.props.onHold && !this.props.logged){ - + if (this.props.onHold && !this.props.logged) { + + return ( - - - CARREGANDO {this.props.onHold} - + + CARREGANDO {this.props.onHold} + - - ) + ) } { //console.log('token... '+ this.props.logged) - + //se existir token - - if(this.props.logged){ + + if (this.props.logged) { return ( - ) - } - else{ - + else { + //se não existir vai para o ecrã de scan QR return ( - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + Recuperar pin de acesso + lols + + + + } + /> - - - - - - - - - - - - - - Recuperar pin de acesso - lols - - - - + ) } - /> - - ) - } + } } - - - - - - } - } RkTheme.setType('RkButton', 'dark', { container: { - paddingTop:10, - backgroundColor: 'gray', - - borderRadius: 90, + paddingTop: 10, + backgroundColor: 'gray', + + borderRadius: 90, } - }); +}); const rectDimensions = SCREEN_WIDTH * 0.85; // this is equivalent to 255 from a 393 device width @@ -157,35 +146,31 @@ const rectDimensions = SCREEN_WIDTH * 0.85; // this is equivalent to 255 from a const overlayColor = 'rgba(0,0,0,0.30)'; const styles = { - - recover:{ - paddingTop:10, + + recover: { + paddingTop: 10, color: "red", - paddingBottom:10 + paddingBottom: 10 }, - manual:{ - - + manual: {}, - }, - - logo:{ + logo: { - height:SCREEN_HEIGHT*0.35, - width:SCREEN_WIDTH, + height: SCREEN_HEIGHT * 0.35, + width: SCREEN_WIDTH, backgroundColor: overlayColor, }, rectangleContainer: { - + flex: 1, alignItems: "center", justifyContent: "center", backgroundColor: "transparent", - + }, rectangle: { - + height: rectDimensions, width: rectDimensions, alignItems: "center", @@ -215,23 +200,20 @@ const styles = { }, }; +mapStateToProps = (state, props) => { -function mapStateToProps(state, props) { - return { - - token: state.apiReducer.token, + token: state.apiReducer.token, loggedIn: state.apiReducer.loggedIn, onHold: state.apiReducer.onHold, - logged:state.apiReducer.logged - + logged: state.apiReducer.logged } -} +}; -function mapDispatchToProps(dispatch) { +mapDispatchToProps = (dispatch) => { return bindActionCreators(Actions, dispatch); -} +}; export default connect(mapStateToProps, mapDispatchToProps)(App); \ No newline at end of file diff --git a/App/app/actions/index.js b/App/app/actions/index.js index 1d1720b7..83495b63 100644 --- a/App/app/actions/index.js +++ b/App/app/actions/index.js @@ -13,6 +13,8 @@ import { AsyncStorage } from 'react-native'; //Import the sample data import Data from '../intructions.json'; import Login from '../screens/Login.js'; + +import moment from 'moment' export function getData(){ return (dispatch) => { @@ -30,15 +32,15 @@ export function getData(){ export function getEvents(user){ return (dispatch)=>{ - var o=[]; + let events = []; console.log("chegou aqui") - for(var key in user.Sessions){ - - o.push({ - time:user.Sessions[key].SessionStart.substr(11, 14), - timeEnd: user.Sessions[key].SessionEnd.substr(11, 14), + for(let key in user.Sessions){ + + events.push({ + time: moment(user.Sessions[key].SessionStart).format('h:mm'), + timeEnd: moment(user.Sessions[key].SessionEnd).format('h:mm'), lineColor:'#009688', imageUrl: 'https://d2v9y0dukr6mq2.cloudfront.net/video/thumbnail/Vjkyj2hBg/welcome-white-sign-with-falling-colorful-confetti-animation-on-white-background_sglmmh3qm__F0013.png', description:user.Sessions[key].Description, @@ -51,8 +53,7 @@ export function getEvents(user){ dispatch({ type: GET_EVENTS, - events: o - + events: events }); @@ -89,7 +90,6 @@ const saveToken = async token => { obj={} try { - obj.access_token = await AsyncStorage.getItem('userToken') || 'none'; obj.expirationDateToken = await AsyncStorage.getItem('expirationDateToken') || 'none'; obj.refreshToken = await AsyncStorage.getItem('refreshToken') || 'none'; diff --git a/App/app/reducers/index.js b/App/app/reducers/index.js index 331f3058..de414b54 100644 --- a/App/app/reducers/index.js +++ b/App/app/reducers/index.js @@ -23,7 +23,7 @@ const apiReducer = (state = apiState, action) => { case HOLD: - state=Object.assign({},state, {onHold:true}); + state=Object.assign({},state, { onHold:true }); return state; case API_LOGIN: diff --git a/App/app/screens/Calendar.js b/App/app/screens/Calendar.js index 24d609fd..5b6cb362 100644 --- a/App/app/screens/Calendar.js +++ b/App/app/screens/Calendar.js @@ -1,333 +1,330 @@ import * as React from 'react'; -import { View, StyleSheet, Dimensions , Image, ScrollView,Text, Button} from 'react-native'; -import { TabView, TabBar, SceneMap } from 'react-native-tab-view'; +import {View, StyleSheet, Dimensions, Image, ScrollView, Text, Button} from 'react-native'; +import {TabView, TabBar, SceneMap} from 'react-native-tab-view'; import { - RkButton,RkCard, RkText, - RkTheme + 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 {connect} from 'react-redux'; import {bindActionCreators} from 'redux'; import * as Actions from '../actions'; //Import your actionss +const formatObj = (obj) => { -const formatObj= (obj)=>{ - - let a={}; - - a.push({ + let a = {}; + a.push({}) - }) + return a - return a - - -} +}; const ThirdRoute = () => ( - + ); const FourthRoute = () => ( - + ); +class Calendar extends React.Component { + + state = { + index: 0, + routes: [ + {key: 'first', title: 'Sex 12'}, + {key: 'second', title: 'Sab 13'}, + {key: 'third', title: 'Dom 14'}, + {key: 'fourth', title: 'Seg 15'}, + + ], + }; + + componentDidMount() { + + this.props.getEvents(this.props.user); + console.log('didMount'); + console.log(this.props.events); + } -class Calendar extends React.Component { - - state = { - index: 0, - routes: [ - { key: 'first', title: 'Sex 12' }, - { key: 'second', title: 'Sab 13' }, - { key: 'third', title: 'Dom 14' }, - { key: 'fourth', title: 'Seg 15' }, - - ], -}; - -componentDidMount(){ - - this.props.getEvents(this.props.user); - console.log('didMount'); - console.log(this.props.events); -} + renderDetail = ({item, index}) => { + // + return ( + + {item.name} + -renderDetail = ({ item, index })=> { - // - return ( - - - {item.name} - + {item.description} + + + {item.Enrolled} / {item.MaxAttendees} + - - {item.description} - - - {item.Enrolled} / {item.MaxAttendees} + - - - - ); -} + ); + } -renderEvents = ({ item, index })=> { + renderEvents = ({item, index}) => { - return ( - - {item.title} - + return ( + + {item.title} + - + - - {item.description} - - - 1/50 + {item.description} + + + 1/50 + + + - - - - ); -} + ); + } -_update=()=>{ - this.setState({ user: this.props.user }); - console.log(this.props.events); -} + _update = () => { + this.setState({user: this.props.user}); + console.log(this.props.events); + } + constructor() { -constructor(){ - - super() - - - - const archeryImgSource = require('../assets/img/archery.png'); - const badmintonImgSource = require('../assets/img/badminton.png'); - const lunchImgSource = require('../assets/img/lunch.png'); - const soccerImgSource = require('../assets/img/soccer.png'); - const dumbbellImgSource = require('../assets/img/dumbbell.png'); - - const ArcheryImage = (props) => ; - const BadmintonImage = (props) => ; - const LunchImage = (props) => ; - const SoccerImage = (props) => ; - const DumbbellImage = (props) => ; - const VectorIconImage = (props) => ; - - this.data = [ + super() - { - time: '09:30', - title: 'Sessão de Check-In', - description: 'Os participantes devem fazer o check-in e recolher o kit fornecido pela organização', - lineColor:'#009688', - icon: ArcheryImage, - imageUrl: 'https://blogsimages.adobe.com/conversations/files/2014/03/Check_In-1.jpg' - }, - { - time: '17:45', - title: 'Sessão de Abertura', - lineColor:'#009688', - description: 'Bem vindo a Coimbra, a cidade dos estudantes! Obrigado por participares na 13ª edição do ENEI.', - icon: BadmintonImage, - imageUrl: 'https://d2v9y0dukr6mq2.cloudfront.net/video/thumbnail/Vjkyj2hBg/welcome-white-sign-with-falling-colorful-confetti-animation-on-white-background_sglmmh3qm__F0013.png' - }, - { - time: '19:30', - title: 'Jantar', - lineColor:'#009688', - description: 'Time to eat', - icon: BadmintonImage, - imageUrl: 'https://www.retailmenot.com/blog/wp-content/uploads/2016/08/kids-eat-free-hero1-1471459190.jpg' - }, - - { - time: '23:30', - title: 'Festarola', - lineColor:'#009688', - description: 'Sabes beber? Se não sabes, aprende com os da casa!', - icon: BadmintonImage, - imageUrl: 'http://www.revistaversatille.com.br/wp-content/uploads/Party.jpg' - }, - - - ] -} + const archeryImgSource = require('../assets/img/archery.png'); + const badmintonImgSource = require('../assets/img/badminton.png'); + const lunchImgSource = require('../assets/img/lunch.png'); + const soccerImgSource = require('../assets/img/soccer.png'); + const dumbbellImgSource = require('../assets/img/dumbbell.png'); -render() { - - const FirstRoute = () => ( - + const ArcheryImage = (props) => ; + const BadmintonImage = (props) => ; + const LunchImage = (props) => ; + const SoccerImage = (props) => ; + const DumbbellImage = (props) => ; + const VectorIconImage = (props) => ; - - - -