authorgravatar for eggfriedricew.g.o@gmail.comeggfriedrice <eggfriedricew.g.o@gmail.com> 2026-03-11 01:42:39+00:00
committergravatar for noreply@github.comGitHub <noreply@github.com> 2026-03-10 18:42:39-07:00
log7ddcb239c5ce4031653afbc404a860ccf5606549
tree74aba465108181d0a713af054c0bab09fdf83e11
parent9e4e22197045a2d2ba7ba7d7813054e49234f6f1
signature Signed by PGP key B5690EEEBB952194

feat: persist diff panel state across thread navigation (#875)


1 files changed, 9 insertions(+), 2 deletions(-)

apps/web/src/routes/_chat.$threadId.tsx+9-2
......@@ -1,10 +1,14 @@
11import { ThreadId } from "@t3tools/contracts";
2import { createFileRoute, useNavigate } from "@tanstack/react-router";
2import { createFileRoute, retainSearchParams, useNavigate } from "@tanstack/react-router";
33import { Suspense, lazy, type ReactNode, useCallback, useEffect } from "react";
44
55import ChatView from "../components/ChatView";
66import { useComposerDraftStore } from "../composerDraftStore";
7import { parseDiffRouteSearch, stripDiffSearchParams } from "../diffRouteSearch";
7import {
8 type DiffRouteSearch,
9 parseDiffRouteSearch,
10 stripDiffSearchParams,
11} from "../diffRouteSearch";
812import { useMediaQuery } from "../hooks/useMediaQuery";
913import { useStore } from "../store";
1014import { Sheet, SheetPopup } from "../components/ui/sheet";
......@@ -224,5 +228,8 @@ function ChatThreadRouteView() {
224228
225229export const Route = createFileRoute("/_chat/$threadId")({
226230 validateSearch: (search) => parseDiffRouteSearch(search),
231 search: {
232 middlewares: [retainSearchParams<DiffRouteSearch>(["diff"])],
233 },
227234 component: ChatThreadRouteView,
228235});