import { useEffect, useState } from "react"; import { useSearchParams, Link } from "react-router-dom"; import getCategoryInfo from "@/src/utils/getCategoryInfo.utils"; import CategoryCard from "@/src/components/categorycard/CategoryCard"; import Loader from "@/src/components/Loader/Loader"; import Error from "@/src/components/error/Error"; import PageSlider from "@/src/components/pageslider/PageSlider"; function AtoZ({ path }) { const [searchParams, setSearchParams] = useSearchParams(); const [categoryInfo, setCategoryInfo] = useState(null); const [loading, setLoading] = useState(true); const [error, setError] = useState(null); const [totalPages, setTotalPages] = useState(0); const page = parseInt(searchParams.get("page")) || 1; const currentLetter = path.split("/").pop() || ""; useEffect(() => { const fetchAtoZInfo = async () => { setLoading(true); try { const data = await getCategoryInfo(path, page); setCategoryInfo(data.data); setTotalPages(data.totalPages); setLoading(false); } catch (err) { setError(err); setLoading(false); console.error("Error fetching category info:", err); } }; fetchAtoZInfo(); window.scrollTo(0, 0); }, [path, page]); if (loading) return ; if (error) { return ; } if (!categoryInfo) { return null; } const handlePageChange = (newPage) => { setSearchParams({ page: newPage }); }; return (

Sort By Letters

{[ "All", "#", "0-9", ...Array.from({ length: 26 }, (_, i) => String.fromCharCode(65 + i) ), ].map((item, index) => { const linkPath = item.toLowerCase() === "all" ? "" : item === "#" ? "other" : item; const isActive = (currentLetter === "az-list" && item.toLowerCase() === "all") || (currentLetter === "other" && item === "#") || currentLetter === item.toLowerCase(); return ( {item} ); })}
{categoryInfo && categoryInfo.length > 0 && ( )}
); } export default AtoZ;