import React, { useState, useEffect } from "react"; import useFetch from "../hooks/useFetch"; import { Pagination } from "@mui/material"; import Card from "../components/Card"; const HomePage = () => { const url = import.meta.env.VITE_BASE_URL; const [inputValue, setInputValue] = useState(""); const [searchValue, setSearchValue] = useState(""); const [page, setPage] = useState(1); const [favouriteList, setFavouriteList] = useState( JSON.parse(window.localStorage.getItem("favouriteMovies")) ?? [] ); const [showFavourite, setShowFavourite] = useState(false); useEffect(() => { window.localStorage.setItem("favouriteMovies", JSON.stringify(favouriteList)) console.log(favouriteList); }, [favouriteList]); const { data, loading, error } = useFetch( url + "&s=" + searchValue + "&page=" + page ); const handlePageChange = (e) => { setPage(e?.target?.textContent); }; const handleSearch = (event) => { event.preventDefault(); setSearchValue(inputValue); }; return (
setInputValue(event?.target?.value) } className="p-1 text-quadnary bg-secondary focus:bg-secondary rounded outline-none border border-ternary" />
setShowFavourite((prev) => !prev)} />
{(showFavourite && (
{favouriteList?.map((movie) => ( ))}
)) || (data?.Search?.length > 0 && (
{loading && ( )}
{data?.Search?.map((movie) => ( ))}
))}
); }; export default HomePage; function SearchBar({ inputValue, event, setInputValue, target, value, handleSearch, setShowFavourite, prev, }) { return (
setInputValue(event?.target?.value)} className="p-1 text-quadnary bg-secondary focus:bg-secondary rounded outline-none border border-ternary" />
setShowFavourite((prev) => !prev)} />
); }