fix(frontend): handle clipboard fallback and markdown word export

This commit is contained in:
吉鑫升 committed 2026-07-03 16:54:16 +08:00
1 parent 195ef3ee40
commit db2f21191c
6 files changed
+86 -37

No files matched your search

@@ -1,7 +1,8 @@
"use client";
import { Button } from "@/components/ui/button";
import { cn } from "@/lib/utils";
import { Button } from "@/components/ui/button";
import { copyTextToClipboard } from "@/core/clipboard";
import { cn } from "@/lib/utils";
import { CheckIcon, CopyIcon } from "lucide-react";
import {
type ComponentProps,
@@ -144,18 +145,13 @@ export const CodeBlockCopyButton = ({
...props
}: CodeBlockCopyButtonProps) => {
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;
}
try {
await navigator.clipboard.writeText(code);
setIsCopied(true);
onCopy?.();
const { code } = useContext(CodeBlockContext);
const copyToClipboard = async () => {
try {
await copyTextToClipboard(code);
setIsCopied(true);
onCopy?.();
setTimeout(() => setIsCopied(false), timeout);
} catch (error) {
onError?.(error as Error);