From b7579c59471c9bd0b9f3eb36ec233a24361c2055 Mon Sep 17 00:00:00 2001 From: feie9456 Date: Sat, 11 Jul 2026 23:40:34 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E5=88=87=E6=8D=A2query?= =?UTF-8?q?=E8=BF=9B=E5=BA=A6=E6=9D=A1=E4=B8=8D=E6=B6=88=E5=A4=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- components/navigation-progress.tsx | 24 +++++++++++++++++------- 1 file changed, 17 insertions(+), 7 deletions(-) diff --git a/components/navigation-progress.tsx b/components/navigation-progress.tsx index 1ec01e5..d8564ff 100644 --- a/components/navigation-progress.tsx +++ b/components/navigation-progress.tsx @@ -8,10 +8,11 @@ import { useMemo, useRef, useState, + Suspense, type MutableRefObject, type ReactNode, } from "react"; -import { usePathname } from "next/navigation"; +import { usePathname, useSearchParams } from "next/navigation"; const SHOW_DELAY_MS = 120; const MIN_VISIBLE_MS = 180; @@ -32,12 +33,22 @@ function clearTimer(timerRef: MutableRefObject) { } } +function NavigationProgressComplete({ onComplete }: { onComplete: () => void }) { + const pathname = usePathname(); + const searchParams = useSearchParams(); + + useEffect(() => { + onComplete(); + }, [pathname, searchParams, onComplete]); + + return null; +} + export function NavigationProgressProvider({ children, }: { children: ReactNode; }) { - const pathname = usePathname(); const [visible, setVisible] = useState(false); const visibleRef = useRef(false); const shownAtRef = useRef(0); @@ -93,10 +104,6 @@ export function NavigationProgressProvider({ }, remainingVisibleMs); }, [setProgressVisible]); - useEffect(() => { - endNavigationProgress(); - }, [pathname, endNavigationProgress]); - useEffect(() => { function handleDocumentClick(event: MouseEvent) { if ( @@ -181,6 +188,9 @@ export function NavigationProgressProvider({ return ( {children} + + +