"use client"; import { useEffect, useState } from "react"; import PublicationKlFilter from "./publication-filter"; import { Button } from "@/components/ui/button"; import { mediaWishlist } from "@/service/landing/landing"; const itemsPerPage = 9; type PublicationCardGridProps = { selectedCategory: string; title?: string; refresh?: boolean; categoryFilter?: string[]; formatFilter?: string[]; isInstitute?: boolean; instituteId?: string; sortBy?: string; }; export default function ForYouCardGrid({ selectedCategory, title, refresh, isInstitute = false, instituteId = "", }: PublicationCardGridProps) { const [currentPage, setCurrentPage] = useState(0); const [contentImage, setContentImage] = useState([]); const [totalPages, setTotalPages] = useState(1); const [categoryFilter] = useState([]); const [formatFilter] = useState([]); const [sortBy] = useState(); useEffect(() => { getDataImage(); }, [currentPage, selectedCategory, title, refresh]); async function getDataImage() { const filter = categoryFilter?.length > 0 ? categoryFilter?.sort().join(",") : selectedCategory || ""; const name = title ?? ""; const format = formatFilter?.join(",") ?? ""; const response = await mediaWishlist( "1", isInstitute ? instituteId : "", name, filter, "12", currentPage, sortBy, format ); setTotalPages(response?.data?.data?.totalPages || 1); setContentImage(response?.data?.data?.content || []); } const goToPage = (page: number) => { setCurrentPage(page); }; return (
{/* Grid Card */}
{contentImage.length === 0 ? (
Tidak ada konten ditemukan.
) : ( contentImage.map((item: any, idx: number) => ( )) )}
{/* Pagination */}
{Array.from({ length: totalPages }, (_, i) => ( ))}
); }