"use client"; import { useQuery } from "@tanstack/react-query"; import { useParams } from "next/navigation"; import { Loader2 } from "lucide-react"; import { CertificateCard } from "@/components/certificate-card"; import { NotFoundState, notFoundSentence } from "@/components/not-found-state"; import { http, toUserError } from "@/lib/api"; import { useAuth } from "@/lib/auth-store"; import type { Certificate } from "@/lib/types"; type PublicCertResponse = { certificate: { publicId: string; fullName: string; issuedAt: string }; course: string; }; export default function CertificatePage() { const params = useParams<{ id: string }>(); const publicId = params?.id ?? ""; const authUser = useAuth((s) => s.user); const { data, isLoading, error } = useQuery({ queryKey: ["certificate", publicId], queryFn: () => http.get(`/api/certificates/${publicId}`), enabled: !!publicId, meta: { silentError: true }, }); const { data: mine } = useQuery({ queryKey: ["me", "certificate"], queryFn: () => http.get<{ certificate: Certificate | null }>("/api/me/certificate"), enabled: !!authUser, }); const isOwner = !!authUser && mine?.certificate?.publicId === publicId; if (isLoading) { return (
); } if (error || !data?.certificate) { return ( ); } const cert = data.certificate; return ( ); }