From 95df2e029d27b3d51c6b5532af582f1cacebd09a Mon Sep 17 00:00:00 2001 From: adevopg Date: Mon, 13 Jul 2026 01:35:39 +0000 Subject: [PATCH] =?UTF-8?q?Cuenta:=20panel=20de=20servicios=20(enlaces=20a?= =?UTF-8?q?=20todas=20las=20p=C3=A1ginas)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit La página de cuenta solo mostraba datos y personajes, sin acceso a los servicios. Añade un panel con 4 grupos: - Servicios de personaje: renombrar, personalizar, cambiar raza/facción, subir nivel, comprar oro, transferir. - Utilidades: revivir, desatascar, token de seguridad. - Ajustes de cuenta: cambiar contraseña, cambiar email. - Comunidad: votar, reclutar, tienda (Battlepay). i18n es/en en el namespace Account. Co-Authored-By: Claude Opus 4.8 (1M context) --- web-next/app/[locale]/account/page.tsx | 63 +++++++++++++++++++++++++- web-next/messages/en.json | 21 ++++++++- web-next/messages/es.json | 21 ++++++++- 3 files changed, 102 insertions(+), 3 deletions(-) diff --git a/web-next/app/[locale]/account/page.tsx b/web-next/app/[locale]/account/page.tsx index 65667b1..3264bec 100644 --- a/web-next/app/[locale]/account/page.tsx +++ b/web-next/app/[locale]/account/page.tsx @@ -1,5 +1,5 @@ import { getTranslations, setRequestLocale } from 'next-intl/server' -import { redirect } from '@/i18n/navigation' +import { redirect, Link } from '@/i18n/navigation' import { getSession } from '@/lib/session' import { getAccountDashboard } from '@/lib/account' import { LogoutButton } from '@/components/LogoutButton' @@ -85,6 +85,67 @@ export default async function AccountPage({ params }: { params: Promise<{ locale )} + + ) } + +function ServicesPanel({ t }: { t: (k: string) => string }) { + const groups: { title: string; items: { href: string; label: string }[] }[] = [ + { + title: t('servicesTitle'), + items: [ + { href: '/rename', label: t('svcRename') }, + { href: '/customize', label: t('svcCustomize') }, + { href: '/change-race', label: t('svcChangeRace') }, + { href: '/change-faction', label: t('svcChangeFaction') }, + { href: '/level-up', label: t('svcLevelUp') }, + { href: '/gold', label: t('svcGold') }, + { href: '/transfer', label: t('svcTransfer') }, + ], + }, + { + title: t('utilitiesTitle'), + items: [ + { href: '/revive', label: t('svcRevive') }, + { href: '/unstuck', label: t('svcUnstuck') }, + { href: '/security-token', label: t('svcToken') }, + ], + }, + { + title: t('accountSettings'), + items: [ + { href: '/change-password', label: t('svcChangePassword') }, + { href: '/change-email', label: t('svcChangeEmail') }, + ], + }, + { + title: t('communityTitle'), + items: [ + { href: '/vote-points', label: t('svcVote') }, + { href: '/recruit', label: t('svcRecruit') }, + { href: '/battlepay', label: t('svcStore') }, + ], + }, + ] + + return ( +
+ {groups.map((g) => ( +
+

{g.title}

+
    + {g.items.map((it) => ( +
  • + + {it.label} + +
  • + ))} +
+
+ ))} +
+ ) +} diff --git a/web-next/messages/en.json b/web-next/messages/en.json index 0f31b88..46d02f6 100644 --- a/web-next/messages/en.json +++ b/web-next/messages/en.json @@ -61,7 +61,26 @@ "notRequested": "Not requested", "characters": "My characters", "level": "Level", - "noCharacters": "You have no characters yet." + "noCharacters": "You have no characters yet.", + "servicesTitle": "Character services", + "utilitiesTitle": "Utilities", + "accountSettings": "Account settings", + "communityTitle": "Community", + "svcRename": "Rename character", + "svcCustomize": "Customize appearance", + "svcChangeRace": "Change race", + "svcChangeFaction": "Change faction", + "svcLevelUp": "Level up", + "svcGold": "Buy gold", + "svcTransfer": "Transfer character", + "svcRevive": "Revive character", + "svcUnstuck": "Unstuck character", + "svcToken": "Security token", + "svcChangePassword": "Change password", + "svcChangeEmail": "Change email", + "svcVote": "Vote (points)", + "svcRecruit": "Recruit a friend", + "svcStore": "Store (Battlepay)" }, "SelectAccount": { "title": "Select your game account", diff --git a/web-next/messages/es.json b/web-next/messages/es.json index 562b1b5..8f820ef 100644 --- a/web-next/messages/es.json +++ b/web-next/messages/es.json @@ -61,7 +61,26 @@ "notRequested": "Sin solicitar", "characters": "Mis personajes", "level": "Nivel", - "noCharacters": "No tienes personajes todavía." + "noCharacters": "No tienes personajes todavía.", + "servicesTitle": "Servicios de personaje", + "utilitiesTitle": "Utilidades", + "accountSettings": "Ajustes de cuenta", + "communityTitle": "Comunidad", + "svcRename": "Renombrar personaje", + "svcCustomize": "Personalizar aspecto", + "svcChangeRace": "Cambiar raza", + "svcChangeFaction": "Cambiar facción", + "svcLevelUp": "Subir de nivel", + "svcGold": "Comprar oro", + "svcTransfer": "Transferir personaje", + "svcRevive": "Revivir personaje", + "svcUnstuck": "Desatascar personaje", + "svcToken": "Token de seguridad", + "svcChangePassword": "Cambiar contraseña", + "svcChangeEmail": "Cambiar email", + "svcVote": "Votar (puntos)", + "svcRecruit": "Recluta a un amigo", + "svcStore": "Tienda (Battlepay)" }, "SelectAccount": { "title": "Selecciona tu cuenta de juego",