fix(web): 次级页稳定外壳与缓存预取,跨部署导航自愈(BUG-966/967)

This commit is contained in:
jesse-ux
2026-09-18 18:45:48 +08:00
parent dccedf372e
commit 9ccb65b71f
25 changed files with 1066 additions and 160 deletions
+20 -1
View File
@@ -2094,6 +2094,24 @@ input:not([type="radio"]):not([type="checkbox"]):not([class^="ant-"]):not([class
overscroll-behavior: contain;
-webkit-overflow-scrolling: touch;
}
.secondary-page {
display: grid;
align-content: start;
min-height: 0;
}
.secondary-page:has(> .secondary-page-waiting) {
align-content: center;
justify-items: center;
}
.secondary-page-waiting {
max-width: 44ch;
margin: 0;
padding: 0 var(--space-6);
color: var(--color-ink-secondary);
font-size: var(--type-body-sm);
line-height: 1.6;
text-align: center;
}
.chart-page-body,
.ephemeris-body,
.report-center-body,
@@ -2138,7 +2156,8 @@ input:not([type="radio"]):not([type="checkbox"]):not([class^="ant-"]):not([class
.report-center-body,
.chart-page-message,
.ephemeris-message,
.report-center-message { padding-inline: var(--space-4); }
.report-center-message,
.secondary-page-waiting { padding-inline: var(--space-4); }
}
/* Starter home: greeting, composer, entry pills */
+2
View File
@@ -2,6 +2,7 @@ import type { Metadata, Viewport } from "next";
import localFont from "next/font/local";
import Script from "next/script";
import { Toaster } from "@/components/ui/sonner";
import { StaleBuildGuard } from "@/components/stale-build-guard";
import { StaleClientRecovery } from "@/components/stale-client-recovery";
import { ViewportScrollLock } from "@/components/viewport-scroll-lock";
import { themePreferenceBootScript } from "@/lib/theme-preference";
@@ -71,6 +72,7 @@ export default function RootLayout({ children }: Readonly<{ children: React.Reac
<body>
<StaleClientRecovery />
<ViewportScrollLock />
<StaleBuildGuard />
{children}
<Toaster />
</body>