import { useState, useEffect } from "react"; import { faAngleDoubleLeft, faAngleDoubleRight, faChevronLeft, faChevronRight, } from "@fortawesome/free-solid-svg-icons"; import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; import fetchVoiceActorInfo from "@/src/utils/getVoiceActor.utils"; import VoiceActorlistLoader from "../Loader/VoiceActorlist.loader"; import { useNavigate } from "react-router-dom"; import Error from "../error/Error"; import { cleanupScrollbar, toggleScrollbar, } from "@/src/helper/toggleScrollbar"; import PageSlider from "../pageslider/PageSlider"; function VoiceactorList({ id, isOpen, onClose }) { const [loading, setLoading] = useState(true); const [page, setPage] = useState(1); const [totalPages, setTotalPages] = useState(1); const [error, setError] = useState(null); const [VoiceactorList, setVoiceactorList] = useState([]); const navigate = useNavigate(); useEffect(() => { toggleScrollbar(isOpen); return () => { cleanupScrollbar(); }; }, [isOpen]); useEffect(() => { const fetchCategoryInfo = async () => { setLoading(true); try { const data = await fetchVoiceActorInfo(id, page); setVoiceactorList(data.data); setTotalPages(data.totalPages); setLoading(false); } catch (err) { setError(err); console.error("Error fetching category info:", err); } }; fetchCategoryInfo(); }, [page]); if (error) { navigate("/error-page"); return ; } if (!VoiceactorList) { navigate("/404-not-found-page"); return null; } return (
{!loading && (

Characters & Voice Actors

)} {loading ? ( ) : (
{VoiceactorList.map((item, index) => (
{ e.target.src = "https://i.postimg.cc/HnHKvHpz/no-avatar.jpg"; }} />
{item.character.name && (

{item.character.name}

)} {item.character.cast && (

{item.character.cast}

)}
{item.voiceActors && item.voiceActors.length > 0 && (item.voiceActors.length > 1 ? (
{item.voiceActors.map((data, index) => ( { e.target.src = "https://i.postimg.cc/HnHKvHpz/no-avatar.jpg"; }} /> ))}
) : (
{item?.voiceActors[0]?.name && (

{item.voiceActors[0].name}

)} { e.target.src = "https://i.postimg.cc/HnHKvHpz/no-avatar.jpg"; }} />
))}
))}
)}
); } export default VoiceactorList;