diff --git a/web/default/src/components/page-transition.tsx b/web/default/src/components/page-transition.tsx index d46fac9a398b..7c7be28360ba 100644 --- a/web/default/src/components/page-transition.tsx +++ b/web/default/src/components/page-transition.tsx @@ -56,8 +56,12 @@ export function PageTransition(props: PageTransitionProps) { export function AnimatedOutlet() { const shouldReduce = useReducedMotion() + // Key the page transition by the matched route id, not the resolved pathname. + // Navigating between params of the same route (e.g. dashboard tabs served by + // /dashboard/$section) then re-renders in place instead of remounting the + // route component and discarding its state (such as the selected time range). const routeKey = useRouterState({ - select: (s) => s.location.pathname, + select: (s) => s.matches.at(-1)?.routeId ?? s.location.pathname, }) if (shouldReduce) {