feat(macro-vibes): rename BTC Signal → Macro Vibes; add MacroPanel UI
Module rename across page H1, navbar tab, URL (/en/btc → /en/macro), all metadata/JSON-LD, sitemap, llms.txt, opengraph image, and SystemControl copy. Old /btc route fully removed. New components/btc/MacroPanel.tsx polls /api/macro/snapshot and lays out the 8 indicators in four sections (Valuation / Bottom trigger reference / Market structure / Sentiment & flows / Positioning) with tone-coloured values, current-band threshold chips, and a single CoinGlass / source chart link per card. Composite -100..+100 needle pulses on score change. Also fixes the pinned bottom-reversal alert on the homepage, which still linked to the now-404 /en/btc — now routes to /en/macro. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,76 @@
|
||||
import { getFundingSnapshot, getPosts } from '@/lib/api'
|
||||
import type { Metadata } from 'next'
|
||||
import MacroVibesPageClient from './MacroVibesPageClient'
|
||||
|
||||
const siteUrl = process.env.NEXT_PUBLIC_SITE_URL || 'https://trumpsignal.com'
|
||||
export const revalidate = 30
|
||||
|
||||
interface MacroVibesPageProps {
|
||||
params: Promise<{ locale: string }>
|
||||
}
|
||||
|
||||
export async function generateMetadata({
|
||||
params,
|
||||
}: MacroVibesPageProps): Promise<Metadata> {
|
||||
const { locale } = await params
|
||||
const isZh = false // i18n shelved — Chinese branches kept as dead code for future revival; see messages/zh.json
|
||||
|
||||
return {
|
||||
title: isZh ? '宏观氛围 — 加密市场宏观读数' : 'Macro Vibes — read crypto macro before price prints',
|
||||
description: isZh
|
||||
? 'Trump Alpha 的宏观氛围面板:AHR999、Fear & Greed、BTC 主导率、ETH/BTC、稳定币供应、ETF 资金流、永续 OI、Altcoin Season Index 八大公开宏观指标合一,外加 BTC 周期底部 + 资金费率反转两条触发器。'
|
||||
: 'Macro vibes for crypto. Eight public macro signals in one view — AHR999, Fear & Greed, BTC dominance, ETH/BTC, stablecoin supply, ETF flows, perp OI, Altcoin Season Index — plus BTC bottom and funding-rate triggers.',
|
||||
keywords: isZh
|
||||
? [
|
||||
'宏观氛围',
|
||||
'加密宏观',
|
||||
'AHR999',
|
||||
'Fear and Greed',
|
||||
'BTC 主导率',
|
||||
'ETH/BTC',
|
||||
'ETF 资金流',
|
||||
'稳定币供应',
|
||||
'资金费率反转',
|
||||
'Altcoin Season Index',
|
||||
]
|
||||
: [
|
||||
'crypto macro',
|
||||
'macro vibes',
|
||||
'AHR999',
|
||||
'Fear and Greed Index',
|
||||
'BTC dominance',
|
||||
'ETH/BTC ratio',
|
||||
'stablecoin supply',
|
||||
'Bitcoin ETF flow',
|
||||
'funding rate reversal',
|
||||
'Altcoin Season Index',
|
||||
],
|
||||
openGraph: {
|
||||
title: isZh ? '宏观氛围 | Trump Alpha' : 'Macro Vibes | Trump Alpha',
|
||||
description: isZh
|
||||
? '加密宏观一屏看完:八大宏观指标 + BTC 周期底部 + 资金费率反转触发器。'
|
||||
: 'Macro vibes for crypto. Read what is about to happen before price prints it.',
|
||||
},
|
||||
alternates: {
|
||||
canonical: `${siteUrl}/${locale}/macro`,
|
||||
languages: {
|
||||
en: `${siteUrl}/en/macro`,
|
||||
'x-default': `${siteUrl}/en/macro`,
|
||||
},
|
||||
},
|
||||
}
|
||||
}
|
||||
|
||||
export default async function MacroVibesPage() {
|
||||
const [posts, fundingSnapshot] = await Promise.all([
|
||||
getPosts(500, 1).catch(() => null),
|
||||
getFundingSnapshot().catch(() => null),
|
||||
])
|
||||
|
||||
return (
|
||||
<MacroVibesPageClient
|
||||
initialPosts={posts}
|
||||
initialFundingSnapshot={fundingSnapshot}
|
||||
/>
|
||||
)
|
||||
}
|
||||
Reference in New Issue
Block a user