diff options
| author | Oskar <oskar@mullvad.net> | 2024-10-22 15:32:24 +0200 |
|---|---|---|
| committer | Oskar <oskar@mullvad.net> | 2024-10-22 15:32:24 +0200 |
| commit | 1ec8c9d6c4dc799fb0c6479cdc9dad438bf37129 (patch) | |
| tree | 43caf1e9884496f64c2333648c16381eaa1cf18a /gui/src/renderer/lib/api-access-methods.ts | |
| parent | 6533665d1fdf9a97e6ea1e36f01ee2f293b4338c (diff) | |
| parent | cf62ffdd17eac7958977895f098742c704aa3047 (diff) | |
| download | mullvadvpn-1ec8c9d6c4dc799fb0c6479cdc9dad438bf37129.tar.xz mullvadvpn-1ec8c9d6c4dc799fb0c6479cdc9dad438bf37129.zip | |
Merge branch 'add-react-linter-rules'
Diffstat (limited to 'gui/src/renderer/lib/api-access-methods.ts')
| -rw-r--r-- | gui/src/renderer/lib/api-access-methods.ts | 84 |
1 files changed, 48 insertions, 36 deletions
diff --git a/gui/src/renderer/lib/api-access-methods.ts b/gui/src/renderer/lib/api-access-methods.ts index fd78d1484a..90d406cc3d 100644 --- a/gui/src/renderer/lib/api-access-methods.ts +++ b/gui/src/renderer/lib/api-access-methods.ts @@ -3,7 +3,7 @@ import { useCallback, useRef, useState } from 'react'; import { CustomProxy } from '../../shared/daemon-rpc-types'; import { useScheduler } from '../../shared/scheduler'; import { useAppContext } from '../context'; -import { useBoolean } from './utilityHooks'; +import { useBoolean } from './utility-hooks'; export function useApiAccessMethodTest( autoReset = true, @@ -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]; } |
