import { useState } from 'react';interface ISingleAndDoubleState { delay?: number; click: (...args: any) => void; dbclick?: (...args: any) => void;}const useSingleAndDoubleClick = (state: ISingleAndDoubleState) => { const { delay = 250, click, dblclick } = state ?? {}; const timerRef = useRef<number | null>(null); const countRef = useRef(0); const onClick = useCallback((...args) => { clearTimeout(timerRef.current); timerRef.current = setTimeout(() => { if (countRef.current === 1) { click?.(...args); } }, delay); }, [delay, click]); const onDoubleClick = useCallback((...args) => { clearTimeout(timerRef.current); dblclick?.(...args); }, [dblclick]); return { onClick, onDoubleClick } as const;}export default useSingleAndDoubleClick;