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:
@@ -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`,
|
||||
},
|
||||
|
||||
@@ -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>
|
||||
|
||||
|
||||
@@ -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`,
|
||||
},
|
||||
|
||||
@@ -531,7 +531,7 @@ export default function BotConfigPanel() {
|
||||
</div>
|
||||
|
||||
{/* ── Trump Signal ───────────────────────────────────────────────────── */}
|
||||
<div className="card" style={{ padding: 0, overflow: 'hidden', marginBottom: 12 }}>
|
||||
<div id="config-trump" className="card" style={{ padding: 0, overflow: 'hidden', marginBottom: 12 }}>
|
||||
{/* Header */}
|
||||
<div style={{
|
||||
display: 'flex', alignItems: 'center', justifyContent: 'space-between',
|
||||
@@ -640,7 +640,7 @@ export default function BotConfigPanel() {
|
||||
</div>
|
||||
|
||||
{/* ── Macro Vibes ────────────────────────────────────────────────────── */}
|
||||
<div className="card" style={{ padding: 0, overflow: 'hidden', marginBottom: 12 }}>
|
||||
<div id="config-macro" className="card" style={{ padding: 0, overflow: 'hidden', marginBottom: 12 }}>
|
||||
{/* Header */}
|
||||
<div style={{
|
||||
display: 'flex', alignItems: 'center', justifyContent: 'space-between',
|
||||
@@ -740,8 +740,8 @@ export default function BotConfigPanel() {
|
||||
})()}
|
||||
</div>
|
||||
|
||||
{/* ── Advanced ───────────────────────────────────────────────────────── */}
|
||||
<div className="card" style={{ padding: 0, overflow: 'hidden', marginBottom: 12 }}>
|
||||
{/* ── Advanced / Global controls ─────────────────────────────────────── */}
|
||||
<div id="config-global" className="card" style={{ padding: 0, overflow: 'hidden', marginBottom: 12 }}>
|
||||
<button
|
||||
type="button"
|
||||
onClick={() => setShowAdvanced(v => !v)}
|
||||
|
||||
Reference in New Issue
Block a user