Add retainSearchParams middleware to the _chat.$threadId route so that diff-related search params (?diff=1, diffTurnId, diffFilePath) are preserved when navigating between threads via the sidebar. Without this, TanStack Router clears search params on navigation since the sidebar's navigate calls don't explicitly pass search.
Unified · Split
| @@ -1,4 +1,4 @@ | ||
| 1 | −import { createFileRoute, useNavigate } from "@tanstack/react-router"; | |
| 1 | +import { createFileRoute, retainSearchParams, useNavigate } from "@tanstack/react-router"; | |
| 2 | 2 | import { Activity, Suspense, lazy, type ReactNode, useCallback, useEffect } from "react"; |
| 3 | 3 | |
| 4 | 4 | import ChatView from "../components/ChatView"; |
| @@ -110,5 +110,8 @@ function ChatThreadRouteView() { · 105 unmodified lines | ||
| 110 | 110 | |
| 111 | 111 | export const Route = createFileRoute("/_chat/$threadId")({ |
| 112 | 112 | validateSearch: (search) => parseDiffRouteSearch(search), |
| 113 | + search: { | |
| 114 | + middlewares: [retainSearchParams(true)], | |
| 115 | + }, | |
| 113 | 116 | component: ChatThreadRouteView, |
| 114 | 117 | }); |