a78417e954
La página mostraba un genérico «¡Cuenta activada!» + enlace a iniciar sesión.
Se recupera la estructura de las plantillas del tema (activation_success.html /
activation_invalid.html): bienvenida, la cuenta en `yellow-info`, y el aviso de
enlace inválido en `red-info2` con la línea de contacto.
El original dejaba un hueco: renderizaba `{{ username }}` pero la vista hacía
`render(...)` SIN contexto, así que salía «La cuenta ha sido activada». Aquí
`activateAccount` devuelve el email y sí se muestra. Va el email tal cual se
registró, no el normalizado: ese va en MAYÚSCULAS porque lo exige el SRP6 de
Battle.net y en pantalla quedaría como INNA@INNA.CL.
El nombre del servidor sale de `getRealmName()` (acore_auth.realmlist), como en
el resto de páginas, en vez de escribirlo a mano.
Verificado en producción: el caso inválido lo pinta el servidor y sale idéntico
al del tema; y activando una fila de prueba, el API devuelve {success, email} y
reutilizar el enlace o mandar un hash que no existe dan `invalidLink` (filas de
prueba borradas después).
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
29 lines
802 B
TypeScript
29 lines
802 B
TypeScript
import { getTranslations, setRequestLocale } from 'next-intl/server'
|
|
import { PageShell } from '@/components/PageShell'
|
|
import { getRealmName } from '@/lib/realm'
|
|
import { ActivateClient } from './ActivateClient'
|
|
|
|
export default async function ActivatePage({
|
|
params,
|
|
searchParams,
|
|
}: {
|
|
params: Promise<{ locale: string }>
|
|
searchParams: Promise<{ act?: string }>
|
|
}) {
|
|
const { locale } = await params
|
|
setRequestLocale(locale)
|
|
const { act } = await searchParams
|
|
const t = await getTranslations('Activate')
|
|
const realm = await getRealmName()
|
|
|
|
return (
|
|
<PageShell title={t('title')}>
|
|
<div className="box-content">
|
|
<div className="body-box-content centered">
|
|
<ActivateClient hash={act ?? ''} realm={realm} />
|
|
</div>
|
|
</div>
|
|
</PageShell>
|
|
)
|
|
}
|