Openstatus
www.openstatus.dev
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}