8726 workflow add a test button in workflow code step (#9016)
- add test button to workflow code step - add test tab to workflow code step https://github.com/user-attachments/assets/e180a827-7321-49a2-8026-88490c557da2  
This commit is contained in:
@ -1,32 +0,0 @@
|
||||
import { useEffect, useState } from 'react';
|
||||
import { useDebouncedCallback } from 'use-debounce';
|
||||
|
||||
export const usePreventOverlapCallback = (
|
||||
callback: () => Promise<void>,
|
||||
wait?: number,
|
||||
) => {
|
||||
const [isRunning, setIsRunning] = useState(false);
|
||||
const [pendingRun, setPendingRun] = useState(false);
|
||||
|
||||
const handleCallback = async () => {
|
||||
if (isRunning) {
|
||||
setPendingRun(true);
|
||||
return;
|
||||
}
|
||||
setIsRunning(true);
|
||||
try {
|
||||
await callback();
|
||||
} finally {
|
||||
setIsRunning(false);
|
||||
}
|
||||
};
|
||||
|
||||
useEffect(() => {
|
||||
if (!isRunning && pendingRun) {
|
||||
setPendingRun(false);
|
||||
callback();
|
||||
}
|
||||
}, [callback, isRunning, pendingRun, setPendingRun]);
|
||||
|
||||
return useDebouncedCallback(handleCallback, wait);
|
||||
};
|
||||
Reference in New Issue
Block a user