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,
|
title,
|
||||||
description,
|
description,
|
||||||
alternates: {
|
alternates: {
|
||||||
canonical: `${siteUrl}/${locale}/analytics`,
|
canonical: `${siteUrl}/en/analytics`,
|
||||||
languages: {
|
languages: {
|
||||||
en: `${siteUrl}/en/analytics`,
|
en: `${siteUrl}/en/analytics`,
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -82,7 +82,7 @@ export default function SettingsClient() {
|
|||||||
<div className="settings-scope-copy">
|
<div className="settings-scope-copy">
|
||||||
Position size, Trump leverage, and minimum AI confidence used when a Truth Social post becomes actionable.
|
Position size, Trump leverage, and minimum AI confidence used when a Truth Social post becomes actionable.
|
||||||
</div>
|
</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>
|
||||||
|
|
||||||
<section id="macro-settings" className="settings-scope-card btc">
|
<section id="macro-settings" className="settings-scope-card btc">
|
||||||
@@ -91,7 +91,7 @@ export default function SettingsClient() {
|
|||||||
<div className="settings-scope-copy">
|
<div className="settings-scope-copy">
|
||||||
Strategy mode, BTC leverage, and de-risk behavior used by the Macro Vibes sleeve.
|
Strategy mode, BTC leverage, and de-risk behavior used by the Macro Vibes sleeve.
|
||||||
</div>
|
</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>
|
||||||
|
|
||||||
<section id="global-settings" className="settings-scope-card global">
|
<section id="global-settings" className="settings-scope-card global">
|
||||||
@@ -100,7 +100,7 @@ export default function SettingsClient() {
|
|||||||
<div className="settings-scope-copy">
|
<div className="settings-scope-copy">
|
||||||
Subscription, Hyperliquid API wallet, manual window, schedule, and guardrails that apply across the account.
|
Subscription, Hyperliquid API wallet, manual window, schedule, and guardrails that apply across the account.
|
||||||
</div>
|
</div>
|
||||||
<a href="#bot-config" className="settings-scope-link">Global tab ↓</a>
|
<a href="#config-global" className="settings-scope-link">Configure global ↓</a>
|
||||||
</section>
|
</section>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ export async function generateMetadata(): Promise<Metadata> {
|
|||||||
title,
|
title,
|
||||||
description,
|
description,
|
||||||
alternates: {
|
alternates: {
|
||||||
canonical: `${siteUrl}/${locale}/settings`,
|
canonical: `${siteUrl}/en/settings`,
|
||||||
languages: {
|
languages: {
|
||||||
en: `${siteUrl}/en/settings`,
|
en: `${siteUrl}/en/settings`,
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -531,7 +531,7 @@ export default function BotConfigPanel() {
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
{/* ── Trump Signal ───────────────────────────────────────────────────── */}
|
{/* ── 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 */}
|
{/* Header */}
|
||||||
<div style={{
|
<div style={{
|
||||||
display: 'flex', alignItems: 'center', justifyContent: 'space-between',
|
display: 'flex', alignItems: 'center', justifyContent: 'space-between',
|
||||||
@@ -640,7 +640,7 @@ export default function BotConfigPanel() {
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
{/* ── Macro Vibes ────────────────────────────────────────────────────── */}
|
{/* ── 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 */}
|
{/* Header */}
|
||||||
<div style={{
|
<div style={{
|
||||||
display: 'flex', alignItems: 'center', justifyContent: 'space-between',
|
display: 'flex', alignItems: 'center', justifyContent: 'space-between',
|
||||||
@@ -740,8 +740,8 @@ export default function BotConfigPanel() {
|
|||||||
})()}
|
})()}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
{/* ── Advanced ───────────────────────────────────────────────────────── */}
|
{/* ── Advanced / Global controls ─────────────────────────────────────── */}
|
||||||
<div className="card" style={{ padding: 0, overflow: 'hidden', marginBottom: 12 }}>
|
<div id="config-global" className="card" style={{ padding: 0, overflow: 'hidden', marginBottom: 12 }}>
|
||||||
<button
|
<button
|
||||||
type="button"
|
type="button"
|
||||||
onClick={() => setShowAdvanced(v => !v)}
|
onClick={() => setShowAdvanced(v => !v)}
|
||||||
|
|||||||
Reference in New Issue
Block a user