import { getTranslations, setRequestLocale } from 'next-intl/server' import { redirect, Link } from '@/i18n/navigation' import { getSession } from '@/lib/session' import { isAdmin } from '@/lib/admin' import { PageShell } from '@/components/PageShell' export const dynamic = 'force-dynamic' export default async function AdminPage({ params }: { params: Promise<{ locale: string }> }) { const { locale } = await params setRequestLocale(locale) const t = await getTranslations('Admin') const session = await getSession() if (!session.bnetId) redirect({ href: '/login', locale }) if (!(await isAdmin(session))) redirect({ href: '/', locale }) const items: { href: string; label: string; icon: string }[] = [ { href: '/admin/news', label: t('manageNews'), icon: '📰' }, { href: '/admin/prices', label: t('managePrices'), icon: '💲' }, { href: '/admin/votes', label: t('manageVotes'), icon: '🗳️' }, { href: '/admin/gold', label: t('manageGold'), icon: '🪙' }, { href: '/admin/users', label: t('manageUsers'), icon: '👤' }, { href: '/admin/recruit', label: t('manageRecruit'), icon: '🎁' }, { href: '/admin/forum', label: t('manageForum'), icon: '💬' }, { href: '/admin/promo', label: t('managePromo'), icon: '🎟️' }, ] const rows: typeof items[] = [] for (let i = 0; i < items.length; i += 2) rows.push(items.slice(i, i + 2)) return (
{rows.map((pair, i) => ( {pair.map((it) => ( ))} {pair.length === 1 && ))}
{it.icon} {it.label}
}
) }