Something went wrong. Try again.
[READ-ONLY] Mirror of https://github.com/openstatusHQ/openstatus. ๐ซ Status page with uptime monitoring & API monitoring as code ๐ซ openstatus.dev
bun drizzle-orm monitoring monitoring-as-code nextjs observability on-call open-source shadcn-ui status-page statuspage synthetic-monitoring tinybird turso uptime uptime-checker uptime-monitor
Something went wrong. Try again.
884 B ยท 33 lines
TSX
12345678910111213141516171819202122232425262728293031323334"use client";
import { Check, Copy } from "@openstatus/icons";import { Button } from "@openstatus/ui/components/ui/button";import { useCopyToClipboard } from "@openstatus/ui/hooks/use-copy-to-clipboard";import { cn } from "@openstatus/ui/lib/utils";import { useExtracted } from "next-intl";
export function ButtonCopyLink({ className, ...props}: React.ComponentProps<typeof Button>) { const t = useExtracted(); const { copy, isCopied } = useCopyToClipboard();
return ( <Button variant="outline" size="icon" onClick={() => copy(window.location.href, { successMessage: t("Link copied to clipboard"), withToast: true, }) } className={cn("size-8", className)} {...props} > {isCopied ? <Check /> : <Copy />} <span className="sr-only">{t("Copy Link")}</span> </Button> );}