aboutsummaryrefslogtreecommitdiffstats
path: root/client/js/app/src/app/pages/querybuilder/Components/Buttons/CopyResponseButton.jsx
diff options
context:
space:
mode:
Diffstat (limited to 'client/js/app/src/app/pages/querybuilder/Components/Buttons/CopyResponseButton.jsx')
-rw-r--r--client/js/app/src/app/pages/querybuilder/Components/Buttons/CopyResponseButton.jsx40
1 files changed, 40 insertions, 0 deletions
diff --git a/client/js/app/src/app/pages/querybuilder/Components/Buttons/CopyResponseButton.jsx b/client/js/app/src/app/pages/querybuilder/Components/Buttons/CopyResponseButton.jsx
new file mode 100644
index 00000000000..d01daa7b0d6
--- /dev/null
+++ b/client/js/app/src/app/pages/querybuilder/Components/Buttons/CopyResponseButton.jsx
@@ -0,0 +1,40 @@
+import React, { useContext, useState } from 'react';
+import OverlayImageButton from './OverlayImageButton';
+
+import copyImage from '../../assets/img/copy.svg';
+import { ResponseContext } from '../Contexts/ResponseContext';
+import { OverlayTrigger, Tooltip } from 'react-bootstrap';
+
+export default function CopyResponseButton() {
+ const { response } = useContext(ResponseContext);
+ const [show, setShow] = useState(false);
+
+ const handleCopy = () => {
+ setShow(true);
+ navigator.clipboard.writeText(response);
+ setTimeout(() => {
+ setShow(false);
+ }, 2000);
+ };
+
+ return (
+ <OverlayTrigger
+ placement="left-end"
+ show={show}
+ overlay={
+ <Tooltip id="copy-tooltip">Response copied to clipboard</Tooltip>
+ }
+ >
+ <span>
+ <OverlayImageButton
+ className="intro-copy"
+ image={copyImage}
+ height="30"
+ width="30"
+ tooltip="Copy"
+ onClick={handleCopy}
+ />
+ </span>
+ </OverlayTrigger>
+ );
+}