Openstatus www.openstatus.dev
at main 30 lines 733 B view raw
1"use client"; 2 3import { Button } from "@/components/ui/button"; 4import { useCopyToClipboard } from "@/hooks/use-copy-to-clipboard"; 5import { cn } from "@/lib/utils"; 6import { Check, Copy } from "lucide-react"; 7 8export function ButtonCopyLink({ 9 className, 10 ...props 11}: React.ComponentProps<typeof Button>) { 12 const { copy, isCopied } = useCopyToClipboard(); 13 14 return ( 15 <Button 16 variant="outline" 17 size="icon" 18 onClick={() => 19 copy(window.location.href, { 20 successMessage: "Link copied to clipboard", 21 }) 22 } 23 className={cn("size-8", className)} 24 {...props} 25 > 26 {isCopied ? <Check /> : <Copy />} 27 <span className="sr-only">Copy Link</span> 28 </Button> 29 ); 30}