移除旧 AI Weather Decision Terminal 品牌名,统一为 PolyWeather Terminal

删除未使用的 ScanTerminalTopBar 和 ScanTerminalContentView 类型。
ScanTerminalLoadingScreen 顶栏文字改用 PolyWeather 品牌名。
This commit is contained in:
2569718930@qq.com
2026-05-25 02:33:53 +08:00
parent f7eeca1021
commit 22872f26e7
2 changed files with 4 additions and 88 deletions
@@ -169,7 +169,7 @@ const TERM = {
zh: "你需要开通有效订阅才能访问决策台。",
},
backToProduct: { en: "Back to product overview", zh: "返回产品介绍页" },
dashboard: { en: "Weather Market Dashboard", zh: "天气市场数据仪表盘" },
dashboard: { en: "PolyWeather Terminal", zh: "PolyWeather 交易决策台" },
refresh: { en: "Refresh", zh: "刷新" },
switchLang: { en: "Switch to Chinese", zh: "切换到英文" },
globalWeatherFactors: { en: "Global Weather Factors", zh: "全球天气因子" },
@@ -1,13 +1,7 @@
"use client";
import clsx from "clsx";
import Link from "next/link";
import type { Dispatch, SetStateAction } from "react";
import { LogIn, UserRound } from "lucide-react";
import { LoadingSignal } from "@/components/dashboard/scan-terminal/LoadingSignal";
import type { Locale } from "@/lib/i18n";
export type ScanTerminalContentView = "city-list" | "analysis";
type ThemeMode = "dark" | "light";
@@ -29,12 +23,12 @@ export function ScanTerminalLoadingScreen({
<div className="scan-topbar">
<div className="scan-topbar-title">
<strong>
{isEn ? "AI Weather Decision Terminal" : "AI 天气交易决策台"}
{isEn ? "PolyWeather Terminal" : "PolyWeather 交易决策台"}
</strong>
<span>
{isEn
? "Loading paid decision cards, city evidence, and market signals"
: "正在加载付费决策卡、城市证据和市场信号"}
? "Loading decision cards, city evidence, and market signals"
: "正在加载决策卡、城市证据和市场信号"}
</span>
</div>
<div className="scan-topbar-actions">
@@ -58,81 +52,3 @@ export function ScanTerminalLoadingScreen({
</div>
);
}
export function ScanTerminalTopBar({
accountHref,
isAuthenticated,
isEn,
isPro,
locale,
onOpenScanPaywall,
setThemeMode,
themeMode,
toggleLocale,
userLocalTime,
}: {
accountHref: string;
isAuthenticated: boolean;
isEn: boolean;
isPro: boolean;
locale: Locale;
onOpenScanPaywall: () => void;
setThemeMode: Dispatch<SetStateAction<ThemeMode>>;
themeMode: ThemeMode;
toggleLocale: () => void;
userLocalTime: string;
}) {
return (
<div className="scan-topbar">
<div className="scan-topbar-title">
<strong>
{isEn ? "AI Weather Decision Terminal" : "AI 天气交易决策台"}
</strong>
<span>
{isEn
? "Paid workspace for city evidence, model signals, and weather-market decisions"
: "面向付费用户的城市证据、模型信号与天气市场决策工作区"}
</span>
</div>
<div className="scan-topbar-actions">
<button
type="button"
className="scan-locale-switch"
aria-label={isEn ? "Switch to Chinese" : "切换到英文"}
title={isEn ? "Switch to Chinese" : "切换到英文"}
onClick={toggleLocale}
>
<span className={clsx(locale === "zh-CN" && "active")}></span>
<span className={clsx(locale === "en-US" && "active")}>EN</span>
</button>
<span className="scan-topbar-time">{userLocalTime}</span>
{isPro ? null : isAuthenticated ? (
<button
type="button"
className="scan-primary-button"
onClick={onOpenScanPaywall}
>
<UserRound size={14} />
{isEn ? "Upgrade Pro" : "升级 Pro"}
</button>
) : (
<Link href={accountHref} className="scan-primary-button">
<LogIn size={14} />
{isEn ? "Sign in" : "登录"}
</Link>
)}
{isAuthenticated ? (
<Link
href={accountHref}
className="scan-account-button"
aria-label={isEn ? "Account" : "账户"}
title={isEn ? "Account" : "账户"}
>
<UserRound size={15} />
</Link>
) : null}
</div>
</div>
);
}