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(
async (folderId, { showLoading = true } = {}) => {
async (folderId, { showLoading = true, preserveSearch = false } = {}) => {
const targetId = folderId || 'root';
setSelectedFolder(targetId);
if (showLoading) setLoading(true);
@@ -1722,7 +1722,9 @@ const AppLayout = () => {
}
}
applySelectedFolder(targetId, contents);
setSearchResults(null);
if (!preserveSearch) {
setSearchResults(null);
}
} catch (error) {
notifyApiError(error, 'Failed to load folder contents.');
} finally {
@@ -1759,14 +1761,14 @@ const AppLayout = () => {
const targetId = folderId && folderId !== 'root' ? folderId : 'root';
if (!navigate || immediate) {
await loadFolder(targetId);
await loadFolder(targetId, { preserveSearch: isFilterActive });
return;
}
const path = targetId === 'root' ? '/documents' : `/documents/folder/${targetId}`;
navigate(path, { replace });
},
[loadFolder, navigate],
[loadFolder, navigate, isFilterActive],
);
const initializeAfterLogin = useCallback(async () => {
@@ -1799,7 +1801,10 @@ const AppLayout = () => {
const hasData = folderContents.has(targetParam);
if (targetParam !== selectedFolder || !hasData) {
loadFolder(targetParam, { showLoading: !routeDocumentId });
loadFolder(targetParam, {
showLoading: !routeDocumentId,
preserveSearch: isFilterActive,
});
}
}, [
token,
@@ -1809,6 +1814,7 @@ const AppLayout = () => {
selectedFolder,
loadFolder,
folderContents,
isFilterActive,
]);
const refreshCurrentFolder = useCallback(async () => {
@@ -3173,14 +3179,14 @@ const AppLayout = () => {
const targetId = folderId || selectedFolder || 'root';
if (!navigate) {
loadFolder(targetId, { showLoading: false });
loadFolder(targetId, { showLoading: false, preserveSearch: isFilterActive });
return;
}
const path = targetId === 'root' ? '/documents' : `/documents/folder/${targetId}`;
navigate(path, { replace: false });
},
[navigate, selectedFolder, loadFolder],
[navigate, selectedFolder, loadFolder, isFilterActive],
);
useEffect(() => {
@@ -3218,7 +3224,7 @@ const AppLayout = () => {
const targetFolder = doc?.folder_id || routeFolderId || 'root';
if (targetFolder && targetFolder !== selectedFolder) {
await loadFolder(targetFolder, { showLoading: false });
await loadFolder(targetFolder, { showLoading: false, preserveSearch: isFilterActive });
}
if (!cancelled) {
await openDocumentPreview(routeDocumentId, { replace: true, skipNavigate: true });
@@ -3248,6 +3254,7 @@ const AppLayout = () => {
documents,
searchResults,
notifyApiError,
isFilterActive,
]);
const handleDocumentTitleUpdate = useCallback(