Skip to content

cham11ng/react-copy-button

Folders and files

NameName
Last commit message
Last commit date

Latest commit

1c186ef Β· Oct 1, 2023
Oct 1, 2023
Jul 1, 2022
Oct 1, 2023
Oct 31, 2022
Jul 1, 2022
Sep 4, 2018
Jul 1, 2022
Jul 1, 2022
Sep 4, 2018
Jul 1, 2022
Oct 1, 2023
Oct 1, 2023
Oct 1, 2023
Jul 1, 2022
Oct 1, 2023

Repository files navigation

react-copy-button

Copy to clipboard react button component. Demo: https://cham11ng.github.io/react-copy-button/

NPM JavaScript Style Guide Deployment Status

Install

yarn add react-copy-button
or
bun install react-copy-button

Usage

// Functional Component with useRef hook.
import React from 'react';
import { useRef } from 'react';
import { useState } from 'react';

function App() {
  const imageRef = useRef();
  const url =
    'https://upload.wikimedia.org/wikipedia/commons/thumb/a/a7/React-icon.svg/2000px-React-icon.svg.png';

  return (
    <React.Fragment>
      <div ref={imageRef}>
        <img src={url} />
      </div>
      <CopyButton imageRef={imageRef}>Copy Image</CopyButton>

      <CopyButton text="Text to copy">Copy Text</CopyButton>
      <CopyButton imageURL={url}>Copy Image (New)</CopyButton>
    </React.Fragment>
  );
}

// Class Component
import * as React from 'react';

import CopyButton from 'react-copy-button';

const url =
  'https://upload.wikimedia.org/wikipedia/commons/thumb/a/a7/React-icon.svg/2000px-React-icon.svg.png';

class Example extends React.Component {
  constructor(props) {
    super(props);

    this.imageRef = React.createRef();
  }

  render() {
    return (
      <React.Fragment>
        <div ref={this.imageRef}>
          <img src={url} />
        </div>
        <CopyButton imageRef={this.imageRef}>Copy Image</CopyButton>

        <CopyButton text="Text to copy">Copy Text</CopyButton>
        <CopyButton imageURL={url}>Copy Image (New)</CopyButton>
      </React.Fragment>
    );
  }
}

Development

# Package
$ bun install

$ bun link

$ bun start

$ bun run build

# Example

$ cd example

$ bun install

$ bun start

$ bun run build

Release and Publish

$ gh release create 0.2.1 --generate-notes --prerelease

$ bun publish

Browser compatibility

  • execCommand here.
  • Navigator.clipboard here.

License

MIT Β© cham11ng