Ajuste a nivel de visual e mais alguns updates nas validações do formulário
main
Hugo Oliveira 1 year ago
parent f49210ca32
commit 7a1b3ece79

@ -54,16 +54,6 @@ const initialValues: dados = {
} }
// ,
// Menos importante - validação Codigo-Postal e Cidade
/* Updates: Validação de telemovel e definiçaõ default de portugal,
Variavel "nomecartao1" é agora um array,
Definido um link na "Política de Privacidade",
Acrescimo dos país através da API com Portugal a valor default,
*/
function App() { function App() {
const steps = ["Dados Pessoais", "Pessoa de Contacto", "Cartões"]; const steps = ["Dados Pessoais", "Pessoa de Contacto", "Cartões"];
@ -73,21 +63,21 @@ function App() {
const schemaStep1 = yup.object({ const schemaStep1 = yup.object({
empresa: yup.string().required("*Por favor insira um nome válido"), empresa: yup.string().required("*Por favor insira um nome válido"),
nif: yup.number().integer(), 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"), representante: yup.string().required("*Por favor insira um representante válido"),
telemovelDP: yup.string() telemovelDP: yup.string()
.required("*Por favor insira um número de telemóvel válido") .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) => {
return matchIsValidTel(value); return matchIsValidTel(value);
}), }),
emailDP: yup.string() emailDP: yup.string()
.email("*Por favor insira um email válido") .email("*Por favor insira um email válido")
.required("*Por favor insira um email válido"), .required("*Por favor insira um email válido"),
morada: yup.string(), morada: yup.string(),
andar: yup.number().integer(), andar: yup.string().matches(/^[0-9]+$/, "*Por favor insira um Andar válido"),
cidade: yup.string(), cidade: yup.string(),
pais: yup.string(), pais: yup.string(),
codigoPostal: yup.number().integer() codigoPostal: yup.string()
}); });

@ -33,15 +33,14 @@ export const DadosPessoais = ( {formik}: any ) => {
if (!isValid) { if (!isValid) {
formik.setFieldError('telemovelDP', 'Por favor insira um número de telemóvel válido'); formik.setFieldError('telemovelDP', 'Por favor insira um número de telemóvel válido');
} else { } else {
formik.setFieldError('telemovelDP', ''); // Clear error if valid formik.setFieldError('telemovelDP', '');
} }
}; };
const [countries, setCountries] = useState<Paises[]>([]); const [countries, setCountries] = useState<Paises[]>([]);
useEffect(() => { useEffect(() => {
// Fetch countries data from the API axios.get<Paises[]>('https://restcountries.com/v3.1/all?fields=name,flags')
axios.get<Paises[]>('https://restcountries.com/v3.1/all?fields=name,flags,postalCode')
.then(response => { .then(response => {
const sortedCountries = response.data.sort((a, b) => a.name.common.localeCompare(b.name.common)); const sortedCountries = response.data.sort((a, b) => a.name.common.localeCompare(b.name.common));
setCountries(sortedCountries); setCountries(sortedCountries);
@ -74,7 +73,7 @@ export const DadosPessoais = ( {formik}: any ) => {
<Grid item xs={12} sm={6}> <Grid item xs={12} sm={6}>
<TextField <TextField
{...formik.getFieldProps('nif')} {...formik.getFieldProps('nif')}
type='number' type='text'
id="nif" id="nif"
name="nif" name="nif"
label="NIF/NIPC" label="NIF/NIPC"
@ -139,7 +138,7 @@ export const DadosPessoais = ( {formik}: any ) => {
<Grid item xs={12} sm={6}> <Grid item xs={12} sm={6}>
<TextField <TextField
{...formik.getFieldProps('andar')} {...formik.getFieldProps('andar')}
type='number' type='text'
id="andar" id="andar"
name="andar" name="andar"
label="Andar/Nº/Bloco" label="Andar/Nº/Bloco"
@ -170,7 +169,7 @@ export const DadosPessoais = ( {formik}: any ) => {
))} ))}
</Select> </Select>
</Grid> </Grid>
<Grid item xs={12} sm={4}> <Grid item xs={12} sm={4} sx={{ mt: 0.9 }}>
<TextField <TextField
{...formik.getFieldProps('cidade')} {...formik.getFieldProps('cidade')}
type='text' type='text'
@ -181,15 +180,14 @@ export const DadosPessoais = ( {formik}: any ) => {
variant="standard" variant="standard"
/> />
</Grid> </Grid>
<Grid item xs={12} sm={4}> <Grid item xs={12} sm={4} sx={{ mt: 0.9 }}>
<TextField <TextField
{...formik.getFieldProps('codigoPostal')} {...formik.getFieldProps('codigoPostal')}
type='number' type='text'
id="codigoPostal" id="codigoPostal"
name="codigoPostal" name="codigoPostal"
label="Código Postal" label="Código Postal"
fullWidth fullWidth
autoComplete="shipping country"
variant="standard" variant="standard"
/> />
</Grid> </Grid>

@ -12,7 +12,7 @@ export const PessoaContacto = ( {formik}: any ) => {
if (!isValid) { if (!isValid) {
formik.setFieldError('telemovelPC', 'Por favor insira um número de telemóvel válido'); formik.setFieldError('telemovelPC', 'Por favor insira um número de telemóvel válido');
} else { } else {
formik.setFieldError('telemovelPC', ''); // Clear error if valid formik.setFieldError('telemovelPC', '');
} }
}; };

Loading…
Cancel
Save