diff --git a/frontend/src/App.tsx b/frontend/src/App.tsx index b1de9ce..f8adcf1 100644 --- a/frontend/src/App.tsx +++ b/frontend/src/App.tsx @@ -1,4 +1,4 @@ -import { useState } from 'react'; +import { useRef, useState } from 'react'; import FileExplorer from './components/FileExplorer'; import DocumentEditor from './components/DocumentEditor'; import SearchBar from './components/SearchBar'; @@ -15,6 +15,12 @@ export default function App() { const [isDirty, setIsDirty] = useState(false); const [refreshKey, setRefreshKey] = useState(0); const [uploadPath] = useState(''); + const refreshTimer = useRef | null>(null); + + function scheduleRefresh() { + if (refreshTimer.current) clearTimeout(refreshTimer.current); + refreshTimer.current = setTimeout(() => setRefreshKey((k) => k + 1), 400); + } function confirmDiscardIfDirty(): boolean { if (!isDirty) { @@ -52,7 +58,7 @@ export default function App() { function handleUploaded(result: UploadDocumentResponse) { setSelectedKey(result.key); - setRefreshKey((prev) => prev + 1); + scheduleRefresh(); } function handleDeleted() {