import { ComponentProps, PropsWithChildren } from 'react'; import clsx from 'clsx'; import { Check, Copy } from 'lucide-react'; import { Icon } from '@@/Icon'; import { Button } from '../Button'; import styles from './CopyButton.module.css'; import { useCopy } from './useCopy'; export interface Props { copyText: string; fadeDelay?: number; displayText?: string; className?: string; color?: ComponentProps['color']; indicatorPosition?: 'left' | 'right'; } export function CopyButton({ copyText, fadeDelay = 1000, displayText = 'copied', className, color, indicatorPosition = 'right', children, }: PropsWithChildren) { const { handleCopy, copiedSuccessfully } = useCopy(copyText, fadeDelay); function copiedIndicator() { return ( {displayText && {displayText}} ); } return (
{indicatorPosition === 'left' && copiedIndicator()} {indicatorPosition === 'right' && copiedIndicator()}
); }