"use client"; import { useI18n } from "@/components/I18nProvider"; import Image from "next/image"; import Link from "next/link"; import { ArrowUpRight, MapPin } from "lucide-react"; import { Username } from "./Username"; export type CardMap = { id: string; name: string; description: string; source: string; panorama_count: number; image?: string | null; credit?: string; creditGlow?: boolean; creditAppearance?: import("@/shared/profile-appearance").ProfileAppearance; server?: { name: string } | undefined; bounds: { minX: number; minZ: number; maxX: number; maxZ: number }; }; export function MapCard({ map, index = 0, minecraftPaper = false, loading, }: { map: CardMap; index?: number; minecraftPaper?: boolean; loading?: "eager" | "lazy"; }) { const { t } = useI18n(); return (
{t("Terrain
{map.source === "plugin" ? t("SERVER EXPORT") : t("PLAYER CAPTURE")} 0{index + 1}
{map.server?.name || t("Overworld")}

{map.name}

{map.description}

{map.credit && (

{t("By")}{" "}

)}
{map.panorama_count} {t("locations")} {map.bounds.maxX - map.bounds.minX} ×{" "} {map.bounds.maxZ - map.bounds.minZ} {t("blocks")}
); }