useCopyToClipboard
Copy text to a user’s clipboard.
useCopyToClipboard wraps the Clipboard API to provide a convenient tuple of the last copied text and a copy function. This is a drop-in alias for useClipboard, so you can use whichever name fits your codebase conventions. See also useClipboard for full details.
When to Use
- Adding “copy to clipboard” functionality when you prefer the
useCopyToClipboardnaming convention - Migrating from other hook libraries that use this naming pattern
- Any scenario where
useClipboardapplies — the two hooks are interchangeable
Notes
- SSR-safe: Returns an empty string and a no-op function during server-side rendering. No
navigatoraccess occurs on the server. - Browser support: Requires the Clipboard API (supported in all modern browsers).
- Permissions: Some browsers require user permission for clipboard access. Use alongside
usePermissionto checkclipboard-readandclipboard-writestatus.
Usage
Live Editor
function Demo() { const [value, setValue] = useState(""); const [text, copy] = useCopyToClipboard(); const permissionRead = usePermission("clipboard-read"); const permissionWrite = usePermission("clipboard-write"); return ( <div> <p> Clipboard Permission: read <b>{permissionRead}</b> | write <b>{permissionWrite}</b> </p> <p> Current copied: <code>{text || "none"}</code> </p> <input value={value} onChange={(event) => { setValue(event.currentTarget.value); }} /> <button onClick={() => copy(value)}>Copy</button> </div> ); };
Result
API
useClipBoard
Returns
readonly [string, (txt: string) => Promise<void>]: Returns a readonly tuple.