From df3a78dc1f8521bde69698a2f2d2ff19729e5ac0 Mon Sep 17 00:00:00 2001 From: Manuel Schiller Date: Tue, 10 Dec 2024 00:05:26 +0100 Subject: [PATCH 1/2] fix(react-router): fix transitions fixes #2631 fixes #2082 --- packages/react-router/src/Transitioner.tsx | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/packages/react-router/src/Transitioner.tsx b/packages/react-router/src/Transitioner.tsx index 0be3501601c..7aebc652c79 100644 --- a/packages/react-router/src/Transitioner.tsx +++ b/packages/react-router/src/Transitioner.tsx @@ -11,7 +11,7 @@ export function Transitioner() { select: ({ isLoading }) => isLoading, }) - const [isTransitioning, startReactTransition_] = React.useTransition() + const [isTransitioning, setIsTransitioning] = React.useState(false) // Track pending state changes const hasPendingMatches = useRouterState({ select: (s) => s.matches.some((d) => d.status === 'pending'), @@ -27,7 +27,13 @@ export function Transitioner() { const previousIsPagePending = usePrevious(isPagePending) if (!router.isServer) { - router.startReactTransition = startReactTransition_ + router.startReactTransition = (fn: () => void) => { + setIsTransitioning(true) + React.startTransition(() => { + fn(); + setIsTransitioning(false); + }); + } } // Subscribe to location changes From 1dde7534b9ecc3f9ab746ecf3f38dbec7e1ade6b Mon Sep 17 00:00:00 2001 From: "autofix-ci[bot]" <114827586+autofix-ci[bot]@users.noreply.github.com> Date: Mon, 9 Dec 2024 23:07:16 +0000 Subject: [PATCH 2/2] ci: apply automated fixes --- packages/react-router/src/Transitioner.tsx | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/react-router/src/Transitioner.tsx b/packages/react-router/src/Transitioner.tsx index 7aebc652c79..63b8ff794ca 100644 --- a/packages/react-router/src/Transitioner.tsx +++ b/packages/react-router/src/Transitioner.tsx @@ -30,9 +30,9 @@ export function Transitioner() { router.startReactTransition = (fn: () => void) => { setIsTransitioning(true) React.startTransition(() => { - fn(); - setIsTransitioning(false); - }); + fn() + setIsTransitioning(false) + }) } }