diff --git a/surfsense_web/app/dashboard/[search_space_id]/documents/(manage)/components/DocumentsFilters.tsx b/surfsense_web/app/dashboard/[search_space_id]/documents/(manage)/components/DocumentsFilters.tsx index b043c61e9..a795b61c7 100644 --- a/surfsense_web/app/dashboard/[search_space_id]/documents/(manage)/components/DocumentsFilters.tsx +++ b/surfsense_web/app/dashboard/[search_space_id]/documents/(manage)/components/DocumentsFilters.tsx @@ -65,7 +65,7 @@ export function DocumentsFilters({
{/* Filter + New Folder Toggle Group */} - + {onCreateFolder && ( @@ -90,11 +90,11 @@ export function DocumentsFilters({ {activeTypes.length > 0 && ( - + {activeTypes.length} )} @@ -167,22 +167,6 @@ export function DocumentsFilters({ )) )}
- {activeTypes.length > 0 && ( -
- -
- )}
diff --git a/surfsense_web/components/documents/FolderTreeView.tsx b/surfsense_web/components/documents/FolderTreeView.tsx index d9c74e0db..371d00f42 100644 --- a/surfsense_web/components/documents/FolderTreeView.tsx +++ b/surfsense_web/components/documents/FolderTreeView.tsx @@ -96,14 +96,21 @@ export function FolderTreeView({ ); const handleCancelRename = useCallback(() => setRenamingFolderId(null), [setRenamingFolderId]); + const effectiveActiveTypes = useMemo(() => { + if (activeTypes.includes("FILE" as DocumentTypeEnum) && !activeTypes.includes("LOCAL_FOLDER_FILE" as DocumentTypeEnum)) { + return [...activeTypes, "LOCAL_FOLDER_FILE" as DocumentTypeEnum]; + } + return activeTypes; + }, [activeTypes]); + const hasDescendantMatch = useMemo(() => { - if (activeTypes.length === 0 && !searchQuery) return null; + if (effectiveActiveTypes.length === 0 && !searchQuery) return null; const match: Record = {}; function check(folderId: number): boolean { if (match[folderId] !== undefined) return match[folderId]; const childDocs = (docsByFolder[folderId] ?? []).some( - (d) => activeTypes.length === 0 || activeTypes.includes(d.document_type as DocumentTypeEnum) + (d) => effectiveActiveTypes.length === 0 || effectiveActiveTypes.includes(d.document_type as DocumentTypeEnum) ); if (childDocs) { match[folderId] = true; @@ -124,7 +131,7 @@ export function FolderTreeView({ check(f.id); } return match; - }, [folders, docsByFolder, foldersByParent, activeTypes, searchQuery]); + }, [folders, docsByFolder, foldersByParent, effectiveActiveTypes, searchQuery]); const folderSelectionStates = useMemo(() => { const states: Record = {}; @@ -194,7 +201,7 @@ export function FolderTreeView({ ? childFolders.filter((f) => hasDescendantMatch[f.id]) : childFolders; const childDocs = (docsByFolder[key] ?? []).filter( - (d) => activeTypes.length === 0 || activeTypes.includes(d.document_type as DocumentTypeEnum) + (d) => effectiveActiveTypes.length === 0 || effectiveActiveTypes.includes(d.document_type as DocumentTypeEnum) ); const nodes: React.ReactNode[] = []; @@ -278,7 +285,7 @@ export function FolderTreeView({ ); } - if (treeNodes.length === 0 && (activeTypes.length > 0 || searchQuery)) { + if (treeNodes.length === 0 && (effectiveActiveTypes.length > 0 || searchQuery)) { return (
diff --git a/surfsense_web/components/layout/ui/right-panel/RightPanel.tsx b/surfsense_web/components/layout/ui/right-panel/RightPanel.tsx index 83b7d5d1f..febae35d3 100644 --- a/surfsense_web/components/layout/ui/right-panel/RightPanel.tsx +++ b/surfsense_web/components/layout/ui/right-panel/RightPanel.tsx @@ -84,7 +84,7 @@ export function RightPanelExpandButton() { variant="ghost" size="icon" onClick={() => startTransition(() => setCollapsed(false))} - className="h-7 w-7 shrink-0" + className="h-8 w-8 shrink-0 -m-0.5" > Expand panel diff --git a/surfsense_web/components/layout/ui/sidebar/DocumentsSidebar.tsx b/surfsense_web/components/layout/ui/sidebar/DocumentsSidebar.tsx index aa409e179..8bd7d64ea 100644 --- a/surfsense_web/components/layout/ui/sidebar/DocumentsSidebar.tsx +++ b/surfsense_web/components/layout/ui/sidebar/DocumentsSidebar.tsx @@ -531,7 +531,8 @@ export function DocumentsSidebar({ const typeCounts = useMemo(() => { const counts: Partial> = {}; for (const d of treeDocuments) { - counts[d.document_type] = (counts[d.document_type] || 0) + 1; + const displayType = d.document_type === "LOCAL_FOLDER_FILE" ? "FILE" : d.document_type; + counts[displayType] = (counts[displayType] || 0) + 1; } return counts; }, [treeDocuments]); @@ -746,7 +747,7 @@ export function DocumentsSidebar({
-
+
; case "LOCAL_FOLDER_FILE": - return null; + return ; default: return ; }