"use client"; import clsx from "clsx"; import Link from "next/link"; import type { Dispatch, SetStateAction } from "react"; import { LogIn, MessageCircle, Moon, Sun, UserRound } from "lucide-react"; import { ProFeaturePaywall } from "@/components/dashboard/ProFeaturePaywall"; import { LoadingSignal } from "@/components/dashboard/scan-terminal/LoadingSignal"; import type { Locale } from "@/lib/i18n"; export type ScanTerminalContentView = "city-list" | "analysis" | "map"; type ThemeMode = "dark" | "light"; export function ScanTerminalLoadingScreen({ isEn, rootClassName, themeMode, userLocalTime, }: { isEn: boolean; rootClassName: string; themeMode: ThemeMode; userLocalTime: string; }) { return (
{isEn ? "AI Weather Decision Terminal" : "AI 天气交易决策台"} {isEn ? "Start from the map, then open city cards to verify weather evidence" : "从地图选城市,再打开决策卡验证天气证据"}
{userLocalTime}
); } 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>; themeMode: ThemeMode; toggleLocale: () => void; userLocalTime: string; }) { return (
{isEn ? "AI Weather Decision Terminal" : "AI 天气交易决策台"} {isEn ? "Start from the map, then open city cards to verify weather evidence" : "从地图选城市,再打开决策卡验证天气证据"}
{userLocalTime} {isPro ? null : isAuthenticated ? ( ) : ( {isEn ? "Sign in" : "登录"} )} {isAuthenticated ? ( ) : null}
); } export function ScanPaywallModal({ isEn, onClose, }: { isEn: boolean; onClose: () => void; }) { return (
{ if (event.target === event.currentTarget) { onClose(); } }} >
); }