20 lines · 627 B · TypeScript
RawDownload
import { memo } from "react";import { CopyIcon, CheckIcon } from "lucide-react";import { Button } from "../ui/button";import { useCopyToClipboard } from "~/hooks/useCopyToClipboard"; export const MessageCopyButton = memo(function MessageCopyButton({ text }: { text: string }) {  const { copyToClipboard, isCopied } = useCopyToClipboard();   return (    <Button      type="button"      size="xs"      variant="outline"      onClick={() => copyToClipboard(text)}      title="Copy message"    >      {isCopied ? <CheckIcon className="size-3 text-success" /> : <CopyIcon className="size-3" />}    </Button>  );});