"use client"; import Link from "next/link"; import { useRouter } from "next/navigation"; import useSWR from "swr"; import { Prisma } from "@prisma/client"; import { useSession } from "next-auth/react"; import { Icon } from "@iconify/react"; import LikeButton from "@/components/like-button"; import DeleteMiiButton from "../delete-mii-button"; import Carousel from "@/components/carousel"; interface Props { miis: Prisma.MiiGetPayload<{ include: { user: { select: { id: true; name: true } }; _count: { select: { likedBy: true } } } }>[]; userId?: number; parentPage?: string; } const fetcher = (url: string) => fetch(url).then((res) => res.json()); export default function MiiGrid({ miis, userId, parentPage }: Props) { const session = useSession(); const router = useRouter(); // const ids = miis.map((m) => m.id).join(","); // const { data } = useSWR(session.data?.user && miis.length > 0 ? `/api/mii/has-liked?ids=${ids}` : null, fetcher, { // revalidateOnFocus: false, // revalidateOnReconnect: false, // }); const likedIds = new Set([0]); return (
{miis.map((mii) => (
{mii.in_queue && (
In Queue
)} `/mii/${mii.id}/image?type=image${index}`), ]} />
{mii.name}
{mii.platform === "SWITCH" ? ( ) : ( )}
{mii.tags.map((tag) => ( {tag} ))}
{!userId && ( @{mii.user?.name} )} {userId && Number(session.data?.user?.id) == userId && (
)} {/* Admin Controls */} {parentPage === "admin" && (
{mii.createdAt.toLocaleString("en-GB", { timeZone: "UTC" })}
)}
))}
); }