From 7ddcb239c5ce4031653afbc404a860ccf5606549 Mon Sep 17 00:00:00 2001 From: eggfriedrice Date: Wed, 11 Mar 2026 01:42:39 +0000 Subject: [PATCH] feat: persist diff panel state across thread navigation (#875) --- apps/web/src/routes/_chat.$threadId.tsx | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/apps/web/src/routes/_chat.$threadId.tsx b/apps/web/src/routes/_chat.$threadId.tsx index 57b8ad43b5d3d5179885a1330aca663104b6b65a..b85aeab0d9b09ec3685a99ee5d197374364a4ee4 100644 --- a/apps/web/src/routes/_chat.$threadId.tsx +++ b/apps/web/src/routes/_chat.$threadId.tsx @@ -1,10 +1,14 @@ import { ThreadId } from "@t3tools/contracts"; -import { createFileRoute, useNavigate } from "@tanstack/react-router"; +import { createFileRoute, retainSearchParams, useNavigate } from "@tanstack/react-router"; import { Suspense, lazy, type ReactNode, useCallback, useEffect } from "react"; import ChatView from "../components/ChatView"; import { useComposerDraftStore } from "../composerDraftStore"; -import { parseDiffRouteSearch, stripDiffSearchParams } from "../diffRouteSearch"; +import { + type DiffRouteSearch, + parseDiffRouteSearch, + stripDiffSearchParams, +} from "../diffRouteSearch"; import { useMediaQuery } from "../hooks/useMediaQuery"; import { useStore } from "../store"; import { Sheet, SheetPopup } from "../components/ui/sheet"; @@ -224,5 +228,8 @@ function ChatThreadRouteView() { export const Route = createFileRoute("/_chat/$threadId")({ validateSearch: (search) => parseDiffRouteSearch(search), + search: { + middlewares: [retainSearchParams(["diff"])], + }, component: ChatThreadRouteView, }); -- 2.54.0