Server IP : 192.158.238.246 / Your IP : 3.15.7.155 Web Server : LiteSpeed System : Linux uniform.iwebfusion.net 4.18.0-553.27.1.lve.1.el8.x86_64 #1 SMP Wed Nov 20 15:58:00 UTC 2024 x86_64 User : jenniferflocom ( 1321) PHP Version : 8.1.32 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : OFF | Pkexec : OFF Directory : /proc/7779/cwd/plugins/code-snippets/js/components/common/ |
Upload File : |
import React, { useState } from 'react' import { handleUnknownError } from '../../utils/errors' import type { HTMLAttributes, MouseEventHandler} from 'react' const TIMEOUT = 3000 export interface CopyToClipboardButtonProps extends HTMLAttributes<HTMLAnchorElement> { text: string copyIcon?: string successIcon?: string timeout?: number } export const CopyToClipboardButton: React.FC<CopyToClipboardButtonProps> = ({ text, copyIcon = 'clipboard', successIcon = 'yes', ...props }) => { const [isSuccess, setIsSuccess] = useState(false) const clipboard = window.navigator.clipboard as Clipboard | undefined const clickHandler: MouseEventHandler<HTMLAnchorElement> = event => { event.preventDefault() clipboard?.writeText(text) .then(() => { setIsSuccess(true) setTimeout(() => setIsSuccess(false), TIMEOUT) }) .catch(handleUnknownError) } return clipboard ? <a href="#" className={`code-snippets-copy-text dashicons dashicons-${isSuccess ? successIcon : copyIcon}`} onClick={clickHandler} {...props} ></a> : null }