From e5c0e9d584ef22cf853dbae5157559057d558dba Mon Sep 17 00:00:00 2001 From: MT-Mint <798521692@qq.com> Date: Sat, 11 Apr 2026 10:21:29 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E5=89=AA=E8=B4=B4?= =?UTF-8?q?=E6=9D=BF=E6=B2=A1=E6=9C=89=E7=BB=9F=E4=B8=80=E4=BD=BF=E7=94=A8?= =?UTF-8?q?copyToClipboard=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- frontend/src/components/ai-elements/code-block.tsx | 13 ++++--------- frontend/src/components/workspace/copy-button.tsx | 13 +++++++++---- .../components/workspace/messages/message-group.tsx | 2 +- .../src/components/workspace/recent-chat-list.tsx | 3 ++- 4 files changed, 16 insertions(+), 15 deletions(-) diff --git a/frontend/src/components/ai-elements/code-block.tsx b/frontend/src/components/ai-elements/code-block.tsx index c0460238..00ebe45a 100644 --- a/frontend/src/components/ai-elements/code-block.tsx +++ b/frontend/src/components/ai-elements/code-block.tsx @@ -1,7 +1,7 @@ "use client"; import { Button } from "@/components/ui/button"; -import { cn } from "@/lib/utils"; +import { cn, copyToClipboard } from "@/lib/utils"; import { CheckIcon, CopyIcon } from "lucide-react"; import { type ComponentProps, @@ -146,14 +146,9 @@ export const CodeBlockCopyButton = ({ const [isCopied, setIsCopied] = useState(false); const { code } = useContext(CodeBlockContext); - const copyToClipboard = async () => { - if (typeof window === "undefined" || !navigator?.clipboard?.writeText) { - onError?.(new Error("Clipboard API not available")); - return; - } - + const handleCopyClick = async () => { try { - await navigator.clipboard.writeText(code); + await copyToClipboard(code); setIsCopied(true); onCopy?.(); setTimeout(() => setIsCopied(false), timeout); @@ -167,7 +162,7 @@ export const CodeBlockCopyButton = ({ return (