From df4fe0ffefd445304f673d45ff50f77488b0c96a Mon Sep 17 00:00:00 2001 From: Matheus Albino Brunhara Date: Sat, 3 Sep 2022 16:20:57 -0300 Subject: [PATCH] Corrige diversos toasts --- src/pages/Cadastro/Cadastro.tsx | 3 +- .../CadastroCompletar/CadastroCompletar.tsx | 3 +- .../CadastroCompletar/CompletarDocumento.tsx | 3 +- .../CadastroCompletar/CompletarTelefone.tsx | 3 +- src/pages/CadastroVan.tsx | 3 +- src/pages/Home.tsx | 5 +- src/pages/Itinerario.tsx | 119 ++++++++++++++++++ src/pages/Login.tsx | 3 +- src/pages/MinhasVans.tsx | 3 +- src/pages/Perfil.tsx | 3 +- src/pages/PerfilEditar.tsx | 3 +- src/pages/Transportes/Transportes.tsx | 3 +- src/services/utils.ts | 5 + 13 files changed, 147 insertions(+), 12 deletions(-) create mode 100644 src/pages/Itinerario.tsx diff --git a/src/pages/Cadastro/Cadastro.tsx b/src/pages/Cadastro/Cadastro.tsx index 5c91087..feb513c 100644 --- a/src/pages/Cadastro/Cadastro.tsx +++ b/src/pages/Cadastro/Cadastro.tsx @@ -9,6 +9,7 @@ import * as UsersService from '../../services/api/users' import LocalStorage from '../../LocalStorage'; import { UserContext } from '../../App'; import { Color } from '@ionic/core'; +import { closeToast } from '../../services/utils'; const Cadastro: React.FC = () => { const history = useHistory(); @@ -216,7 +217,7 @@ const Cadastro: React.FC = () => { setShowToast(false)} + onDidDismiss={() => closeToast(setShowToast)} message={messageToast} duration={2500} /> diff --git a/src/pages/CadastroCompletar/CadastroCompletar.tsx b/src/pages/CadastroCompletar/CadastroCompletar.tsx index 9489c79..4840328 100644 --- a/src/pages/CadastroCompletar/CadastroCompletar.tsx +++ b/src/pages/CadastroCompletar/CadastroCompletar.tsx @@ -21,6 +21,7 @@ import { callOutline, documentTextOutline } from "ionicons/icons"; import '../Cadastro/Cadastro.css' import { Color } from "@ionic/core"; +import { closeToast } from "../../services/utils"; interface cardItem { icon: string; @@ -130,7 +131,7 @@ const CadastroCompletar: React.FC = () => { position="top" color={toastColor} isOpen={showToast} - onDidDismiss={() => setShowToast(false)} + onDidDismiss={() => closeToast(setShowToast)} message={toastMessage} duration={2500} /> diff --git a/src/pages/CadastroCompletar/CompletarDocumento.tsx b/src/pages/CadastroCompletar/CompletarDocumento.tsx index 5fc9a8c..892a259 100644 --- a/src/pages/CadastroCompletar/CompletarDocumento.tsx +++ b/src/pages/CadastroCompletar/CompletarDocumento.tsx @@ -28,6 +28,7 @@ import { saveOutline } from "ionicons/icons"; import * as usersRoutes from '../../services/api/users'; import validateCpf from '../../services/validateCpf' +import { closeToast } from "../../services/utils"; interface documentTypesInterface { label: string; @@ -206,7 +207,7 @@ const CompletarDocumento: React.FC = () => { position="top" color='danger' isOpen={showToast} - onDidDismiss={() => setShowToast(false)} + onDidDismiss={() => closeToast(setShowToast)} message={messageToast} duration={2500} /> diff --git a/src/pages/CadastroCompletar/CompletarTelefone.tsx b/src/pages/CadastroCompletar/CompletarTelefone.tsx index 31e4b29..353547d 100644 --- a/src/pages/CadastroCompletar/CompletarTelefone.tsx +++ b/src/pages/CadastroCompletar/CompletarTelefone.tsx @@ -25,6 +25,7 @@ import { saveOutline } from "ionicons/icons"; import * as usersRoutes from '../../services/api/users'; import { Color } from "@ionic/core"; +import { closeToast } from "../../services/utils"; interface documentTypesInterface { label: string; @@ -156,7 +157,7 @@ const CompletarTelefone: React.FC = () => { position="top" color={toastColor} isOpen={showToast} - onDidDismiss={() => setShowToast(false)} + onDidDismiss={() => closeToast(setShowToast)} message={messageToast} duration={2500} /> diff --git a/src/pages/CadastroVan.tsx b/src/pages/CadastroVan.tsx index 68c07f3..02e927c 100644 --- a/src/pages/CadastroVan.tsx +++ b/src/pages/CadastroVan.tsx @@ -29,6 +29,7 @@ import * as vansRoutes from '../services/api/vans'; import "./CadastroVan.css"; import { Color } from "@ionic/core"; +import { closeToast } from "../services/utils"; const CadastroVan: React.FC = () => { const history = useHistory(); @@ -364,7 +365,7 @@ const CadastroVan: React.FC = () => { position="top" color={toastColor} isOpen={showToast} - onDidDismiss={() => setShowToast(false)} + onDidDismiss={() => closeToast(setShowToast)} message={toastMessage} duration={2500} /> diff --git a/src/pages/Home.tsx b/src/pages/Home.tsx index 4915bd3..de9fd9e 100644 --- a/src/pages/Home.tsx +++ b/src/pages/Home.tsx @@ -6,6 +6,7 @@ import { useHistory, useLocation } from 'react-router'; import { UserContext } from '../App'; import * as sessionRoutes from '../services/api/session'; +import { closeToast } from '../services/utils'; interface LocationState { redirectData?: { @@ -59,7 +60,7 @@ const Home: React.FC = () => { } refreshUserToken() - }, []) + }, [location.state, user, history]) return ( @@ -68,7 +69,7 @@ const Home: React.FC = () => { position="top" color={toastColor} isOpen={showToast} - onDidDismiss={() => setShowToast(false)} + onDidDismiss={() => closeToast(setShowToast)} message={toastMessage} duration={2500} /> diff --git a/src/pages/Itinerario.tsx b/src/pages/Itinerario.tsx new file mode 100644 index 0000000..558a199 --- /dev/null +++ b/src/pages/Itinerario.tsx @@ -0,0 +1,119 @@ +import { IonBackButton, IonButtons, IonCard, IonCardContent, IonCardHeader, IonCardSubtitle, IonCardTitle, IonContent, IonHeader, IonIcon, IonItem, IonLabel, IonPage, IonTitle, IonToast, IonToolbar } from '@ionic/react'; +import { Color } from '@ionic/core'; +import { carOutline } from 'ionicons/icons'; +import { useContext, useEffect, useState } from 'react'; +import { useHistory, useLocation } from 'react-router'; + +import { UserContext } from '../App'; + +import * as vansRoutes from '../services/api/vans'; + +import sessionsService from '../services/functions/sessionsService' +import { closeToast } from '../services/utils'; + +interface VanInfo { + plate: string; + brand: string; + model: string; + seats_number: string; + document_status: boolean, + locator_name: string; + locator_address: string; + locator_complement: string; + locator_city: string; + locator_state: string; +} + +const Itinerario: React.FC = () => { + const history = useHistory(); + + const [showToast, setShowToast] = useState(false); + const [toastMessage, setToastMessage] = useState(''); + const [toastColor, setToastColor] = useState("primary"); + + const [userVans, setUserVans] = useState(); + + const redirectUserToLogin = () => { + history.push({ pathname: '/login' }); + } + + useEffect(() => { + const getUserVans = async () => { + let userId = '' + + const refreshSessionRes = await sessionsService.refreshSession() + + if (refreshSessionRes.error) { + redirectUserToLogin() + return + } + + if (refreshSessionRes.userId) { + userId = refreshSessionRes.userId + } + + vansRoutes.getByUserId(userId).then(response => { + if (response.status === 'error') { + setToastColor("danger") + setToastMessage(response.message); + setShowToast(true); + + return + } + + setUserVans(response.data) + }).catch((err) => { + setToastColor("danger") + setToastMessage(err); + setShowToast(true); + }) + } + + getUserVans() + }, []) + + return ( + + + + Minhas vans + + + + + + + + { userVans ? userVans.map((van, index) => { + return ( + + + {van.plate} + {van.brand} - {van.model} + + { van.locator_name ? + <> + {van.seats_number} assentos - Locador: {van.locator_name} + : + <> + {van.seats_number} assentos - Não é alugado + + } + + ) + }) : <>} + + closeToast(setShowToast)} + message={toastMessage} + duration={2500} + /> + + + ); +}; + +export default Itinerario; diff --git a/src/pages/Login.tsx b/src/pages/Login.tsx index da97644..8d29023 100644 --- a/src/pages/Login.tsx +++ b/src/pages/Login.tsx @@ -19,6 +19,7 @@ import * as sessionRoutes from '../services/api/session'; import LocalStorage from '../LocalStorage'; import { Action } from "../components/Action"; import { UserContext } from "../App"; +import { closeToast } from "../services/utils"; const Page: React.FC = () => { const [showToast, setShowToast] = useState(false); @@ -162,7 +163,7 @@ const Page: React.FC = () => { position="top" color='danger' isOpen={showToast} - onDidDismiss={() => setShowToast(false)} + onDidDismiss={() => closeToast(setShowToast)} message={messageToast} duration={2500} /> diff --git a/src/pages/MinhasVans.tsx b/src/pages/MinhasVans.tsx index d9129c5..792493a 100644 --- a/src/pages/MinhasVans.tsx +++ b/src/pages/MinhasVans.tsx @@ -9,6 +9,7 @@ import { UserContext } from '../App'; import * as vansRoutes from '../services/api/vans'; import sessionsService from '../services/functions/sessionsService' +import { closeToast } from '../services/utils'; interface VanInfo { plate: string; @@ -106,7 +107,7 @@ const MinhasVans: React.FC = () => { position="top" color={toastColor} isOpen={showToast} - onDidDismiss={() => setShowToast(false)} + onDidDismiss={() => closeToast(setShowToast)} message={toastMessage} duration={2500} /> diff --git a/src/pages/Perfil.tsx b/src/pages/Perfil.tsx index 3249a56..1c08e0a 100644 --- a/src/pages/Perfil.tsx +++ b/src/pages/Perfil.tsx @@ -40,6 +40,7 @@ import sessionsService from "../services/functions/sessionsService"; import usersService from "../services/functions/usersService"; import { UserContext } from "../App"; import { Color } from "@ionic/core"; +import { closeToast } from "../services/utils"; interface ScanNewProps { match: { @@ -393,7 +394,7 @@ const Perfil: React.FC = (props) => { position="top" color={toastColor} isOpen={showToast} - onDidDismiss={() => setShowToast(false)} + onDidDismiss={() => closeToast(setShowToast)} message={toastMessage} duration={2500} /> diff --git a/src/pages/PerfilEditar.tsx b/src/pages/PerfilEditar.tsx index 02ea2ce..131931d 100644 --- a/src/pages/PerfilEditar.tsx +++ b/src/pages/PerfilEditar.tsx @@ -29,6 +29,7 @@ import * as usersRoutes from '../services/api/users'; import './Cadastro/Cadastro.css' import { Color } from "@ionic/core"; +import { closeToast } from "../services/utils"; interface userData { name: string; @@ -190,7 +191,7 @@ const PerfilEditar: React.FC = () => { setShowToast(false)} + onDidDismiss={() => closeToast(setShowToast)} message={messageToast} duration={2500} /> diff --git a/src/pages/Transportes/Transportes.tsx b/src/pages/Transportes/Transportes.tsx index 82694f7..9b09f8e 100644 --- a/src/pages/Transportes/Transportes.tsx +++ b/src/pages/Transportes/Transportes.tsx @@ -48,6 +48,7 @@ import { useHistory, useLocation } from "react-router"; import itinerariesService from "../../services/functions/itinerariesService"; import { createUserSearch } from "../../services/api/users"; import "./Transportes.css"; +import { closeToast } from "../../services/utils"; interface InfoBusca { addressFrom: any; @@ -210,7 +211,7 @@ const Transportes: React.FC = () => { // cssClass={"toast-notification"} color={toastColor} isOpen={showToast} - onDidDismiss={() => setShowToast(false)} + onDidDismiss={() => closeToast(setShowToast)} message={messageToast} duration={2500} /> diff --git a/src/services/utils.ts b/src/services/utils.ts index 8827557..98050c1 100644 --- a/src/services/utils.ts +++ b/src/services/utils.ts @@ -4,4 +4,9 @@ export async function autoCompleteAddress(address:string) { const response = await instance.get(`https://api.geoapify.com/v1/geocode/autocomplete?text=${address}&apiKey=ee574aacff6f440a84378bbbf7e2f20d`); return response.data.features; +} + +export async function closeToast(setShowToast: React.Dispatch>) { + setShowToast(false) + window.history.replaceState({}, document.title) } \ No newline at end of file