import getSearchSuggestion from "@/src/utils/getSearchSuggestion.utils"; import { useEffect, useState } from "react"; import BouncingLoader from "../ui/bouncingloader/Bouncingloader"; import { FaChevronRight } from "react-icons/fa"; import { Link } from "react-router-dom"; function Suggestion({ keyword, className }) { const [suggestion, setSuggestion] = useState([]); const [loading, setLoading] = useState(false); const [error, setError] = useState(null); const [hasFetched, setHasFetched] = useState(false); useEffect(() => { const fetchSearchSuggestion = async () => { if (!keyword) return; setLoading(true); setHasFetched(false); try { const data = await getSearchSuggestion(keyword); setSuggestion(data); setHasFetched(true); } catch (err) { console.error("Error fetching search suggestion info:", err); setError(err); } finally { setLoading(false); } }; fetchSearchSuggestion(); }, [keyword]); return (
{loading ? ( ) : error && !suggestion ? (
Error loading suggestions
) : suggestion && hasFetched ? (
{suggestion.map((item, index) => ( { e.target.src = "https://i.postimg.cc/HnHKvHpz/no-avatar.jpg"; }} />
{item?.title && (

{item.title || "N/A"}

)} {item?.japanese_title && (

{item.japanese_title || "N/A"}

)} {(item?.releaseDate || item?.showType || item?.duration) && (

{item.releaseDate || "N/A"}

{item.showType || "N/A"}

{item.duration || "N/A"}

)}
))} {!loading && hasFetched && (

View all results

)}
) : hasFetched ? (

No results found!

) : null}
); } export default Suggestion;