fix: Reduce ineffective triggering of the clipboard (#65)

This commit is contained in:
Jared Palmer 2023-06-21 08:08:00 -07:00 committed by GitHub
commit 17cba5d7b4
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 17 additions and 11 deletions

View file

@ -18,6 +18,11 @@ export function ChatMessageActions({
}: ChatMessageActionsProps) {
const { isCopied, copyToClipboard } = useCopyToClipboard({ timeout: 2000 })
const onCopy = () => {
if (isCopied) return
copyToClipboard(message.content)
}
return (
<div
className={cn(
@ -26,11 +31,7 @@ export function ChatMessageActions({
)}
{...props}
>
<Button
variant="ghost"
size="icon"
onClick={() => copyToClipboard(message.content)}
>
<Button variant="ghost" size="icon" onClick={onCopy}>
{isCopied ? <IconCheck /> : <IconCopy />}
<span className="sr-only">Copy message</span>
</Button>

View file

@ -84,6 +84,11 @@ const CodeBlock: FC<Props> = memo(({ language, value }) => {
URL.revokeObjectURL(url)
}
const onCopy = () => {
if (isCopied) return
copyToClipboard(value)
}
return (
<div className="codeblock relative w-full bg-zinc-950 font-sans">
<div className="flex w-full items-center justify-between bg-zinc-800 px-6 py-2 pr-4 text-zinc-100">
@ -102,7 +107,7 @@ const CodeBlock: FC<Props> = memo(({ language, value }) => {
variant="ghost"
size="icon"
className="text-xs hover:bg-zinc-800 focus-visible:ring-1 focus-visible:ring-slate-700 focus-visible:ring-offset-0"
onClick={() => copyToClipboard(value)}
onClick={onCopy}
>
{isCopied ? <IconCheck /> : <IconCopy />}
<span className="sr-only">Copy code</span>