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>
This commit is contained in:
k
2026-05-30 00:56:59 +08:00
parent 3cf7de7144
commit e78a61bd6e
4 changed files with 9 additions and 9 deletions
+1 -1
View File
@@ -15,7 +15,7 @@ export async function generateMetadata(): Promise<Metadata> {
title,
description,
alternates: {
canonical: `${siteUrl}/${locale}/analytics`,
canonical: `${siteUrl}/en/analytics`,
languages: {
en: `${siteUrl}/en/analytics`,
},
+3 -3
View File
@@ -82,7 +82,7 @@ export default function SettingsClient() {
<div className="settings-scope-copy">
Position size, Trump leverage, and minimum AI confidence used when a Truth Social post becomes actionable.
</div>
<a href="#bot-config" className="settings-scope-link">Trump Signal tab </a>
<a href="#config-trump" className="settings-scope-link">Configure Trump </a>
</section>
<section id="macro-settings" className="settings-scope-card btc">
@@ -91,7 +91,7 @@ export default function SettingsClient() {
<div className="settings-scope-copy">
Strategy mode, BTC leverage, and de-risk behavior used by the Macro Vibes sleeve.
</div>
<a href="#bot-config" className="settings-scope-link">Macro Vibes tab </a>
<a href="#config-macro" className="settings-scope-link">Configure Macro Vibes </a>
</section>
<section id="global-settings" className="settings-scope-card global">
@@ -100,7 +100,7 @@ export default function SettingsClient() {
<div className="settings-scope-copy">
Subscription, Hyperliquid API wallet, manual window, schedule, and guardrails that apply across the account.
</div>
<a href="#bot-config" className="settings-scope-link">Global tab </a>
<a href="#config-global" className="settings-scope-link">Configure global </a>
</section>
</div>
+1 -1
View File
@@ -15,7 +15,7 @@ export async function generateMetadata(): Promise<Metadata> {
title,
description,
alternates: {
canonical: `${siteUrl}/${locale}/settings`,
canonical: `${siteUrl}/en/settings`,
languages: {
en: `${siteUrl}/en/settings`,
},