Docs
useCopyToClipboard

Use the useCopyToClipboard hook to copy text to the clipboard and track whether the copy action was successful, with an optional delay to reset the copied state.

Loading...

Installation

pnpm dlx shadcn@latest add https://usekit.kiron.dev/k/use-copy-to-clipboard

Usage

"use client"
 
import { useCopyToClipboard } from "@/hooks/use-copy-to-clipboard"
import { Button } from "@/components/ui/button"
 
export function Component() {
  const [copy, isCopied] = useCopyToClipboard()
 
  const copyText = async (text: string) => {
    await copy(text)
      .then(() => {
        toast.success("Copied to clipboard")
      })
      .catch((error) => {
        if (error instanceof Error) {
          toast.error(error.message)
        }
      })
  }
 
  return (
    <Button onClick={() => copyText("Hello, World!")}>
      {isCopied ? "Text Copied" : "Click to copy"}
    </Button>
  )
}

API Reference

Parameters

NameTypeDescriptionDefault ValueOptional
delaynumberTime in milliseconds to reset isCopied.2000Yes

Return Values

IndexTypeDescription
0(text: string) => Promise<boolean>Function to copy text to the clipboard.
1booleanIndicates if the last copy was successful, resetting after the delay.