30 lines
722 B
JavaScript
30 lines
722 B
JavaScript
/*
|
|
* 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,
|
|
};
|