mirror of
https://github.com/vitodeploy/vito.git
synced 2025-07-01 05:56:16 +00:00
31 lines
1003 B
TypeScript
31 lines
1003 B
TypeScript
import React, { useState } from 'react';
|
|
import { Tooltip, TooltipContent, TooltipTrigger } from '@/components/ui/tooltip';
|
|
import { Badge } from '@/components/ui/badge';
|
|
|
|
export default function CopyableBadge({ text }: { text: string }) {
|
|
const [copySuccess, setCopySuccess] = useState(false);
|
|
const copyToClipboard = () => {
|
|
navigator.clipboard.writeText(text).then(() => {
|
|
setCopySuccess(true);
|
|
setTimeout(() => {
|
|
setCopySuccess(false);
|
|
}, 2000);
|
|
});
|
|
};
|
|
|
|
return (
|
|
<Tooltip>
|
|
<TooltipTrigger asChild>
|
|
<div className="inline-flex cursor-pointer justify-start space-x-2 truncate" onClick={copyToClipboard}>
|
|
<Badge variant={copySuccess ? 'success' : 'outline'} className="block max-w-[200px] overflow-ellipsis">
|
|
{text}
|
|
</Badge>
|
|
</div>
|
|
</TooltipTrigger>
|
|
<TooltipContent side="top">
|
|
<span className="flex items-center space-x-2">Copy</span>
|
|
</TooltipContent>
|
|
</Tooltip>
|
|
);
|
|
}
|