Files
omnivore/packages/web/lib/hooks/useCopyLink.tsx
Jackson Harper dd8f913cdd Warnings cleanup
2024-02-16 12:25:45 +08:00

24 lines
603 B
TypeScript

import { useCallback, useState } from 'react'
export const useCopyLink = (
url?: string,
type?: string
): {
link: string | undefined
copyLink: () => Promise<void>
isLinkCopied: boolean
} => {
const [isLinkCopied, setIsLinkCopied] = useState(false)
const link =
url || (typeof window !== 'undefined' ? window.location.toString() : '')
const copyLink = useCallback(async (): Promise<void> => {
await navigator.clipboard.writeText(link)
setIsLinkCopied(true)
window.setTimeout(() => setIsLinkCopied(false), 5000)
}, [link])
return { link, copyLink, isLinkCopied }
}