web-next: «Opciones de cuenta» reordenado según el markup
accountTools en el orden del markup: cambiar contraseña, 2FA (email-icon, label purple-info), transferir PD, comercio de PD, código promoción, token, recluta, renombrar hermandad, votar, adquirir PD. «Cambiar correo» (que tenemos y no está en la lista) al final; panel admin el último (solo admin). Tool.labelClass para el morado del 2FA. Iconos nuevos del sprite: trade-pd-icon (-299 -928) y color .purple-info (#b172ff) añadidos al tema. Claves i18n nuevas (svc2FA/TransferDP/TradePD/Promo/RenameGuild/DPoints). Rutas nuevas → 404 aún. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -4,7 +4,7 @@ import { useState } from 'react'
|
||||
import { useTranslations } from 'next-intl'
|
||||
import { Link } from '@/i18n/navigation'
|
||||
|
||||
type Tool = { href: string; icon: string; label: string; desc: string }
|
||||
type Tool = { href: string; icon: string; label: string; desc: string; labelClass?: string }
|
||||
|
||||
/** Replica los paneles plegables «OPCIONES DE CUENTA / OPCIONES DE PERSONAJE»
|
||||
* del my-account de Django (acordeón por click), con las herramientas ya
|
||||
@@ -14,10 +14,17 @@ export function AccountTools({ isAdmin }: { isAdmin: boolean }) {
|
||||
|
||||
const accountTools: Tool[] = [
|
||||
{ href: '/change-password', icon: 'password-icon', label: t('svcChangePassword'), desc: t('svcChangePasswordDesc') },
|
||||
{ href: '/change-email', icon: 'email-icon', label: t('svcChangeEmail'), desc: t('svcChangeEmailDesc') },
|
||||
{ href: '/security-2falogin', icon: 'email-icon', label: t('svc2FA'), desc: t('svc2FADesc'), labelClass: 'purple-info' },
|
||||
{ href: '/transfer-d-points', icon: 'transfer-dp-icon', label: t('svcTransferDP'), desc: t('svcTransferDPDesc') },
|
||||
{ href: '/trade-points', icon: 'trade-pd-icon', label: t('svcTradePD'), desc: t('svcTradePDDesc') },
|
||||
{ href: '/promo-code', icon: 'promo-icon', label: t('svcPromo'), desc: t('svcPromoDesc') },
|
||||
{ href: '/security-token', icon: 'token-icon', label: t('svcToken'), desc: t('svcTokenDesc') },
|
||||
{ href: '/recruit', icon: 'recruit-a-friend-icon', label: t('svcRecruit'), desc: t('svcRecruitDesc') },
|
||||
{ href: '/rename-guild', icon: 'rename-guild-icon', label: t('svcRenameGuild'), desc: t('svcRenameGuildDesc') },
|
||||
{ href: '/vote-points', icon: 'vote-icon', label: t('svcVote'), desc: t('svcVoteDesc') },
|
||||
{ href: '/d-points', icon: 'dnt-icon', label: t('svcDPoints'), desc: t('svcDPointsDesc') },
|
||||
// Las que tenemos y no están en la lista, al final:
|
||||
{ href: '/change-email', icon: 'email-icon', label: t('svcChangeEmail'), desc: t('svcChangeEmailDesc') },
|
||||
// Panel de administración: una tool-button más dentro de «Opciones de cuenta» (solo admins).
|
||||
...(isAdmin ? [{ href: '/admin', icon: 'store-icon', label: `🛡️ ${t('adminPanel')}`, desc: t('adminPanelDesc') }] : []),
|
||||
]
|
||||
@@ -74,7 +81,7 @@ function Panel({ id, arrow, title, tools, defaultOpen = false }: { id: string; a
|
||||
<div className="tool-button">
|
||||
<div className={`acc-icon ${it.icon}`}></div>
|
||||
<div className="tool-button-div">
|
||||
<span className="first-brown shadow">{it.label}</span>
|
||||
<span className={`first-brown shadow${it.labelClass ? ` ${it.labelClass}` : ''}`}>{it.label}</span>
|
||||
<br />
|
||||
<span className="second-brown shadow">{it.desc}</span>
|
||||
</div>
|
||||
|
||||
@@ -135,7 +135,19 @@
|
||||
"svcStoreItems": "Store",
|
||||
"svcStoreItemsDesc": "Get all kinds of items",
|
||||
"svcSendGift": "Send gift",
|
||||
"svcSendGiftDesc": "Send gifts to your friends"
|
||||
"svcSendGiftDesc": "Send gifts to your friends",
|
||||
"svc2FA": "2FA (Two-step verification)",
|
||||
"svc2FADesc": "Manage two-factor authentication",
|
||||
"svcTransferDP": "Transfer PD",
|
||||
"svcTransferDPDesc": "Transfer PD to your alt accounts",
|
||||
"svcTradePD": "PD trading",
|
||||
"svcTradePDDesc": "Buy or sell PD for gold",
|
||||
"svcPromo": "Promo code",
|
||||
"svcPromoDesc": "Redeem codes for PD or VP",
|
||||
"svcRenameGuild": "Rename guild",
|
||||
"svcRenameGuildDesc": "Change your guild's name",
|
||||
"svcDPoints": "Get PD",
|
||||
"svcDPointsDesc": "Get PD and access rewards"
|
||||
},
|
||||
"SelectAccount": {
|
||||
"title": "Select your game account",
|
||||
|
||||
@@ -135,7 +135,19 @@
|
||||
"svcStoreItems": "Tienda",
|
||||
"svcStoreItemsDesc": "Adquiere objetos de todo tipo",
|
||||
"svcSendGift": "Enviar regalo",
|
||||
"svcSendGiftDesc": "Envía regalos a tus amigos"
|
||||
"svcSendGiftDesc": "Envía regalos a tus amigos",
|
||||
"svc2FA": "2FA (Verificación en 2 pasos)",
|
||||
"svc2FADesc": "Gestiona la doble autenticación",
|
||||
"svcTransferDP": "Tranferir PD",
|
||||
"svcTransferDPDesc": "Transfiere PD a tus cuentas alternativas",
|
||||
"svcTradePD": "Comercio de PD",
|
||||
"svcTradePDDesc": "Compra o vende PD por oro",
|
||||
"svcPromo": "Código de promoción",
|
||||
"svcPromoDesc": "Canjea códigos por PD o PV",
|
||||
"svcRenameGuild": "Renombrar hermandad",
|
||||
"svcRenameGuildDesc": "Cambia el nombre de tu hermandad",
|
||||
"svcDPoints": "Adquirir PD",
|
||||
"svcDPointsDesc": "Obtiene PD y accede a recompensas"
|
||||
},
|
||||
"SelectAccount": {
|
||||
"title": "Selecciona tu cuenta de juego",
|
||||
|
||||
@@ -909,6 +909,14 @@ textarea:focus, select:focus, input[type=password]:focus, input[type=number]:foc
|
||||
background-position: -424px -553px;
|
||||
}
|
||||
|
||||
.trade-pd-icon {
|
||||
background-position: -299px -928px;
|
||||
}
|
||||
|
||||
.purple-info {
|
||||
color: #b172ff;
|
||||
}
|
||||
|
||||
.token-icon {
|
||||
background-position: -174px -553px;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user