@custom-react-hooks/use-clipboard
TypeScript icon, indicating that this package has built-in type declarations

1.5.1 • Public • Published

useClipboard Hook

useClipboard is a React hook that provides an interface for copying to and pasting from the user's clipboard. It uses the modern Clipboard API for improved performance and flexibility.

Features

  • Copy and Paste: Offers methods to both copy text to and paste text from the clipboard.
  • Asynchronous API: Uses promise-based Clipboard API methods for non-blocking operations.
  • Status and Error Reporting: Returns the status of clipboard operations and any error messages.
  • Server-Side Rendering Compatibility: Checks for the availability of the Clipboard API, ensuring the hook does not break in a server-side rendering context.

Installation

Choose and install individual hooks that suit your project needs, or install the entire collection for a full suite of utilities.

Installing Only Current Hooks

npm install @custom-react-hooks/use-clipboard

or

yarn add @custom-react-hooks/use-clipboard

Installing All Hooks

npm install @custom-react-hooks/all

or

yarn add @custom-react-hooks/all

Importing the Hook

The useClipboard hook must be imported using a named import as shown below:

Named Import:

import { useClipboard } from '@custom-react-hooks/use-clipboard';

This approach ensures that the hook integrates seamlessly into your project, maintaining consistency and predictability in how you use our package.

Usage

import React, { useState } from 'react';
import { useClipboard } from '@custom-react-hooks/use-clipboard';

const ClipboardComponent = () => {
  const { copyToClipboard, pasteFromClipboard, state } = useClipboard();
  const [textToCopy, setTextToCopy] = useState('');
  const [pastedText, setPastedText] = useState('');

  const handleCopy = async () => {
    await copyToClipboard(textToCopy);
  };

  const handlePaste = async () => {
    const text = await pasteFromClipboard();
    setPastedText(text);
  };

  return (
    <div>
      <input
        type="text"
        value={textToCopy}
        onChange={(e) => setTextToCopy(e.target.value)}
        placeholder="Text to copy"
      />
      <button onClick={handleCopy}>Copy to Clipboard</button>
      <button onClick={handlePaste}>Paste from Clipboard</button>

      {state.success && <p>Operation successful!</p>}
      {state.error && <p>Error: {state.error}</p>}

      <p>Pasted Text: {pastedText}</p>
    </div>
  );
};

export default ClipboardComponent;

This example demonstrates how to use the useClipboard hook to copy text to and paste text from the clipboard using buttons.

API Reference

Parameters

  • copyToClipboard(text: string): An asynchronous function to copy the provided text to the clipboard.
  • pasteFromClipboard(): An asynchronous function to paste the text from the clipboard.

Returns

  • success: A boolean indicating if the last operation was successful.
  • error: A string containing an error message if the operation failed.

Use Cases

  • Copy to Clipboard: Copy text like URLs, codes, or user-generated content to the clipboard.
  • Paste from Clipboard: Retrieve and use data from the clipboard, useful in form fields or for data import.
  • Clipboard Integration in Editors: Use in text editors or note-taking apps for enhanced clipboard interactions.
  • Sharing Content: Enable users to easily copy shareable content or links to their clipboard.
  • Data Export/Import: Simplify copying and pasting data for export/import operations within an application.

Contributing

We encourage contributions to enhance useClipboard. For bugs, feature requests, or pull requests, please reach out through the project's repository.

/@custom-react-hooks/use-clipboard/

    Package Sidebar

    Install

    npm i @custom-react-hooks/use-clipboard

    Weekly Downloads

    1,061

    Version

    1.5.1

    License

    MIT

    Unpacked Size

    12.7 kB

    Total Files

    8

    Last publish

    Collaborators

    • djkepa