fix(transition): preserve scroll position during page animations

This commit is contained in:
LTbinglingfeng
2026-01-02 00:29:42 +08:00
parent 946ed36af0
commit 7ce97a616f
2 changed files with 33 additions and 8 deletions

View File

@@ -202,6 +202,7 @@ export function MainLayout() {
const [requestLogDraft, setRequestLogDraft] = useState(false);
const [requestLogTouched, setRequestLogTouched] = useState(false);
const [requestLogSaving, setRequestLogSaving] = useState(false);
const contentRef = useRef<HTMLDivElement | null>(null);
const brandCollapseTimer = useRef<ReturnType<typeof setTimeout> | null>(null);
const headerRef = useRef<HTMLElement | null>(null);
const versionTapCount = useRef(0);
@@ -343,6 +344,7 @@ export function MainLayout() {
});
}, [fetchConfig]);
const statusClass =
connectionStatus === 'connected'
? 'success'
@@ -522,11 +524,12 @@ export function MainLayout() {
</div>
</aside>
<div className={`content${isLogsPage ? ' content-logs' : ''}`}>
<div className={`content${isLogsPage ? ' content-logs' : ''}`} ref={contentRef}>
<main className={`main-content${isLogsPage ? ' main-content-logs' : ''}`}>
<PageTransition
render={(location) => <MainRoutes location={location} />}
getRouteOrder={getRouteOrder}
scrollContainerRef={contentRef}
/>
</main>