mirror of
				https://gitlab.nic.cz/turris/reforis/foris-js.git
				synced 2025-11-03 23:00:31 +01:00 
			
		
		
		
	Resolve "Increment/decrement value in NumberInput when +/- button is kept pushed."
This commit is contained in:
		
							
								
								
									
										20
									
								
								src/utils/hooks.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										20
									
								
								src/utils/hooks.js
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,20 @@
 | 
			
		||||
/*
 | 
			
		||||
 * Copyright (C) 2019 CZ.NIC z.s.p.o. (http://www.nic.cz/)
 | 
			
		||||
 *
 | 
			
		||||
 * This is free software, licensed under the GNU General Public License v3.
 | 
			
		||||
 * See /LICENSE for more information.
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
import { useState, useEffect } from "react";
 | 
			
		||||
 | 
			
		||||
/** Execute callback when condition is set to true. */
 | 
			
		||||
export function useConditionalTimeout({ callback, timeout = 125 }, ...callbackArgs) {
 | 
			
		||||
    const [condition, setCondition] = useState(false);
 | 
			
		||||
    useEffect(() => {
 | 
			
		||||
        if (condition) {
 | 
			
		||||
            const interval = setTimeout(() => callback(...callbackArgs), timeout);
 | 
			
		||||
            return () => setTimeout(interval);
 | 
			
		||||
        }
 | 
			
		||||
    }, [condition, callback, timeout, callbackArgs]);
 | 
			
		||||
    return setCondition;
 | 
			
		||||
}
 | 
			
		||||
		Reference in New Issue
	
	Block a user