|
@@ -1,36 +0,0 @@
|
|
|
-import { useEffect, useCallback } from "react";
|
|
|
-
|
|
|
-export default (
|
|
|
- url,
|
|
|
- handleOk,
|
|
|
- handleFailed,
|
|
|
- handleError,
|
|
|
- ms = 20000,
|
|
|
- credentials = null,
|
|
|
-) => {
|
|
|
- const callbackOk = useCallback(handleOk, []);
|
|
|
- const callbackFailed = useCallback(handleFailed, []);
|
|
|
- const callbackError = useCallback(handleError, []);
|
|
|
- useEffect(() => {
|
|
|
- const checkServer = async () => {
|
|
|
- try {
|
|
|
- const res = await fetch(url, credentials ? { credentials } : {});
|
|
|
- if (res.ok) {
|
|
|
- const js = await res.json();
|
|
|
- callbackOk(js);
|
|
|
- } else {
|
|
|
- callbackFailed();
|
|
|
- }
|
|
|
- }
|
|
|
- catch (err) {
|
|
|
- callbackError();
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- checkServer();
|
|
|
-
|
|
|
- const interval = setInterval(checkServer, ms);
|
|
|
-
|
|
|
- return () => clearInterval(interval);
|
|
|
- }, [url, callbackOk, callbackFailed, callbackError, ms, credentials]);
|
|
|
-};
|