e78a61bd6e
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>
41 lines
1.7 KiB
TypeScript
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>
|
|
)
|
|
}
|