import { IonButton, IonCard, IonCardContent, IonCheckbox, IonContent, IonFab, IonFabButton, IonFooter, IonHeader, IonIcon, IonItem, IonLabel, IonModal, IonPage, IonRadio, IonRadioGroup, IonSlide, IonSlides, IonToast, IonToolbar, } from "@ionic/react"; import { arrowForwardOutline, chevronBackOutline, closeOutline, } from "ionicons/icons"; import { useEffect, useState } from "react"; import { useHistory, useLocation } from "react-router"; import { createUserSearch } from "../../services/api/users"; import { searchItineraries } from "../../services/functions/itinerariesService"; import { closeToast } from "../../services/utils"; import "./Transportes.css"; interface InfoBusca { addressFrom: any; addressTo: any; coordinatesFrom: any; coordinatesTo: any; } const Transportes: React.FC = () => { const history = useHistory(); const location = useLocation(); const props = location.state as InfoBusca; const [itinerarios, setItinerarios] = useState([]); const [showModalFilters, setShowModalFilters] = useState(false); const [showToast, setShowToast] = useState(false); const [messageToast, setMessageToast] = useState(""); const [toastColor, setToastColor] = useState("success"); useEffect(() => { if (props) { buscaItinerarios(); } }, [props]); async function buscaItinerarios() { let data = (await searchItineraries(props)) as any; setItinerarios(data); } function criaAlerta() { createUserSearch( props.coordinatesFrom.lat, props.coordinatesFrom.lng, props.addressTo.label ) .then(() => { setMessageToast("Alerta criado com sucesso!"); setShowToast(true); }) .catch((err: any) => { setMessageToast("Não foi possível criar o alerta!"); setToastColor("danger"); setShowToast(true); }); } return ( {/* TODO, componentizar Header */}
{/* */}
{props.addressFrom.label} {props.addressTo.label} Hoje
{itinerarios && itinerarios.length > 0 ? (
Mais barata
Seu João
Melhor avaliação
Seu Zé
) : (

Não foi encontrado nenhum transporte que atenda essa rota.

)} {itinerarios && itinerarios.map((record: any, index: any) => { return (

Motorista: {record.motorista}

Avaliação: {record.avaliacao}
Valor: {record.valor}
Lugares disponíveis: {record.lugares}
); })}
criaAlerta()}>Criar Alerta
setShowModalFilters(true)} vertical="bottom" horizontal="center" slot="fixed" > Filtros
setShowModalFilters(false)} />

Limpar

Filtrar

Ordernar por

Menor preço Avaliação Lugares disponíveis

Preferências

Vaga avulsa Ar condicionado
setShowModalFilters(false)} > Aplicar Filtros
closeToast(setShowToast)} message={messageToast} duration={2500} />
); }; export default Transportes;