|
|
@ -7,7 +7,7 @@ import { Box, Container, Grid, Typography, Button, Stepper, Step, StepLabel } fr
|
|
|
|
import { useFormik } from 'formik';
|
|
|
|
import { useFormik } from 'formik';
|
|
|
|
import { useState } from "react";
|
|
|
|
import { useState } from "react";
|
|
|
|
import { matchIsValidTel } from 'mui-tel-input';
|
|
|
|
import { matchIsValidTel } from 'mui-tel-input';
|
|
|
|
import axios from "axios";
|
|
|
|
//import axios from "axios";
|
|
|
|
|
|
|
|
|
|
|
|
interface dados {
|
|
|
|
interface dados {
|
|
|
|
|
|
|
|
|
|
|
@ -23,7 +23,7 @@ interface dados {
|
|
|
|
pais?: string;
|
|
|
|
pais?: string;
|
|
|
|
cidade?: string;
|
|
|
|
cidade?: string;
|
|
|
|
codigoPostal?: string;
|
|
|
|
codigoPostal?: string;
|
|
|
|
estado: string;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
nomePessoaContacto: string;
|
|
|
|
nomePessoaContacto: string;
|
|
|
|
telemovelPC: string;
|
|
|
|
telemovelPC: string;
|
|
|
@ -49,7 +49,6 @@ const initialValues: dados = {
|
|
|
|
pais: 'Portugal',
|
|
|
|
pais: 'Portugal',
|
|
|
|
cidade: '',
|
|
|
|
cidade: '',
|
|
|
|
codigoPostal: undefined,
|
|
|
|
codigoPostal: undefined,
|
|
|
|
estado: 'Pendente',
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
nomePessoaContacto: '',
|
|
|
|
nomePessoaContacto: '',
|
|
|
|
telemovelPC: '',
|
|
|
|
telemovelPC: '',
|
|
|
@ -69,11 +68,9 @@ function App() {
|
|
|
|
|
|
|
|
|
|
|
|
const schemaStep1 = yup.object({
|
|
|
|
const schemaStep1 = yup.object({
|
|
|
|
|
|
|
|
|
|
|
|
tiporegisto: yup.string().required("*Por favor insira um tipo de registo registo válido"),
|
|
|
|
tiporegisto: yup.string().required("*Por favor insira um tipo de registo válido"),
|
|
|
|
tipoempresa: yup.string(),
|
|
|
|
representante: yup.string().required("*Por favor insira um nome válido"),
|
|
|
|
empresa: yup.string().required("*Por favor insira um nome válido"),
|
|
|
|
|
|
|
|
nif: yup.string().matches(/^[0-9]+$/, "*Por favor insira um NIF válido").length(9, "*O NIF deve ser composto por 9 dígitos"),
|
|
|
|
nif: yup.string().matches(/^[0-9]+$/, "*Por favor insira um NIF válido").length(9, "*O NIF deve ser composto por 9 dígitos"),
|
|
|
|
representante: yup.string().required("*Por favor insira um representante válido"),
|
|
|
|
|
|
|
|
telemovelDP: yup.string()
|
|
|
|
telemovelDP: yup.string()
|
|
|
|
.required(' ')
|
|
|
|
.required(' ')
|
|
|
|
.test('is-valid-phone', "*Por favor insira um número de telemóvel válido", (value) => {
|
|
|
|
.test('is-valid-phone', "*Por favor insira um número de telemóvel válido", (value) => {
|
|
|
@ -84,7 +81,7 @@ function App() {
|
|
|
|
.required("*Por favor insira um email válido"),
|
|
|
|
.required("*Por favor insira um email válido"),
|
|
|
|
morada: yup.string(),
|
|
|
|
morada: yup.string(),
|
|
|
|
andar: yup.string().matches(/^[0-9]+$/, "*Por favor insira um Andar válido"),
|
|
|
|
andar: yup.string().matches(/^[0-9]+$/, "*Por favor insira um Andar válido"),
|
|
|
|
cidade: yup.string().required("*Por favor insira uma Cidade válida"),
|
|
|
|
cidade: yup.string().required("*Por favor insira uma cidade válida"),
|
|
|
|
pais: yup.string(),
|
|
|
|
pais: yup.string(),
|
|
|
|
codigoPostal: yup.string()
|
|
|
|
codigoPostal: yup.string()
|
|
|
|
|
|
|
|
|
|
|
@ -139,14 +136,15 @@ function App() {
|
|
|
|
name: values.nomePessoaContacto,
|
|
|
|
name: values.nomePessoaContacto,
|
|
|
|
email: values.emailPessoaContacto,
|
|
|
|
email: values.emailPessoaContacto,
|
|
|
|
phone: values.telemovelPC.replace(/\s/g, ''),
|
|
|
|
phone: values.telemovelPC.replace(/\s/g, ''),
|
|
|
|
}]
|
|
|
|
}],
|
|
|
|
|
|
|
|
type: values.tipoempresa
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
console.log('Dados: ', values);
|
|
|
|
console.log('Dados: ', values);
|
|
|
|
|
|
|
|
|
|
|
|
console.log('Dados API:', extractedData);
|
|
|
|
console.log('Dados API:', extractedData);
|
|
|
|
|
|
|
|
|
|
|
|
try {
|
|
|
|
/*try {
|
|
|
|
// Make a POST request using Axios
|
|
|
|
// Make a POST request using Axios
|
|
|
|
const response = await axios.post('https://dev-hgp-sgi.streamline.pt/api/entities', extractedData);
|
|
|
|
const response = await axios.post('https://dev-hgp-sgi.streamline.pt/api/entities', extractedData);
|
|
|
|
|
|
|
|
|
|
|
@ -155,7 +153,7 @@ function App() {
|
|
|
|
} catch (error) {
|
|
|
|
} catch (error) {
|
|
|
|
// Handle errors
|
|
|
|
// Handle errors
|
|
|
|
console.error('Error submitting data:', error);
|
|
|
|
console.error('Error submitting data:', error);
|
|
|
|
}
|
|
|
|
}*/
|
|
|
|
|
|
|
|
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
@ -183,8 +181,21 @@ function App() {
|
|
|
|
const [activeStep, setActiveStep] = React.useState(0);
|
|
|
|
const [activeStep, setActiveStep] = React.useState(0);
|
|
|
|
|
|
|
|
|
|
|
|
const handleNext = async () => {
|
|
|
|
const handleNext = async () => {
|
|
|
|
|
|
|
|
console.log(formik.values.tipoempresa);
|
|
|
|
try {
|
|
|
|
try {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (formik.values.tiporegisto == '0'){
|
|
|
|
|
|
|
|
await yup.object({
|
|
|
|
|
|
|
|
tipoempresa: yup.string().required("*Por favor insira um tipo de empresa válido"),
|
|
|
|
|
|
|
|
}).validateAt('tipoempresa', formik.values, { abortEarly: false });
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (formik.values.tipoempresa >= '0'){
|
|
|
|
|
|
|
|
await yup.object({
|
|
|
|
|
|
|
|
empresa: yup.string().required("*Por favor insira nome da empresa válido"),
|
|
|
|
|
|
|
|
}).validateAt('empresa', formik.values, { abortEarly: false });
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if (activeStep === 0) {
|
|
|
|
if (activeStep === 0) {
|
|
|
|
await schemaStep1.validate(formik.values, { abortEarly: false });
|
|
|
|
await schemaStep1.validate(formik.values, { abortEarly: false });
|
|
|
|
} else if (activeStep === 1) {
|
|
|
|
} else if (activeStep === 1) {
|
|
|
@ -193,8 +204,16 @@ function App() {
|
|
|
|
await schemaStep3.validate(formik.values, { abortEarly: false });
|
|
|
|
await schemaStep3.validate(formik.values, { abortEarly: false });
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
setActiveStep(activeStep + 1);
|
|
|
|
if (formik.values.tiporegisto == '1'){
|
|
|
|
setValidationErrors([]);
|
|
|
|
formik.values.nomePessoaContacto = formik.values.representante;
|
|
|
|
|
|
|
|
formik.values.telemovelPC = formik.values.telemovelDP;
|
|
|
|
|
|
|
|
formik.values.emailPessoaContacto = formik.values.emailDP;
|
|
|
|
|
|
|
|
setActiveStep(activeStep + 2);
|
|
|
|
|
|
|
|
setValidationErrors([]);
|
|
|
|
|
|
|
|
}else{
|
|
|
|
|
|
|
|
setActiveStep(activeStep + 1);
|
|
|
|
|
|
|
|
setValidationErrors([]);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
} catch (error) {
|
|
|
|
} catch (error) {
|
|
|
|
const errors = (error as yup.ValidationError).errors;
|
|
|
|
const errors = (error as yup.ValidationError).errors;
|
|
|
@ -204,9 +223,13 @@ function App() {
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
const handleBack = () => {
|
|
|
|
const handleBack = () => {
|
|
|
|
|
|
|
|
if (formik.values.tiporegisto == '1'){
|
|
|
|
setActiveStep(activeStep - 1);
|
|
|
|
setActiveStep(activeStep - 2);
|
|
|
|
|
|
|
|
setValidationErrors([]);
|
|
|
|
|
|
|
|
}else{
|
|
|
|
|
|
|
|
setActiveStep(activeStep - 1);
|
|
|
|
|
|
|
|
setValidationErrors([]);
|
|
|
|
|
|
|
|
}
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
return (
|
|
|
|
return (
|
|
|
|