Merge remote-tracking branch 'origin/main'
Fixed conflicts in keyword cloud page and API route
This commit is contained in:
@@ -2,12 +2,8 @@ import { KeywordCloud } from "./components/KeywordCloud";
|
||||
import { getTranslations } from "next-intl/server";
|
||||
|
||||
interface PageProps {
|
||||
params?: Promise<{
|
||||
locale?: string | string[];
|
||||
}>;
|
||||
searchParams?: Promise<{
|
||||
quarter?: string | string[];
|
||||
}>;
|
||||
params: Promise<{ locale: string }>;
|
||||
searchParams: Promise<{ quarter?: string }>;
|
||||
}
|
||||
|
||||
export async function generateMetadata({ params }: PageProps) {
|
||||
@@ -23,47 +19,10 @@ export async function generateMetadata({ params }: PageProps) {
|
||||
}
|
||||
|
||||
export default async function KeywordCloudPage({ searchParams, params }: PageProps) {
|
||||
const resolvedParams = (await params) ?? {};
|
||||
const rawLocale = resolvedParams.locale;
|
||||
const locale = (Array.isArray(rawLocale) ? rawLocale[0] : rawLocale) ?? "zh";
|
||||
|
||||
const resolvedSearchParams = (await searchParams) ?? {};
|
||||
const { locale } = await params;
|
||||
const resolvedSearchParams = await searchParams;
|
||||
const t = await getTranslations("keywordCloud");
|
||||
|
||||
// 如果 URL 中有 quarter 参数,使用它;否则使用默认季度
|
||||
const rawQuarter = resolvedSearchParams.quarter;
|
||||
const quarter = (Array.isArray(rawQuarter) ? rawQuarter[0] : rawQuarter) || "2024-Q1";
|
||||
|
||||
const texts = {
|
||||
loading: t("loading"),
|
||||
loadFailed: t("loadFailed"),
|
||||
retry: t("retry"),
|
||||
hotKeyword: t("hotKeyword"),
|
||||
};
|
||||
|
||||
return (
|
||||
<main className="relative z-10 max-w-6xl mx-auto px-4 pb-32 overflow-visible">
|
||||
{/* 页面标题 */}
|
||||
<header className="relative z-10 pt-16 pb-8 text-center max-w-4xl mx-auto px-4">
|
||||
<div className="inline-block bg-accent dark:bg-purple-700 border-2 border-black px-3 py-1 font-display font-bold text-xs mb-4 shadow-hard-sm rotate-[-2deg]">
|
||||
{t("badge")}
|
||||
</div>
|
||||
<h1 className="font-display text-5xl md:text-7xl font-bold mb-6 tracking-tighter leading-tight">
|
||||
{t("title")}{" "}
|
||||
<span
|
||||
className="text-transparent bg-clip-text bg-gradient-to-r from-blue-500 to-purple-500"
|
||||
style={{ WebkitTextStroke: "1.5px black" }}
|
||||
>
|
||||
{t("titleHighlight")}
|
||||
</span>
|
||||
</h1>
|
||||
<p className="text-lg md:text-xl max-w-2xl mx-auto font-medium text-gray-700 dark:text-gray-300 mb-8">
|
||||
{t("subtitle")}
|
||||
</p>
|
||||
</header>
|
||||
|
||||
{/* 词云组件 */}
|
||||
<KeywordCloud initialQuarter={quarter} locale={locale} texts={texts} />
|
||||
</main>
|
||||
);
|
||||
const quarter = resolvedSearchParams.quarter || "2024-Q1";
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user