Spaces:
Running
Running
| 'use client'; | |
| import * as React from 'react'; | |
| export interface useCopyToClipboardProps { | |
| timeout?: number; | |
| } | |
| export function useCopyToClipboard({ | |
| timeout = 2000, | |
| }: useCopyToClipboardProps) { | |
| const [isCopied, setIsCopied] = React.useState<Boolean>(false); | |
| const copyToClipboard = (value: string) => { | |
| if (typeof window === 'undefined' || !navigator.clipboard?.writeText) { | |
| return; | |
| } | |
| if (!value) { | |
| return; | |
| } | |
| navigator.clipboard.writeText(value).then(() => { | |
| setIsCopied(true); | |
| setTimeout(() => { | |
| setIsCopied(false); | |
| }, timeout); | |
| }); | |
| }; | |
| return { isCopied, copyToClipboard }; | |
| } | |