diff options
Diffstat (limited to 'gui/src/renderer/lib/api-access-methods.ts')
| -rw-r--r-- | gui/src/renderer/lib/api-access-methods.ts | 82 |
1 files changed, 47 insertions, 35 deletions
diff --git a/gui/src/renderer/lib/api-access-methods.ts b/gui/src/renderer/lib/api-access-methods.ts index fd78d1484a..270d0fbf62 100644 --- a/gui/src/renderer/lib/api-access-methods.ts +++ b/gui/src/renderer/lib/api-access-methods.ts @@ -28,54 +28,66 @@ export function useApiAccessMethodTest( // scheduler is used to clear it. const testResultResetScheduler = useScheduler(); - const testApiAccessMethod = useCallback(async (method: CustomProxy | string) => { - testResultResetScheduler.cancel(); - setTestResult(undefined); + const testApiAccessMethod = useCallback( + async (method: CustomProxy | string) => { + testResultResetScheduler.cancel(); + setTestResult(undefined); - setTesting(); - let reachable; - let testPromise; + setTesting(); + let reachable; + let testPromise; - const submitTimestamp = Date.now(); - try { - testPromise = - typeof method === 'string' - ? testApiAccessMethodById(method) - : testCustomApiAccessMethod(method); + const submitTimestamp = Date.now(); + try { + testPromise = + typeof method === 'string' + ? testApiAccessMethodById(method) + : testCustomApiAccessMethod(method); - lastTestPromise.current = testPromise; - reachable = await testPromise; - } catch { - reachable = false; - } + lastTestPromise.current = testPromise; + reachable = await testPromise; + } catch { + reachable = false; + } - // Make sure the loading text is displayed for at least `minDuration` milliseconds. - const submitDuration = Date.now() - submitTimestamp; - if (submitDuration < minDuration) { - await new Promise<void>((resolve) => - delayScheduler.schedule(resolve, minDuration - submitDuration), - ); - } + // Make sure the loading text is displayed for at least `minDuration` milliseconds. + const submitDuration = Date.now() - submitTimestamp; + if (submitDuration < minDuration) { + await new Promise<void>((resolve) => + delayScheduler.schedule(resolve, minDuration - submitDuration), + ); + } - if (testPromise !== lastTestPromise.current) { - return; - } + if (testPromise !== lastTestPromise.current) { + return; + } - setTestResult(reachable); - unsetTesting(); + setTestResult(reachable); + unsetTesting(); - if (autoReset) { - testResultResetScheduler.schedule(() => setTestResult(undefined), 5000); - } + if (autoReset) { + testResultResetScheduler.schedule(() => setTestResult(undefined), 5000); + } - return reachable; - }, []); + return reachable; + }, + [ + autoReset, + delayScheduler, + minDuration, + setTesting, + testApiAccessMethodById, + testCustomApiAccessMethod, + testResultResetScheduler, + unsetTesting, + ], + ); const resetTestResult = useCallback(() => { lastTestPromise.current = undefined; unsetTesting(); setTestResult(undefined); - }, []); + }, [unsetTesting]); return [testing, testResult, testApiAccessMethod, resetTestResult]; } |
