This commit is contained in:
2025-10-16 12:32:03 +02:00
parent fecb7af3f6
commit e45574779b
+15 -8
View File
@@ -1708,7 +1708,7 @@ const AppLayout = () => {
); );
const loadFolder = useCallback( const loadFolder = useCallback(
async (folderId, { showLoading = true } = {}) => { async (folderId, { showLoading = true, preserveSearch = false } = {}) => {
const targetId = folderId || 'root'; const targetId = folderId || 'root';
setSelectedFolder(targetId); setSelectedFolder(targetId);
if (showLoading) setLoading(true); if (showLoading) setLoading(true);
@@ -1722,7 +1722,9 @@ const AppLayout = () => {
} }
} }
applySelectedFolder(targetId, contents); applySelectedFolder(targetId, contents);
setSearchResults(null); if (!preserveSearch) {
setSearchResults(null);
}
} catch (error) { } catch (error) {
notifyApiError(error, 'Failed to load folder contents.'); notifyApiError(error, 'Failed to load folder contents.');
} finally { } finally {
@@ -1759,14 +1761,14 @@ const AppLayout = () => {
const targetId = folderId && folderId !== 'root' ? folderId : 'root'; const targetId = folderId && folderId !== 'root' ? folderId : 'root';
if (!navigate || immediate) { if (!navigate || immediate) {
await loadFolder(targetId); await loadFolder(targetId, { preserveSearch: isFilterActive });
return; return;
} }
const path = targetId === 'root' ? '/documents' : `/documents/folder/${targetId}`; const path = targetId === 'root' ? '/documents' : `/documents/folder/${targetId}`;
navigate(path, { replace }); navigate(path, { replace });
}, },
[loadFolder, navigate], [loadFolder, navigate, isFilterActive],
); );
const initializeAfterLogin = useCallback(async () => { const initializeAfterLogin = useCallback(async () => {
@@ -1799,7 +1801,10 @@ const AppLayout = () => {
const hasData = folderContents.has(targetParam); const hasData = folderContents.has(targetParam);
if (targetParam !== selectedFolder || !hasData) { if (targetParam !== selectedFolder || !hasData) {
loadFolder(targetParam, { showLoading: !routeDocumentId }); loadFolder(targetParam, {
showLoading: !routeDocumentId,
preserveSearch: isFilterActive,
});
} }
}, [ }, [
token, token,
@@ -1809,6 +1814,7 @@ const AppLayout = () => {
selectedFolder, selectedFolder,
loadFolder, loadFolder,
folderContents, folderContents,
isFilterActive,
]); ]);
const refreshCurrentFolder = useCallback(async () => { const refreshCurrentFolder = useCallback(async () => {
@@ -3173,14 +3179,14 @@ const AppLayout = () => {
const targetId = folderId || selectedFolder || 'root'; const targetId = folderId || selectedFolder || 'root';
if (!navigate) { if (!navigate) {
loadFolder(targetId, { showLoading: false }); loadFolder(targetId, { showLoading: false, preserveSearch: isFilterActive });
return; return;
} }
const path = targetId === 'root' ? '/documents' : `/documents/folder/${targetId}`; const path = targetId === 'root' ? '/documents' : `/documents/folder/${targetId}`;
navigate(path, { replace: false }); navigate(path, { replace: false });
}, },
[navigate, selectedFolder, loadFolder], [navigate, selectedFolder, loadFolder, isFilterActive],
); );
useEffect(() => { useEffect(() => {
@@ -3218,7 +3224,7 @@ const AppLayout = () => {
const targetFolder = doc?.folder_id || routeFolderId || 'root'; const targetFolder = doc?.folder_id || routeFolderId || 'root';
if (targetFolder && targetFolder !== selectedFolder) { if (targetFolder && targetFolder !== selectedFolder) {
await loadFolder(targetFolder, { showLoading: false }); await loadFolder(targetFolder, { showLoading: false, preserveSearch: isFilterActive });
} }
if (!cancelled) { if (!cancelled) {
await openDocumentPreview(routeDocumentId, { replace: true, skipNavigate: true }); await openDocumentPreview(routeDocumentId, { replace: true, skipNavigate: true });
@@ -3248,6 +3254,7 @@ const AppLayout = () => {
documents, documents,
searchResults, searchResults,
notifyApiError, notifyApiError,
isFilterActive,
]); ]);
const handleDocumentTitleUpdate = useCallback( const handleDocumentTitleUpdate = useCallback(