import { useParams, useLocation } from "react-router-dom"; import { useEffect, useState } from "react"; import { ResultsApi, Search } from "@/types/types"; import Loading from "@/components/Loading"; import NoResults from "@/components/NoResults"; import SearchResults from "@/components/SearchResults"; import classes from "./resultspage.module.css"; type Results = ResultsApi | undefined; const ResultsPage = () => { const APIADDRESS = import.meta.env.VITE_APIADDRESS; const APIKEY = import.meta.env.VITE_APIKEY; //Data for API Call and Result const { search, page } = useParams(); const [results, setResults] = useState(); const location = useLocation(); //Handlers for Movie Modal Opening and Closing const [open, setOpen] = useState(false); const [id, setId] = useState(""); const [movieSelected, setMovieSelected] = useState(); const handleOpen = (ID: string | undefined, movie: Search) => { setOpen(true); setId(ID); setMovieSelected(movie); }; const handleClose = () => setOpen(false); async function handleGetResults() { let endpoint: string = ""; if (page === "0" || page === undefined) { //default is 1 anyway but just in case someone wants to change parameters endpoint = `${APIADDRESS}?s=${search}&apikey=${APIKEY}`; } else { endpoint = `${APIADDRESS}?s=${search}&page=${page}&apikey=${APIKEY}`; } const reply = await fetch(`${endpoint}`); const data = await reply.json(); setResults(data); } useEffect(() => { handleGetResults(); }, [location]); return (
{results === undefined ? ( ) : results.Response === "False" ? ( ) : ( )}
); }; export default ResultsPage;