移除 v1.5.6 升级公告横幅

- ScanTerminalDashboard: 删除 showAnnouncement 状态、localStorage 检测逻辑、渲染代码
- ScanTerminalShellParts: 删除 ScanUpgradeAnnouncement 组件
This commit is contained in:
2569718930@qq.com
2026-05-17 21:24:28 +08:00
parent 9d8c59f741
commit 1645fd88d0
2 changed files with 0 additions and 75 deletions
@@ -28,7 +28,6 @@ import {
ScanPaywallModal,
ScanTerminalLoadingScreen,
ScanTerminalTopBar,
ScanUpgradeAnnouncement,
type ScanTerminalContentView,
} from "@/components/dashboard/scan-terminal/ScanTerminalShellParts";
import { findDetailForCity } from "@/components/dashboard/scan-terminal/city-detail-utils";
@@ -92,7 +91,6 @@ function ScanTerminalScreen() {
const [activeView, setActiveView] = useState<ScanTerminalContentView>("map");
const [mapSelectedCityName, setMapSelectedCityName] = useState<string | null>(null);
const [showScanPaywall, setShowScanPaywall] = useState(false);
const [showAnnouncement, setShowAnnouncement] = useState(false);
const [isMobileViewport, setIsMobileViewport] = useState(false);
useEffect(() => {
@@ -111,22 +109,6 @@ function ScanTerminalScreen() {
return () => media.removeEventListener("change", syncMobileViewport);
}, []);
useEffect(() => {
if (isMobileViewport) {
setShowAnnouncement(false);
return;
}
const key = "polyweather_v156_announcement_seen_at";
const seen = localStorage.getItem(key);
const now = Date.now();
if (!seen) {
localStorage.setItem(key, String(now));
setShowAnnouncement(true);
return;
}
const elapsed = now - Number(seen);
setShowAnnouncement(elapsed < 3 * 24 * 60 * 60 * 1000);
}, [isMobileViewport]);
const userLocalTime = useUserLocalClock();
const { setThemeMode, themeMode } = useScanTerminalTheme();
const lastMapSelectedCityRef = useRef<string>("");
@@ -444,19 +426,6 @@ function ScanTerminalScreen() {
userLocalTime={userLocalTime}
/>
{showAnnouncement && !isMobileViewport ? (
<ScanUpgradeAnnouncement
isEn={isEn}
onDismiss={() => {
localStorage.setItem(
"polyweather_v156_announcement_seen_at",
String(Date.now() + 90 * 24 * 60 * 60 * 1000),
);
setShowAnnouncement(false);
}}
/>
) : null}
<section className="scan-list-section">
<div className="scan-list-header">
<div className="scan-list-tabs" role="tablist" aria-label={isEn ? "Content view" : "内容视图"}>
@@ -160,50 +160,6 @@ export function ScanTerminalTopBar({
);
}
export function ScanUpgradeAnnouncement({
isEn,
onDismiss,
}: {
isEn: boolean;
onDismiss: () => void;
}) {
return (
<section
className="scan-upgrade-announcement"
aria-label={isEn ? "Upgrade announcement" : "升级公告"}
>
<div className="scan-upgrade-announcement-copy">
<span>{isEn ? "v1.5.6 upgrade" : "v1.5.6 升级公告"}</span>
<strong>
{isEn
? "Scan terminal is upgraded to v1.5.6"
: "决策终端已升级到 v1.5.6"}
</strong>
<p>
{isEn
? "City decision cards have been redesigned with a compact hero layout and consistent DEB data source. Sticky headers are removed for smoother scrolling."
: "城市决策卡 hero 布局重新设计,三指标并列对比更直观;DEB 数据源统一不再出现不一致;去除顶部固定效果滚动更流畅。"}
</p>
</div>
<ul>
<li>{isEn ? "Redesigned decision card hero" : "重设计城市决策卡 hero 布局"}</li>
<li>{isEn ? "Unified DEB data source" : "统一 DEB 数据源"}</li>
<li>{isEn ? "Light theme coverage" : "亮色主题补全覆盖"}</li>
<li>{isEn ? "HKO observatory AI read" : "香港天文台观测 AI 解读"}</li>
<li>{isEn ? "Smoother scrolling experience" : "滚动体验优化"}</li>
</ul>
<button
type="button"
className="scan-announcement-dismiss"
aria-label={isEn ? "Dismiss" : "关闭"}
onClick={onDismiss}
>
</button>
</section>
);
}
export function ScanPaywallModal({
isEn,
onClose,