web-next: selector de cuenta de juego (WOW1/WOW2…) en /account
Si la Battle.net tiene más de una cuenta de juego, /account muestra un desplegable «Cargar datos de la cuenta» (WOW1, WOW2…). Al cambiar, fija la cuenta activa en la sesión vía /api/auth/select-account y refresca → toda la página (datos, personajes, servicios, compras) opera sobre la cuenta elegida (la sesión.accountId manda). Con una sola cuenta no aparece (como hasta ahora). components/GameAccountSwitcher.tsx (client) + getGameAccounts en la page. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -2,9 +2,11 @@ import { getTranslations, setRequestLocale } from 'next-intl/server'
|
||||
import { redirect, Link } from '@/i18n/navigation'
|
||||
import { getSession } from '@/lib/session'
|
||||
import { getAccountDashboard, getAccountRank } from '@/lib/account'
|
||||
import { getGameAccounts } from '@/lib/auth'
|
||||
import { isAdmin } from '@/lib/admin'
|
||||
import { PageShell } from '@/components/PageShell'
|
||||
import { AccountTools } from '@/components/AccountTools'
|
||||
import { GameAccountSwitcher } from '@/components/GameAccountSwitcher'
|
||||
|
||||
export const dynamic = 'force-dynamic'
|
||||
|
||||
@@ -39,9 +41,16 @@ export default async function AccountPage({ params }: { params: Promise<{ locale
|
||||
const data = await getAccountDashboard(session)
|
||||
const admin = await isAdmin(session)
|
||||
const rank = getAccountRank(data.dp)
|
||||
// Cuentas de juego de la Battle.net (para el selector si hay más de una).
|
||||
const games = await getGameAccounts(session.bnetId ?? 0)
|
||||
|
||||
return (
|
||||
<PageShell title={t('title')}>
|
||||
{/* Selector de cuenta de juego (WOW1/WOW2…) si la bnet tiene más de una */}
|
||||
{games.length > 1 && (
|
||||
<GameAccountSwitcher accounts={games} currentId={session.accountId ?? 0} />
|
||||
)}
|
||||
|
||||
{/* Información: dos fieldsets como en Django */}
|
||||
<div className="box-content">
|
||||
<div className="title-box-content">
|
||||
|
||||
Reference in New Issue
Block a user