diff --git a/Website/App.tsx b/Website/App.tsx index 4b9f0e0..92e5dd7 100644 --- a/Website/App.tsx +++ b/Website/App.tsx @@ -74,7 +74,12 @@ export function putData(uri: string, content: object | string | number | boolean return makeRequest("PUT", uri, content) as Promise; } +let currentlyRequestedEndpoints: string[] = []; function makeRequest(method: string, uri: string, content: object | string | number | null | boolean) : Promise { + const id = method + uri; + if(currentlyRequestedEndpoints.find(x => x == id) != undefined) + return Promise.reject(`Already requested: ${method} ${uri}`); + currentlyRequestedEndpoints.push(id); return fetch(uri, { method: method, @@ -113,7 +118,7 @@ function makeRequest(method: string, uri: string, content: object | string | num .catch(function(err : Error){ console.error(`Error ${method}ing Data ${uri}\n${err}`); return Promise.reject(); - }); + }).finally(() => currentlyRequestedEndpoints.splice(currentlyRequestedEndpoints.indexOf(id), 1)); } export function isValidUri(uri: string) : boolean{ diff --git a/Website/modules/MonitorJobsList.tsx b/Website/modules/MonitorJobsList.tsx index de83a6c..a619268 100644 --- a/Website/modules/MonitorJobsList.tsx +++ b/Website/modules/MonitorJobsList.tsx @@ -1,4 +1,4 @@ -import React, {EventHandler, ReactElement, useEffect, useState} from 'react'; +import React, {ReactElement, useEffect, useState} from 'react'; import JobFunctions from './JobFunctions'; import '../styles/monitorMangaList.css'; import {JobType} from "./interfaces/Jobs/IJob";