import { getTranslations, setRequestLocale } from 'next-intl/server' import { redirect } from '@/i18n/navigation' import { getSession } from '@/lib/session' import { getGameAccounts } from '@/lib/auth' import { wowAccountLabel } from '@/lib/bnet' import { PageShell } from '@/components/PageShell' import { SelectAccountForm } from './SelectAccountForm' export const dynamic = 'force-dynamic' export default async function SelectAccountPage({ params }: { params: Promise<{ locale: string }> }) { const { locale } = await params setRequestLocale(locale) const t = await getTranslations('SelectAccount') const session = await getSession() if (!session.bnetId) redirect({ href: '/login', locale }) // Etiqueta visible «15#1» → «WOW1» (mismo criterio que my-account/cabecera). const games = (await getGameAccounts(session.bnetId!)).map((g) => ({ ...g, label: wowAccountLabel(g.username) })) // Autoseleccionar si solo hay una if (games.length === 1) { // La selección real la hace el cliente/route; aquí mostramos el formulario igual, // pero con una sola opción es un clic. (La auto-selección en login ya cubre el caso común.) } return (
{session.bnetEmail && (

{t('loggedInAs')} {session.bnetEmail}

)} {games.length > 0 ? ( <>

{t('choose')}


) : (

{t('noAccounts')}

)}
) }