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 }; | |
} | |