From 11b90f540673ae43d07dbd66ef1400b004fa5e03 Mon Sep 17 00:00:00 2001 From: Tejas Panchal Date: Sun, 10 Aug 2025 12:41:27 +0530 Subject: [PATCH] producer page --- src/components/categorycard/CategoryCard.jsx | 4 +- src/components/producer/Producer.jsx | 105 ++++++++++--------- 2 files changed, 58 insertions(+), 51 deletions(-) diff --git a/src/components/categorycard/CategoryCard.jsx b/src/components/categorycard/CategoryCard.jsx index d8005a0..65dadf3 100644 --- a/src/components/categorycard/CategoryCard.jsx +++ b/src/components/categorycard/CategoryCard.jsx @@ -176,7 +176,7 @@ const CategoryCard = React.memo( {language === "EN" ? item.title : item.japanese_title} @@ -269,7 +269,7 @@ const CategoryCard = React.memo( {language === "EN" ? item.title : item.japanese_title} diff --git a/src/components/producer/Producer.jsx b/src/components/producer/Producer.jsx index 90b7c10..f1ff8d9 100644 --- a/src/components/producer/Producer.jsx +++ b/src/components/producer/Producer.jsx @@ -1,14 +1,10 @@ import { useNavigate, useParams, useSearchParams } from "react-router-dom"; import Error from "../error/Error"; -import Topten from "../topten/Topten"; -import Genre from "../genres/Genre"; -import SidecardLoader from "../Loader/Sidecard.loader"; -import PageSlider from "../pageslider/PageSlider"; import CategoryCard from "../categorycard/CategoryCard"; import { useEffect, useState } from "react"; -import { useHomeInfo } from "@/src/context/HomeInfoContext"; import getProducer from "@/src/utils/getProducer.utils"; import Loader from "../Loader/Loader"; +import PageSlider from "../pageslider/PageSlider"; function Producer() { const { id } = useParams(); @@ -18,8 +14,8 @@ function Producer() { const [error, setError] = useState(null); const [totalPages, setTotalPages] = useState(0); const page = parseInt(searchParams.get("page")) || 1; - const { homeInfo, homeInfoLoading } = useHomeInfo(); const navigate = useNavigate(); + useEffect(() => { const fetchProducerInfo = async () => { setLoading(true); @@ -34,8 +30,9 @@ function Producer() { } }; fetchProducerInfo(); - window.scrollTo(0, 0); + window.scrollTo({ top: 0, behavior: 'smooth' }); }, [id, page]); + if (loading) return ; if (error) { navigate("/error-page"); @@ -45,58 +42,68 @@ function Producer() { navigate("/404-not-found-page"); return null; } + const handlePageChange = (newPage) => { setSearchParams({ page: newPage }); }; + const producerName = (id.charAt(0).toUpperCase() + id.slice(1)).split("-").join(" "); + return ( -
- {producerInfo ? ( -
- {page > totalPages ? ( -

- You came a long way, go back
- nothing is here +

+
+ {loading ? ( + + ) : page > totalPages ? ( +
+

+ {producerName} Anime +

+

+ You came a long way, go back
nothing is here

- ) : ( -
- {producerInfo && ( - - )} - + ) : producerInfo && producerInfo.length > 0 ? ( +
+

+ {producerName} Anime +

+ +
+
- )} -
- {homeInfoLoading ? ( - - ) : ( - <> - {homeInfo && homeInfo.topten && ( - - )} - {homeInfo?.genres && } - - )}
-
- ) : ( - - )} + ) : error ? ( +
+

+ {producerName} Anime +

+

+ Couldn't get results, please try again +

+
+ ) : ( +
+

+ {producerName} Anime +

+

+ No results found +

+
+ )} +
); } + export default Producer;