import { client } from "@/util/api"; import { useAuth } from "@/util/auth"; import { FlightConciseSchema } from "@/util/types"; import { NavLink, Text, Button, ScrollArea, Stack, Loader, Center, } from "@mantine/core"; import { Link, useLocation, useNavigate } from "@remix-run/react"; import { IconPlus } from "@tabler/icons-react"; import { useQuery } from "@tanstack/react-query"; import { useEffect } from "react"; export function FlightsList() { // const flights = useQuery({ // queryKey: ["flights-list"], // queryFn: () => client.get(`/flights`).then((res) => res.data), // }); const location = useLocation(); const page = location.pathname.split("/")[3]; const flights = useQuery({ queryKey: ["flights-list"], queryFn: async () => await client.get(`/flights`).then((res) => res.data), retry: (failureCount, error) => { return !error || error.response?.status !== 401; }, }); const navigate = useNavigate(); const { clearUser } = useAuth(); useEffect(() => { if (flights.isError && flights.error.response.status === 401) { clearUser(); navigate("/login"); } }, [flights]); return ( {flights.data ? ( flights.data.map((flight: FlightConciseSchema, index: number) => ( )) ) : flights.isLoading ? (
) : ( No Flights )}
); } export function MobileFlightsList() { const flights = useQuery({ queryKey: ["flights-list"], queryFn: () => client.get(`/flights`).then((res) => res.data), }); const location = useLocation(); const page = location.pathname.split("/")[3]; const navigate = useNavigate(); return ( {flights.data ? ( flights.data.map((flight: FlightConciseSchema, index: number) => ( )) ) : flights.isLoading ? (
) : ( No Flights )}
); } export default { FlightsList, MobileFlightsList };