History

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

eggfriedrice committed 8 months ago

Commit 7ddcb231 parent 9e4e2211 file · +9 −2Browse files

Unified · Split

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