Skip to content

Commit 6baa2ac

Browse files
authored
Improve copy functionality and remove unnecessary async usage (#2)
1 parent 1400760 commit 6baa2ac

File tree

2 files changed

+12
-4
lines changed

2 files changed

+12
-4
lines changed

resources/js/Hooks/useCopy.ts

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,26 @@
1-
import { useState } from 'react'
1+
import { useRef, useState } from 'react'
22
import { useCopyToClipboard } from 'react-use'
33

44
export function useCopy() {
55
const [state, copyToClipboard] = useCopyToClipboard()
66

77
const [copied, setCopied] = useState(false)
88

9+
const timeoutRef = useRef<number | null>(null)
10+
911
function copyText(text: string) {
12+
setCopied(false)
13+
14+
if (timeoutRef.current) {
15+
clearTimeout(timeoutRef.current)
16+
}
17+
1018
copyToClipboard(text)
1119

1220
if (state.value === text) {
1321
setCopied(true)
1422

15-
setTimeout(() => {
23+
timeoutRef.current = window.setTimeout(() => {
1624
setCopied(false)
1725
}, 2000)
1826
}

resources/js/Pages/Account/Partials/TwoFactorForm.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -329,9 +329,9 @@ export function TwoFactorRecoveryCodesDialog({ show }: { show?: boolean }) {
329329
}
330330
}, [show])
331331

332-
async function handleCopyClick() {
332+
function handleCopyClick() {
333333
if (recoveryCodes) {
334-
await copyText(recoveryCodes.join('\n'))
334+
copyText(recoveryCodes.join('\n'))
335335
}
336336
}
337337

0 commit comments

Comments
 (0)