|
@ -1,46 +1,40 @@ |
|
|
import React, { useState, useContext } from "react"; |
|
|
|
|
|
|
|
|
import React, { useState } from "react"; |
|
|
import { StyleSheet, View, Text } from "react-native"; |
|
|
import { StyleSheet, View, Text } from "react-native"; |
|
|
import * as Yup from "yup"; |
|
|
import * as Yup from "yup"; |
|
|
|
|
|
|
|
|
import { |
|
|
|
|
|
Form, |
|
|
|
|
|
SubmitButton, |
|
|
|
|
|
FormField, |
|
|
|
|
|
ErrorMessage, |
|
|
|
|
|
} from "../components/forms"; |
|
|
|
|
|
import Screen from "../components/Screen"; |
|
|
|
|
|
|
|
|
import { Form, SubmitButton, FormField } from "../components/forms"; |
|
|
import colors from "../config/colors"; |
|
|
import colors from "../config/colors"; |
|
|
import { dimensions } from "../config/dimensions"; |
|
|
import { dimensions } from "../config/dimensions"; |
|
|
import assets from "../config/assets"; |
|
|
|
|
|
import PhoneNumberFormField from "../components/forms/PhoneNumberFormField"; |
|
|
import PhoneNumberFormField from "../components/forms/PhoneNumberFormField"; |
|
|
import SearchablePicker from "../components/SearchablePicker"; |
|
|
import SearchablePicker from "../components/SearchablePicker"; |
|
|
import ConfirmationModal from "../components/ConfirmationModal"; |
|
|
import ConfirmationModal from "../components/ConfirmationModal"; |
|
|
|
|
|
import {loginByUsernamAnswers} from "../api/auth"; |
|
|
|
|
|
|
|
|
function SecQuestionPicker({ name }) { |
|
|
function SecQuestionPicker({ name }) { |
|
|
const [items, setItems] = useState([ |
|
|
const [items, setItems] = useState([ |
|
|
{ value: "Qual a sua cor predileta?", label: "Qual a sua cor predileta?" }, |
|
|
|
|
|
|
|
|
{ value: "1", label: "Qual a sua cor predileta?" }, |
|
|
{ |
|
|
{ |
|
|
value: "Qual é seu livro predileto?", |
|
|
|
|
|
|
|
|
value: "2", |
|
|
label: "Qual é seu livro predileto?", |
|
|
label: "Qual é seu livro predileto?", |
|
|
}, |
|
|
}, |
|
|
{ |
|
|
{ |
|
|
value: "Qual o nome da rua em que você cresceu?", |
|
|
|
|
|
|
|
|
value: "3", |
|
|
label: "Qual o nome da rua em que você cresceu?", |
|
|
label: "Qual o nome da rua em que você cresceu?", |
|
|
}, |
|
|
}, |
|
|
{ |
|
|
{ |
|
|
value: "Qual o nome do seu bicho de estimação predileto?", |
|
|
|
|
|
|
|
|
value: "4", |
|
|
label: "Qual o nome do seu bicho de estimação predileto?", |
|
|
label: "Qual o nome do seu bicho de estimação predileto?", |
|
|
}, |
|
|
}, |
|
|
{ |
|
|
{ |
|
|
value: "Qual a sua comida predileta?", |
|
|
|
|
|
|
|
|
value: "5", |
|
|
label: "Qual a sua comida predileta?", |
|
|
label: "Qual a sua comida predileta?", |
|
|
}, |
|
|
}, |
|
|
{ |
|
|
{ |
|
|
value: "Qual é o seu país preferido?", |
|
|
|
|
|
|
|
|
value: "7", |
|
|
label: "Qual é o seu país preferido?", |
|
|
label: "Qual é o seu país preferido?", |
|
|
}, |
|
|
}, |
|
|
{ |
|
|
{ |
|
|
value: "Qual é a sua marca de carro predileto?", |
|
|
|
|
|
|
|
|
value: "8", |
|
|
label: "Qual é a sua marca de carro predileto?", |
|
|
label: "Qual é a sua marca de carro predileto?", |
|
|
}, |
|
|
}, |
|
|
]); |
|
|
]); |
|
@ -77,6 +71,37 @@ export default function PasswordRecovery({ navigation }) { |
|
|
message: "", |
|
|
message: "", |
|
|
}); |
|
|
}); |
|
|
|
|
|
|
|
|
|
|
|
const handleSubmit = async (number, answer, secQuestion) => { |
|
|
|
|
|
const apiResponse = await loginByUsernamAnswers(number, secQuestion, answer); |
|
|
|
|
|
|
|
|
|
|
|
switch (apiResponse.status) { |
|
|
|
|
|
case 200: |
|
|
|
|
|
console.log("ir pra proxima tela...."); |
|
|
|
|
|
navigation.navigate("PasswordRecoveryChangePswd", { |
|
|
|
|
|
authToken: apiResponse.data, |
|
|
|
|
|
}); |
|
|
|
|
|
break; |
|
|
|
|
|
case 404: |
|
|
|
|
|
setConfirmatioModalData({ |
|
|
|
|
|
message: "Número de telefone inválido", |
|
|
|
|
|
show: true, |
|
|
|
|
|
}); |
|
|
|
|
|
break; |
|
|
|
|
|
case 422: |
|
|
|
|
|
setConfirmatioModalData({ |
|
|
|
|
|
message: "Pergunta de segurança ou senha incorretos", |
|
|
|
|
|
show: true, |
|
|
|
|
|
}); |
|
|
|
|
|
break; |
|
|
|
|
|
default: |
|
|
|
|
|
setConfirmatioModalData({ |
|
|
|
|
|
message: "Algo deu errado, tente novamente mais tarde", |
|
|
|
|
|
show: true, |
|
|
|
|
|
}); |
|
|
|
|
|
break; |
|
|
|
|
|
} |
|
|
|
|
|
}; |
|
|
|
|
|
|
|
|
return ( |
|
|
return ( |
|
|
<View> |
|
|
<View> |
|
|
<ConfirmationModal |
|
|
<ConfirmationModal |
|
@ -95,35 +120,9 @@ export default function PasswordRecovery({ navigation }) { |
|
|
answer: "", |
|
|
answer: "", |
|
|
secQuestion: "", |
|
|
secQuestion: "", |
|
|
}} |
|
|
}} |
|
|
onSubmit={() => { |
|
|
|
|
|
// FIXME: This should be replaced by the proper api call in future
|
|
|
|
|
|
const apiReturnTest = 200; |
|
|
|
|
|
const apiReturnTokenTest = "API EXAMPLE TOKEN API"; |
|
|
|
|
|
|
|
|
|
|
|
switch (apiReturnTest) { |
|
|
|
|
|
case 200: |
|
|
|
|
|
console.log("ir pra proxima tela...."); |
|
|
|
|
|
navigation.navigate("PasswordRecoveryChangePswd", { authToken : apiReturnTokenTest }) |
|
|
|
|
|
break; |
|
|
|
|
|
case 404: |
|
|
|
|
|
setConfirmatioModalData({ |
|
|
|
|
|
message: "Número de telefone inválido", |
|
|
|
|
|
show: true, |
|
|
|
|
|
}); |
|
|
|
|
|
break; |
|
|
|
|
|
case 422: |
|
|
|
|
|
setConfirmatioModalData({ |
|
|
|
|
|
message: "Pergunta de segurança ou senha incorretos", |
|
|
|
|
|
show: true, |
|
|
|
|
|
}); |
|
|
|
|
|
break; |
|
|
|
|
|
default: |
|
|
|
|
|
setConfirmatioModalData({ |
|
|
|
|
|
message: "Algo deu errado, tente novamente mais tarde", |
|
|
|
|
|
show: true, |
|
|
|
|
|
}); |
|
|
|
|
|
break; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
onSubmit={({number, answer, secQuestion}) => { |
|
|
|
|
|
|
|
|
|
|
|
handleSubmit(number, answer, secQuestion); |
|
|
}} |
|
|
}} |
|
|
> |
|
|
> |
|
|
<View style={{ padding: 16 }}> |
|
|
<View style={{ padding: 16 }}> |
|
|