Files
trumpsignal-frontend/app/[locale]/settings/page.tsx
T
k e78a61bd6e fix(settings/analytics): canonical /en/, precise anchor navigation, scope card copy
Canonical URL fixes (parity with trump/macro/kol done earlier):
- analytics/page.tsx: canonical was `${siteUrl}/${locale}/analytics` → /en/
- settings/page.tsx:  canonical was `${siteUrl}/${locale}/settings`  → /en/

Settings scope card anchor navigation:
- Three scope cards ('Trump Signal ↓', 'Macro Vibes ↓', 'Global ↓') all
  pointed to #bot-config — same destination, no differentiation. Renamed:
  #config-trump / #config-macro / #config-global.
- Added matching id='config-trump/macro/global' to the three sections in
  BotConfigPanel so the anchors actually land at the right section.
- Removed misleading 'tab' wording ('Trump Signal tab ↓') — BotConfigPanel
  is not a tab component; it's a single-page vertical form. Copy now reads
  'Configure Trump ↓' etc.
- SystemControl already links to settings#bot-config which still resolves
  (the outer #bot-config wrapper div in SettingsClient is unchanged).

tsc + next build clean.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-30 00:56:59 +08:00

41 lines
1.7 KiB
TypeScript

import type { Metadata } from 'next'
import { getLocale } from 'next-intl/server'
import SettingsClient from './SettingsClient'
const siteUrl = process.env.NEXT_PUBLIC_SITE_URL || 'https://trumpsignal.com'
export async function generateMetadata(): Promise<Metadata> {
const locale = await getLocale()
const isZh = false // i18n shelved — Chinese branches kept as dead code for future revival; see messages/zh.json
const title = isZh ? '机器人设置与订阅' : 'Bot Settings & Subscription'
const description = isZh
? '配置订阅状态、Hyperliquid API、风控参数、自动交易模式和提醒渠道。这里决定 Trump Alpha 如何代表你执行。'
: 'Configure subscription state, Hyperliquid API access, risk controls, auto-trade mode, and alert channels. This page defines how Trump Alpha executes for you.'
return {
title,
description,
alternates: {
canonical: `${siteUrl}/en/settings`,
languages: {
en: `${siteUrl}/en/settings`,
},
},
}
}
export default async function SettingsPage() {
const locale = await getLocale()
const isZh = false // i18n shelved — Chinese branches kept as dead code for future revival; see messages/zh.json
return (
<div className="page">
<div className="page-head">
<div>
<h1 className="page-title">{isZh ? '设置' : 'Settings'}</h1>
<p className="page-sub">{isZh ? '订阅、交易所密钥、风险限制和运行时间安排,都会在这里配置。' : 'Subscription, exchange key, risk limits, and schedule — everything that decides how the bot trades.'}</p>
</div>
</div>
<SettingsClient />
</div>
)
}