diff --git a/frontend/src/features/backups/ui/BackupsComponent.tsx b/frontend/src/features/backups/ui/BackupsComponent.tsx index cc6b8f0..d8701ca 100644 --- a/frontend/src/features/backups/ui/BackupsComponent.tsx +++ b/frontend/src/features/backups/ui/BackupsComponent.tsx @@ -57,6 +57,7 @@ export const BackupsComponent = ({ database, isCanManageDBs, scrollContainerRef const [showingRestoresBackupId, setShowingRestoresBackupId] = useState(); const lastRequestTimeRef = useRef(0); + const isBackupsRequestInFlightRef = useRef(false); const [downloadingBackupId, setDownloadingBackupId] = useState(); const [cancellingBackupId, setCancellingBackupId] = useState(); @@ -72,6 +73,9 @@ export const BackupsComponent = ({ database, isCanManageDBs, scrollContainerRef }; const loadBackups = async (limit?: number) => { + if (isBackupsRequestInFlightRef.current) return; + isBackupsRequestInFlightRef.current = true; + const requestTime = Date.now(); lastRequestTimeRef.current = requestTime; @@ -89,6 +93,8 @@ export const BackupsComponent = ({ database, isCanManageDBs, scrollContainerRef if (lastRequestTimeRef.current === requestTime) { alert((e as Error).message); } + } finally { + isBackupsRequestInFlightRef.current = false; } };