fixes
This commit is contained in:
+14
-7
@@ -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);
|
||||||
|
if (!preserveSearch) {
|
||||||
setSearchResults(null);
|
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(
|
||||||
|
|||||||
Reference in New Issue
Block a user