From accaaad8f1bbfa7ac0a765d46fe195aa1bd9a3c2 Mon Sep 17 00:00:00 2001 From: 134 Date: Wed, 8 Jul 2026 22:42:41 +0800 Subject: [PATCH] fix: avoid route refresh when switching claw history --- components/canvas/CanvasChatPanel.tsx | 16 +++++----------- 1 file changed, 5 insertions(+), 11 deletions(-) diff --git a/components/canvas/CanvasChatPanel.tsx b/components/canvas/CanvasChatPanel.tsx index a20bc46e5..a95e017c3 100644 --- a/components/canvas/CanvasChatPanel.tsx +++ b/components/canvas/CanvasChatPanel.tsx @@ -4,7 +4,7 @@ import { useChat } from "@ai-sdk/react"; import { DefaultChatTransport } from "ai"; import { useEffect, useRef, useState, useCallback, useMemo, type ClipboardEvent as ReactClipboardEvent, type DragEvent as ReactDragEvent, type MouseEvent as ReactMouseEvent } from "react"; import { useSession } from "next-auth/react"; -import { usePathname, useRouter, useSearchParams } from "next/navigation"; +import { useSearchParams } from "next/navigation"; import { createPortal } from "react-dom"; import type { DetailUiProtocol } from "@/lib/detail-ui-protocol"; import type { DetailUiScreenReviewPatch } from "@/lib/detail-ui-protocol"; @@ -2148,8 +2148,6 @@ export function CanvasChatPanel({ ); const effectiveAgentEnabled = agentEnabled && !isVideoWorkspace; const { data: session } = useSession(); - const router = useRouter(); - const pathname = usePathname(); const searchParams = useSearchParams(); const requestedChatSessionId = useMemo( () => normalizeCanvasChatSessionId(searchParams.get(CANVAS_CHAT_QUERY_PARAM)), @@ -2296,15 +2294,11 @@ export function CanvasChatPanel({ const normalized = normalizeCanvasChatSessionId(sessionId); if (!normalized || typeof window === "undefined") return; - const params = new URLSearchParams(window.location.search); - params.set(CANVAS_CHAT_QUERY_PARAM, normalized); - const query = params.toString(); - const hash = window.location.hash || ""; - router.replace(`${pathname}${query ? `?${query}` : ""}${hash}`, { - scroll: false, - }); + const url = new URL(window.location.href); + url.searchParams.set(CANVAS_CHAT_QUERY_PARAM, normalized); + window.history.replaceState(window.history.state, "", url); }, - [pathname, router] + [] ); // πŸ†• ζ ‡η­Ύζ‚¬εœι’„θ§ˆηŠΆζ€