Spaces:
Sleeping
Sleeping
'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 } | |
} | |