"use client"; import { useEffect, useState } from "react"; import PublicationKlFilter from "./publication-filter"; import { Button } from "@/components/ui/button"; import { getCookiesDecrypt } from "@/lib/utils"; import { getBookmarksByUserId, getBookmarksForUser } 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(1); const [contentImage, setContentImage] = useState([]); const [totalPages, setTotalPages] = useState(1); const [categoryFilter] = useState([]); const [formatFilter] = useState([]); const [sortBy] = useState("createdAt"); useEffect(() => { getDataBookmark(); }, [currentPage, selectedCategory, title, refresh]); async function getDataBookmark() { console.log("📡 Fetching bookmark list..."); try { const response = await getBookmarksForUser(1, 12, "desc", "createdAt"); console.log("✅ Bookmark response:", response); const bookmarks = response?.data?.data?.content || response?.data?.data || []; const totalPage = response?.data?.data?.totalPages || 1; setContentImage(bookmarks); setTotalPages(totalPage); } catch (error) { console.error("❌ Gagal memuat bookmark:", error); setContentImage([]); } } const goToPage = (page: number) => { setCurrentPage(page); }; return (
{/* Grid Card */}
{contentImage.length === 0 ? (
Tidak ada artikel tersimpan.
) : ( contentImage.map((item: any, idx: number) => { const article = item.article || item; // jaga-jaga kalau API return nested return ( c.title).join(", ") || article.tags || "-" } date={new Date(article.createdAt).toLocaleString("id-ID", { day: "2-digit", month: "short", year: "numeric", hour: "2-digit", minute: "2-digit", timeZoneName: "short", })} title={article.title} description={article.description || ""} /> ); }) )}
{/* Pagination */}
{Array.from({ length: totalPages }, (_, i) => ( ))}
); } // "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) => ( // // ))} //
//
// ); // }