summaryrefslogtreecommitdiff
path: root/docs/src/components/codes/ToastyCopyToClipboard.jsx
blob: b0e9809233ca6b1dfa324d622d281afda55ffabd (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
/*
 * Copyright (c) 2020 The ZMK Contributors
 *
 * SPDX-License-Identifier: CC-BY-NC-SA-4.0
 */

import React from "react";
import PropTypes from "prop-types";
import { toast } from "react-toastify";
import { CopyToClipboard } from "react-copy-to-clipboard";

export default function ToastyCopyToClipboard({ children, text }) {
  const notify = () =>
    toast(
      <span>
        📋 Copied <code>{text}</code>
      </span>
    );
  return (
    <div onClick={notify}>
      <CopyToClipboard text={text}>{children}</CopyToClipboard>
    </div>
  );
}

ToastyCopyToClipboard.propTypes = {
  children: PropTypes.oneOfType([PropTypes.element, PropTypes.string])
    .isRequired,
  text: PropTypes.string.isRequired,
};