Files
blitzkit/packages/website/src/components/CopyButton.tsx
T

27 lines
696 B
TypeScript
Raw Normal View History

2024-09-14 19:43:14 -05:00
import { Button, type ButtonProps, Tooltip } from '@radix-ui/themes';
2024-08-11 12:44:16 -05:00
import { useState } from 'react';
interface CopyButtonProps extends ButtonProps {
copy: () => string | undefined;
}
export function CopyButton({ copy, ...props }: CopyButtonProps) {
const [tooltipOpen, setTooltipOpen] = useState(false);
return (
<Tooltip open={tooltipOpen} content="Copied!">
<Button
{...props}
onClick={() => {
const content = copy();
if (content === undefined) return;
navigator.clipboard.writeText(content);
setTooltipOpen(true);
setTimeout(() => setTooltipOpen(false), 2000);
}}
/>
</Tooltip>
);
}