403Webshell
Server IP : 66.29.132.124  /  Your IP : 18.227.140.100
Web Server : LiteSpeed
System : Linux business141.web-hosting.com 4.18.0-553.lve.el8.x86_64 #1 SMP Mon May 27 15:27:34 UTC 2024 x86_64
User : wavevlvu ( 1524)
PHP Version : 7.4.33
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /home/wavevlvu/diixadigital.com/wp-content/plugins/jetpack/extensions/shared/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /home/wavevlvu/diixadigital.com/wp-content/plugins/jetpack/extensions/shared/use-ref-interval.ts
import { useCallback, useEffect, useRef } from '@wordpress/element';

interface RafHandle {
	id: number;
}

const setRafInterval = ( callback: () => void, timeout: number = 0 ) => {
	const interval = timeout < 0 ? 0 : timeout;
	const handle: RafHandle = {
		id: 0,
	};

	let startTime = Date.now();

	const loop = () => {
		const nowTime = Date.now();
		if ( nowTime - startTime >= interval ) {
			startTime = nowTime;
			callback();
		}

		handle.id = requestAnimationFrame( loop );
	};

	handle.id = requestAnimationFrame( loop );

	return handle;
};

const clearRafInterval = ( handle?: RafHandle | null ) => {
	if ( handle ) {
		cancelAnimationFrame( handle.id );
	}
};

/**
 * Invoke a function on an interval that uses requestAnimationFrame.
 *
 * @param {Function} callback - Function to invoke
 * @param {number}   timeout  - Interval timout in MS.
 *
 * @return {Function} Function to clear the interval.
 */
const useRafInterval = ( callback: () => void, timeout = 0 ) => {
	const timerRef = useRef< RafHandle >();

	const callbackRef = useRef( callback );
	callbackRef.current = callback;

	useEffect( () => {
		timerRef.current = setRafInterval( () => {
			callbackRef.current();
		}, timeout );

		return () => {
			clearRafInterval( timerRef.current );
		};
	}, [ timeout ] );

	const clear = useCallback( () => {
		clearRafInterval( timerRef.current );
	}, [] );

	return clear;
};

export default useRafInterval;

Youez - 2016 - github.com/yon3zu
LinuXploit