diff --git a/App/app/App.js b/App/app/App.js index 06f3ae59..fbf0aeb1 100755 --- a/App/app/App.js +++ b/App/app/App.js @@ -58,6 +58,7 @@ class App extends Component { console.log(this.props.UI_loginScannerActive); }; _tryLogin = () => { + this.props.waitLogin(); //console.log(this.state.text) //this.scanner.reactivate(); this.props.login(this.state.username, this.state.text); @@ -98,6 +99,7 @@ class App extends Component { componentDidMount() { //this.props.hold(); + this.props.loginInternal(); NetInfo.isConnected.addEventListener( "connectionChange", this.handleConnectivityChange @@ -140,13 +142,7 @@ class App extends Component { }; render() { - if (!this.state.isConnected) { - return ( - - cenas da vida - - ); - } + if (!this.props.logged && this.props.onHold) { return ( @@ -228,7 +224,7 @@ class App extends Component { onSubmitEditing={Keyboard.dismiss} placeholder="Password" /> - + { !this.props.loadingLogin && Entrar + } + {this.props.alignItems && + + } @@ -490,7 +490,8 @@ mapStateToProps = (state, props) => { userDetails: state.apiReducer.userDetails, modalOpen: state.apiReducer.modalOpen, modalInfo: state.apiReducer.modalInfo, - type: state.apiReducer.type + type: state.apiReducer.type, + loadingLogin:state.apiReducer.loadingLogin }; }; diff --git a/App/app/store/actions/actionTypes.js b/App/app/store/actions/actionTypes.js index e2e128e8..3fbac2f8 100644 --- a/App/app/store/actions/actionTypes.js +++ b/App/app/store/actions/actionTypes.js @@ -29,7 +29,7 @@ export const UI_LOGIN_PASSWORD_INPUT_LOADING='UI_LOGIN_PASSWORD_INPUT_LOADING' export const UI_LOGIN_PASSWORD_INPUT_INVALID='UI_LOGIN_PASSWORD_INPUT_INVALID' export const UI_LOGIN_NOINTERNET='UI_LOGIN_NOINTERNET' export const UI_LOGIN_OPEN_SCANNER='UI_LOIN_OPEN_SCANNER' - +export const LOADINGLOGIN = 'LOADINGLOGIN' diff --git a/App/app/store/actions/api.js b/App/app/store/actions/api.js index b7e833b0..b5466f1b 100644 --- a/App/app/store/actions/api.js +++ b/App/app/store/actions/api.js @@ -1,6 +1,6 @@ import { AsyncStorage } from "react-native"; -import { NetInfo } from "react-native"; +import { NetInfo , Alert} from "react-native"; var _ = require("lodash"); @@ -19,7 +19,8 @@ import { CHANGE_GUEST, WAIT_CHANGE, SIGN_SESSION, - OPEN_MODAL + OPEN_MODAL, + LOADINGLOGIN } from "./actionTypes"; //Import the actions types constant we defined in our actions import moment from "moment"; @@ -38,6 +39,44 @@ axios.defaults.baseURL = "http://enei2019.uingress.com/internal/api"; const map = require("lodash/fp/map").convert({ cap: false }); + +export function waitLogin(){ + return dispatch=>{ + dispatch({ + type: LOADINGLOGIN, + + }); + } +} + + +//faz autenticação com API interna +export function loginInternal(userDetails){ + axios.defaults.baseURL = "http://127.0.0.1:5000"; + return dispatch => { + + axios.post('/api/login',{ + "username": "cena", + "password": "password" + + }).then(a=>{ + console.log("sucesso!") + console.log(a) + }).catch(p=>{ + console.log(p) + }) + + dispatch({ + type: OPEN_MODAL, + + }); + }; + + +} + + + export function openModal(info, t) { return dispatch => { dispatch({ @@ -613,23 +652,36 @@ export function login(user, pass) { type: API_LOGIN, logged: false, failedAttempt: true, - tokenData: "error" + tokenData: "error", + user: { Name: "" }, }); }) + .catch(err=>{ + console.log("error") + }) .then(res => res.json()) .then(parsed => { + console.log(parsed) if ( parsed.error_description == "Provided username and password is incorrect" ) { + Alert.alert("Dados Inválidos","Podes sempre fazer reset da password para o email.") + dispatch({ type: API_LOGIN, logged: false, failedAttempt: true, token: obj, - user: { Name: "Henrique" } + user: { Name: "Henrique" }, + userDetails:{}, + waitLogin:false, + onHold:false + }); + return; } + else{ var obj = { access_token: parsed.access_token, expirationDateToken: Math.round(new Date().getTime() / 1000) + 3598, @@ -648,7 +700,7 @@ export function login(user, pass) { token: obj, user: { Name: "Henrique" }, userDetails: details - }); + });} }); }; } diff --git a/App/app/store/actions/index.js b/App/app/store/actions/index.js index 282219b8..9c16481c 100644 --- a/App/app/store/actions/index.js +++ b/App/app/store/actions/index.js @@ -14,7 +14,9 @@ export {checkUser, getSessions, signSession, openModal, - closeModal + closeModal, + loginInternal, + waitLogin } from "./api" export { diff --git a/App/app/store/reducers/api.js b/App/app/store/reducers/api.js index 855df7f1..bca3c594 100644 --- a/App/app/store/reducers/api.js +++ b/App/app/store/reducers/api.js @@ -14,8 +14,11 @@ import { TIMERWAIT_CHANGE, SIGN_SESSION, OPEN_MODAL, - CLOSE_MODAL + CLOSE_MODAL, + LOADINGLOGIN + } from "../actions/actionTypes"; //Import the actions types constant we defined in our actions + import { REHYDRATE } from "redux-persist"; let apiState = { @@ -43,7 +46,8 @@ let apiState = { a:{}, b:{}, c:{}, - d:{} + d:{}, + loadingLogin:false, }; @@ -96,6 +100,9 @@ const apiReducer = (state = apiState, action) => { isConnected: action.isConnected }); + case LOADINGLOGIN: + state= Object.assign({}, state, {loadingLogin:true}); + case HOLD: state = Object.assign({}, state, { onHold: true }); return state; @@ -110,7 +117,9 @@ const apiReducer = (state = apiState, action) => { token: action.token, username: action.userDetails.username, password: action.userDetails.password - } + }, + loadingLogin:false, + onHold: action.onHold }); return state;