History

fix: retain diff search params when navigating between threads

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.

Cursor Agent committed 8 months ago

Commit da1cd331 parent 8a72a2a1 file · +4 −1Browse files

Unified · Split

apps/web/src/routes/_chat.$threadId.tsx+4−1
@@ -1,4 +1,4 @@
1import { createFileRoute, useNavigate } from "@tanstack/react-router";1import { createFileRoute, retainSearchParams, useNavigate } from "@tanstack/react-router";
2import { Activity, Suspense, lazy, type ReactNode, useCallback, useEffect } from "react";2import { Activity, Suspense, lazy, type ReactNode, useCallback, useEffect } from "react";
3 3
4import ChatView from "../components/ChatView";4import ChatView from "../components/ChatView";
@@ -110,5 +110,8 @@ function ChatThreadRouteView() { · 105 unmodified lines
110 110
111export const Route = createFileRoute("/_chat/$threadId")({111export const Route = createFileRoute("/_chat/$threadId")({
112 validateSearch: (search) => parseDiffRouteSearch(search),112 validateSearch: (search) => parseDiffRouteSearch(search),
113 search: {
114 middlewares: [retainSearchParams(true)],
115 },
113 component: ChatThreadRouteView,116 component: ChatThreadRouteView,
114});117});