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 { 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}/en/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 ( ) }