banatie-service/apps/landing/src/components/admin/CopyButton.tsx

37 lines
856 B
TypeScript

'use client';
import { useState } from 'react';
interface CopyButtonProps {
text: string;
label?: string;
className?: string;
}
export default function CopyButton({ text, label = 'Copy', className = '' }: CopyButtonProps) {
const [copied, setCopied] = useState(false);
const handleCopy = async () => {
try {
await navigator.clipboard.writeText(text);
setCopied(true);
setTimeout(() => setCopied(false), 2000);
} catch (err) {
console.error('Failed to copy:', err);
}
};
return (
<button
onClick={handleCopy}
className={`px-4 py-2 text-sm font-medium rounded-lg transition-colors ${
copied
? 'bg-green-600 text-white'
: 'bg-slate-700 text-slate-200 hover:bg-slate-600'
} ${className}`}
>
{copied ? '✓ Copied!' : label}
</button>
);
}