Refatorando variáveis da página CadastroVan

This commit is contained in:
Matheus Albino Brunhara
2022-05-28 13:35:35 -05:00
parent 0a9ae2f359
commit 40696db5b5

View File

@@ -11,62 +11,71 @@ import {
IonHeader, IonHeader,
IonPage, IonPage,
IonToolbar, IonToolbar,
IonTitle,
IonText, IonText,
IonRadioGroup, IonRadioGroup,
IonRadio IonRadio
} from "@ionic/react"; } from "@ionic/react";
import React, { useState } from "react"; import React, { useReducer, useState } from "react";
import { ApiClient } from "../services/api-client.service"; import { ApiClient } from "../services/api-client.service";
import { arrowBack } from "ionicons/icons";
import "./CadastroVan.css"; import "./CadastroVan.css";
const CadastroVan: React.FC = () => { const CadastroVan: React.FC = () => {
const [showToast, setShowToast] = useState<boolean>(false); const [showToast, setShowToast] = useState<boolean>(false);
const [toastMessage, setToastMessage] = useState<string>(""); const [toastMessage, setToastMessage] = useState<string>("");
const [carPlate, setCarPlate] = useState<string>(""); const [inputValues, setInputValues] = useReducer(
const [carBrand, setCarBrand] = useState<string>(""); (state: any, newState: any) => ({ ...state, ...newState }),
const [carModel, setCarModel] = useState<string>(""); {
const [maxPassengers, setMaxPassengers] = useState<number>(1); carPlate: '',
const [isRent, setIsRent] = useState<boolean>(false); carBrand: '',
const [carRentalName, setCarRentalName] = useState<string>(""); carModel: '',
const [postalCode, setPostalCode] = useState<string>(""); maxPassengers: 1,
const [street, setStreet] = useState<string>(""); isRent: false,
const [number, setNumber] = useState<string>(""); carRentalName: '',
const [complement, setComplement] = useState<string>(""); postalCode: '',
const [city, setCity] = useState<string>(""); street: '',
const [state, setState] = useState<string>(""); number: '',
complement: '',
city: '',
state: '',
}
);
const vanForm = { const vanForm = {
carPlate, carPlate: inputValues.carPlate,
carBrand, carBrand: inputValues.carBrand,
carModel, carModel: inputValues.carModel,
maxPassengers, maxPassengers: inputValues.maxPassengers,
isRent, isRent: inputValues.isRent,
carRentalName, carRentalName: inputValues.carRentalName,
carRentalAddress: { carRentalAddress: {
postalCode, postalCode: inputValues.postalCode,
street, street: inputValues.street,
number, number: inputValues.number,
complement, complement: inputValues.complement,
city, city: inputValues.city,
state state: inputValues.state,
} }
}; };
const clearRentalData = () => { const clearRentalData = () => {
setCarRentalName(""); setInputValues({
setPostalCode(""); carPlate: '',
setStreet(""); carBrand: '',
setNumber(""); carModel: '',
setComplement(""); maxPassengers: 1,
setCity(""); isRent: false,
setState(""); carRentalName: '',
postalCode: '',
street: '',
number: '',
complement: '',
city: '',
state: '',
})
}; };
const validateForm = (): boolean => { const validateForm = (): boolean => {
@@ -163,12 +172,9 @@ const CadastroVan: React.FC = () => {
return ( return (
<IonPage> <IonPage>
<IonHeader> <IonHeader>
<IonToolbar color='primary'> <IonToolbar>
<IonTitle>VanMos App v1.0</IonTitle>
<IonButtons slot='start'> <IonButtons slot='start'>
<IonBackButton icon={arrowBack} defaultHref='cadastro-van'> <IonBackButton defaultHref='/perfil' />
Return
</IonBackButton>
</IonButtons> </IonButtons>
</IonToolbar> </IonToolbar>
</IonHeader> </IonHeader>
@@ -183,7 +189,7 @@ const CadastroVan: React.FC = () => {
type='text' type='text'
clearInput clearInput
placeholder='Digite a Placa do Veículo' placeholder='Digite a Placa do Veículo'
onIonInput={(e: any) => setCarPlate(e.target.value)} onIonInput={(e: any) => setInputValues({ carPlate: e.target.value })}
/> />
</IonItem> </IonItem>
@@ -193,7 +199,7 @@ const CadastroVan: React.FC = () => {
type='text' type='text'
clearInput clearInput
placeholder='Digite a Marca do Veículo' placeholder='Digite a Marca do Veículo'
onIonInput={(e: any) => setCarBrand(e.target.value)} onIonInput={(e: any) => setInputValues({ carBrand: e.target.value })}
/> />
</IonItem> </IonItem>
@@ -203,7 +209,7 @@ const CadastroVan: React.FC = () => {
type='text' type='text'
clearInput clearInput
placeholder='Digite o Modelo do Veículo' placeholder='Digite o Modelo do Veículo'
onIonInput={(e: any) => setCarModel(e.target.value)} onIonInput={(e: any) => setInputValues({ carModel: e.target.value })}
/> />
</IonItem> </IonItem>
@@ -215,7 +221,7 @@ const CadastroVan: React.FC = () => {
type='text' type='text'
clearInput clearInput
placeholder='Digite o número máximo de passageiros' placeholder='Digite o número máximo de passageiros'
onIonInput={(e: any) => setMaxPassengers(e.target.value)} onIonInput={(e: any) => setInputValues({ maxPassengers: e.target.value })}
/> />
</IonItem> </IonItem>
@@ -227,7 +233,7 @@ const CadastroVan: React.FC = () => {
<div> <div>
<IonRadioGroup <IonRadioGroup
style={{ display: "flex", width: "100%" }} style={{ display: "flex", width: "100%" }}
onIonChange={(e: any) => setIsRent(e.target.value)} onIonChange={(e: any) => setInputValues({ isRent: e.target.value })}
> >
<IonItem lines='none' style={{ flexGrow: 2 }}> <IonItem lines='none' style={{ flexGrow: 2 }}>
<IonLabel position='fixed'>Sim</IonLabel> <IonLabel position='fixed'>Sim</IonLabel>
@@ -243,7 +249,7 @@ const CadastroVan: React.FC = () => {
</IonText> </IonText>
</IonItem> </IonItem>
{isRent && ( {inputValues.isRent && (
<div> <div>
<IonItem> <IonItem>
<IonLabel position='floating'>Nome do Locador *</IonLabel> <IonLabel position='floating'>Nome do Locador *</IonLabel>
@@ -251,7 +257,7 @@ const CadastroVan: React.FC = () => {
type='text' type='text'
clearInput clearInput
placeholder='Digite o nome do locador do veículo' placeholder='Digite o nome do locador do veículo'
onIonInput={(e: any) => setCarRentalName(e.target.value)} onIonInput={(e: any) => setInputValues({ carRentalName: e.target.value })}
/> />
</IonItem> </IonItem>
<IonText> <IonText>
@@ -266,7 +272,7 @@ const CadastroVan: React.FC = () => {
type='text' type='text'
clearInput clearInput
placeholder='Digite o endereço completo do locador do veículo' placeholder='Digite o endereço completo do locador do veículo'
onIonInput={(e: any) => setPostalCode(e.target.value)} onIonInput={(e: any) => setInputValues({ postalCode: e.target.value })}
/> />
</IonItem> </IonItem>
<IonItem> <IonItem>
@@ -275,7 +281,7 @@ const CadastroVan: React.FC = () => {
type='text' type='text'
clearInput clearInput
placeholder='Digite o nome da rua' placeholder='Digite o nome da rua'
onIonInput={(e: any) => setStreet(e.target.value)} onIonInput={(e: any) => setInputValues({ street: e.target.value })}
/> />
</IonItem> </IonItem>
@@ -285,7 +291,7 @@ const CadastroVan: React.FC = () => {
type='text' type='text'
clearInput clearInput
placeholder='Digite o número' placeholder='Digite o número'
onIonInput={(e: any) => setNumber(e.target.value)} onIonInput={(e: any) => setInputValues({ number: e.target.value })}
/> />
</IonItem> </IonItem>
@@ -295,7 +301,7 @@ const CadastroVan: React.FC = () => {
type='text' type='text'
clearInput clearInput
placeholder='Digite o endereço completo' placeholder='Digite o endereço completo'
onIonInput={(e: any) => setComplement(e.target.value)} onIonInput={(e: any) => setInputValues({ complement: e.target.value })}
/> />
</IonItem> </IonItem>
@@ -305,7 +311,7 @@ const CadastroVan: React.FC = () => {
type='text' type='text'
clearInput clearInput
placeholder='Digite a cidade' placeholder='Digite a cidade'
onIonInput={(e: any) => setCity(e.target.value)} onIonInput={(e: any) => setInputValues({ city: e.target.value })}
/> />
</IonItem> </IonItem>
@@ -315,7 +321,7 @@ const CadastroVan: React.FC = () => {
type='text' type='text'
clearInput clearInput
placeholder='Digite o estado' placeholder='Digite o estado'
onIonInput={(e: any) => setState(e.target.value)} onIonInput={(e: any) => setInputValues({ state: e.target.value })}
/> />
</IonItem> </IonItem>
</IonText> </IonText>