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 @@
1import { ThreadId } from "@t3tools/contracts";1import { ThreadId } from "@t3tools/contracts";
2import { createFileRoute, useNavigate } from "@tanstack/react-router";2import { createFileRoute, retainSearchParams, useNavigate } from "@tanstack/react-router";
3import { Suspense, lazy, type ReactNode, useCallback, useEffect } from "react";3import { Suspense, lazy, type ReactNode, useCallback, useEffect } from "react";
4 4
5import ChatView from "../components/ChatView";5import ChatView from "../components/ChatView";
6import { useComposerDraftStore } from "../composerDraftStore";6import { useComposerDraftStore } from "../composerDraftStore";
7import { parseDiffRouteSearch, stripDiffSearchParams } from "../diffRouteSearch";7import {
8 type DiffRouteSearch,
9 parseDiffRouteSearch,
10 stripDiffSearchParams,
11} from "../diffRouteSearch";
8import { useMediaQuery } from "../hooks/useMediaQuery";12import { useMediaQuery } from "../hooks/useMediaQuery";
9import { useStore } from "../store";13import { useStore } from "../store";
10import { Sheet, SheetPopup } from "../components/ui/sheet";14import { Sheet, SheetPopup } from "../components/ui/sheet";
@@ -224,5 +228,8 @@ function ChatThreadRouteView() { · 213 unmodified lines
224 228
225export const Route = createFileRoute("/_chat/$threadId")({229export const Route = createFileRoute("/_chat/$threadId")({
226 validateSearch: (search) => parseDiffRouteSearch(search),230 validateSearch: (search) => parseDiffRouteSearch(search),
231 search: {
232 middlewares: [retainSearchParams<DiffRouteSearch>(["diff"])],
233 },
227 component: ChatThreadRouteView,234 component: ChatThreadRouteView,
228});235});