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",