import { memo, useState } from "react" import { VSCodeButton } from "@vscode/webview-ui-toolkit/react" import { useCopyToClipboard } from "@src/utils/clipboard" import { StandardTooltip } from "@src/components/ui" import MarkdownBlock from "../common/MarkdownBlock" export const Markdown = memo(({ markdown, partial }: { markdown?: string; partial?: boolean }) => { const [isHovering, setIsHovering] = useState(false) // Shorter feedback duration for copy button flash. const { copyWithFeedback } = useCopyToClipboard(200) if (!markdown || markdown.length === 0) { return null } return (
setIsHovering(true)} onMouseLeave={() => setIsHovering(false)} style={{ position: "relative" }}>
{markdown && !partial && isHovering && (
{ const success = await copyWithFeedback(markdown) if (success) { const button = document.activeElement as HTMLElement if (button) { button.style.background = "var(--vscode-button-background)" setTimeout(() => { button.style.background = "" }, 200) } } }}>
)}
) })