"use client"; // Indicate that this file is a client component in Next.js import { useState, useEffect } from "react"; import { useRouter } from "next/navigation"; import { search } from "@/api/searchApi"; // Ensure the path is correct for your API import "./searchPage.css"; const SearchPage = () => { const [query, setQuery] = useState(""); const [results, setResults] = useState({ films: [], tv_series: [] }); const [loading, setLoading] = useState(false); const [error, setError] = useState(null); const [debouncedQuery, setDebouncedQuery] = useState(""); const router = useRouter(); // Use Next.js useRouter for navigation useEffect(() => { const handler = setTimeout(() => { if (debouncedQuery) { handleSearch(); } }, 200); // Delay of 200ms return () => { clearTimeout(handler); }; }, [debouncedQuery]); const handleSearch = async () => { setLoading(true); setError(null); try { const data = await search(debouncedQuery); setResults(data); } catch (err) { setError("Failed to fetch search results."); } finally { setLoading(false); } }; const handleChange = (e) => { setQuery(e.target.value); setDebouncedQuery(e.target.value); }; const handleItemClick = (path) => { router.push(path); // Use router.push for navigation }; return (