Use Copy to Clipboard
openstatus/use-copy-to-clipboardFreeHook
React hook for copying text to clipboard with toast notifications
Install it
npx shadcn@latest add https://openstatus.dev/r/use-copy-to-clipboard.jsonSource
1"use client";23import { useCallback, useState } from "react";4import { toast } from "sonner";56export function useCopyToClipboard() {7 const [text, setText] = useState<string | null>(null);89 const copy = useCallback(10 async (11 text: string,12 {13 timeout = 3000,14 withToast = false,15 successMessage = "Copied to clipboard",16 }: {17 timeout?: number;18 withToast?: boolean | string;19 successMessage?: string;20 },21 ) => {22 if (!navigator?.clipboard) {23 console.warn("Clipboard not supported");24 return false;25 }2627 try {28 await navigator.clipboard.writeText(text);29 setText(text);3031 if (timeout) {32 setTimeout(() => {33 setText(null);34 }, timeout);35 }3637 if (withToast) {38 if (typeof withToast === "string") {39 toast.success(withToast);40 } else {41 toast.success(successMessage);42 }43 }4445 return true;46 } catch (error) {47 console.warn("Copy failed", error);48 setText(null);49 return false;50 }51 },52 [],53 );5455 return { text, copy, isCopied: text !== null };56}
What it pulls in
Other registry items
Files it writes
More from openstatus
All 26 items| Component | Registry | Kind | Access | Installs | Command |
|---|---|---|---|---|---|
| Use Media Queryuse-media-query | openstatus | Hooks | Free | no deps |
