Vercel/src/components/CopyButton.tsx
2025-02-15 22:50:10 -06:00

35 lines
724 B
TypeScript

import { BiCopy } from 'react-icons/bi';
import LoaderButton from './primitives/LoaderButton';
import clsx from 'clsx/lite';
import { toastSuccess } from '@/toast';
export default function CopyButton({
label,
text,
subtle,
className,
}: {
label: string
text?: string,
subtle?: boolean
className?: string
}) {
return (
<LoaderButton
icon={<BiCopy size={15} />}
className={clsx(
subtle && 'text-gray-300 dark:text-gray-700',
className,
)}
onClick={text
? () => {
navigator.clipboard.writeText(text);
toastSuccess(`${label} copied to clipboard`);
}
: undefined}
styleAs="link"
disabled={!text}
/>
);
}