import {faCopy} from '@fortawesome/free-solid-svg-icons'; import {FontAwesomeIcon} from '@fortawesome/react-fontawesome'; import React, {MouseEvent, useEffect, useState} from 'react'; import {copyToClipboard} from "../../util"; import RoundedButton from './RoundedButton'; type Props = { value: string; className?: string; alwaysVisible?: boolean; direction?: 'left' | 'right' | 'bottom'; outside?: boolean; children?: React.ReactNode; } export default function CopyButton({ value, className = '', alwaysVisible = false, direction = 'right', outside = false, children }: Props) { const [copied, setCopied] = useState(false); useEffect(() => { let timeout: number; if (copied) { timeout = window.setTimeout(() => setCopied(false), 3000); } return () => window.clearTimeout(timeout); }, [copied]); function copy(event: MouseEvent) { event.preventDefault(); copyToClipboard(value); setCopied(true); } return (
setCopied(false)} > Copied!
)}