import Link from "next/link"; import { prisma } from "@/lib/db"; import { Button } from "@/components/ui/button"; import { AddonCard } from "@/components/public/AddonCard"; import { HeroBanner } from "@/components/public/HeroBanner"; import { GameGallery } from "@/components/public/GameGallery"; import { ShutdownBanner } from "@/components/public/ShutdownBanner"; import { T } from "@/components/public/T"; import { ArticleCard } from "@/components/public/ArticleCard"; import { getSiteSettings } from "@/lib/site-settings"; import { DEFAULT_WOW_VERSION } from "@/lib/wow-versions"; import { Sparkles, Shield, Zap } from "lucide-react"; export const dynamic = "force-dynamic"; export default async function HomePage() { const siteSettings = await getSiteSettings(); const wowVersion = DEFAULT_WOW_VERSION; const [featuredAddons, launcher, launcherDownloads, banners, galleryImages, latestArticles] = await Promise.all([ prisma.addon.findMany({ where: { published: true }, include: { releases: { where: { isLatest: true, wowVersion }, select: { version: true }, }, screenshots: { orderBy: { sortOrder: "asc" }, take: 1, select: { imageUrl: true }, }, }, orderBy: { totalDownloads: "desc" }, take: 6, }), prisma.software.findUnique({ where: { slug: "nanami-launcher" }, include: { versions: { where: { isLatest: true, wowVersion }, take: 1, }, }, }), prisma.softwareVersion.aggregate({ where: { software: { slug: "nanami-launcher" }, wowVersion }, _sum: { downloadCount: true }, }), prisma.bannerImage.findMany({ where: { enabled: true }, orderBy: { sortOrder: "asc" }, select: { imageUrl: true }, }), prisma.galleryImage.findMany({ where: { enabled: true }, orderBy: { sortOrder: "asc" }, select: { imageUrl: true, title: true, titleEn: true }, }), prisma.article.findMany({ where: { published: true }, orderBy: { createdAt: "desc" }, take: 3, }), ]); const launcherVersion = launcher?.versions[0]?.version ?? null; const totalDownloads = launcherDownloads._sum.downloadCount ?? 0; return ( <> {siteSettings.shutdownBannerEnabled && siteSettings.shutdownAt && ( )} {/* Features */}

{/* Latest Articles */} {latestArticles.length > 0 && (

{latestArticles.map((article) => ( ))}
)} {/* Featured Addons */} {featuredAddons.length > 0 && (

{featuredAddons.map((addon) => ( ))}
)} ); }