From 429814ebb587b76e22072cb3ecab31b3a2d5a0e3 Mon Sep 17 00:00:00 2001 From: Bogdan Bodnar Date: Fri, 15 Nov 2019 14:16:37 +0100 Subject: [PATCH] Add until param to API polling hook. --- src/api/hooks.js | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/src/api/hooks.js b/src/api/hooks.js index e873ef7..47cc71d 100644 --- a/src/api/hooks.js +++ b/src/api/hooks.js @@ -5,10 +5,14 @@ * See /LICENSE for more information. */ -import { useCallback, useEffect, useReducer, useState, } from "react"; +import { + useCallback, useEffect, useReducer, useState, +} from "react"; import { ForisURLs } from "forisUrls"; -import { API_ACTIONS, API_METHODS, API_STATE, getErrorPayload, HEADERS, TIMEOUT, } from "./utils"; +import { + API_ACTIONS, API_METHODS, API_STATE, getErrorPayload, HEADERS, TIMEOUT, +} from "./utils"; const DATA_METHODS = ["POST", "PATCH", "PUT"]; @@ -89,7 +93,7 @@ export { useAPIGet, useAPIPost, useAPIPatch, useAPIPut, useAPIDelete, }; -export function useAPIPolling(endpoint, delay = 1000) { // delay ms +export function useAPIPolling(endpoint, delay = 1000, until) { // delay ms const [state, setState] = useState({ state: API_STATE.INIT }); const [getState, get] = useAPIGet(endpoint); @@ -100,11 +104,11 @@ export function useAPIPolling(endpoint, delay = 1000) { // delay ms }, [getState]); useEffect(() => { - if (delay !== null) { + if (until) { const interval = setInterval(get, delay); return () => clearInterval(interval); } - }, [delay, get]); + }, [until, delay, get]); return [state]; }