mirror of
https://github.com/beilunyang/moemail.git
synced 2025-09-27 03:46:03 +08:00
19 lines
388 B
TypeScript
19 lines
388 B
TypeScript
import { useCallback, useRef } from 'react'
|
|
|
|
export function useThrottle<T extends (...args: any[]) => void>(
|
|
fn: T,
|
|
delay: number
|
|
): T {
|
|
const lastRun = useRef(Date.now())
|
|
|
|
return useCallback(
|
|
((...args) => {
|
|
const now = Date.now()
|
|
if (now - lastRun.current >= delay) {
|
|
fn(...args)
|
|
lastRun.current = now
|
|
}
|
|
}) as T,
|
|
[fn, delay]
|
|
)
|
|
}
|