Dev #7
@@ -20,6 +20,7 @@ import {
|
|||||||
} from 'lucide-react';
|
} from 'lucide-react';
|
||||||
import {
|
import {
|
||||||
Document,
|
Document,
|
||||||
|
DocumentBlock,
|
||||||
DocShare,
|
DocShare,
|
||||||
SharedFolder,
|
SharedFolder,
|
||||||
TagDetails,
|
TagDetails,
|
||||||
@@ -683,6 +684,17 @@ export const WorkspaceView: React.FC<WorkspaceViewProps> = ({
|
|||||||
return Array.from(set).sort();
|
return Array.from(set).sort();
|
||||||
}, [docs, folders, sharedFolders]);
|
}, [docs, folders, sharedFolders]);
|
||||||
|
|
||||||
|
const filteredDocs = useMemo(() => {
|
||||||
|
const q = searchQuery.trim().toLowerCase();
|
||||||
|
if (!q) return docs;
|
||||||
|
return docs.filter(
|
||||||
|
(d) =>
|
||||||
|
d.title.toLowerCase().includes(q) ||
|
||||||
|
(d.content && d.content.toLowerCase().includes(q)) ||
|
||||||
|
(d.tags && d.tags.some((t) => t.toLowerCase().includes(q)))
|
||||||
|
);
|
||||||
|
}, [docs, searchQuery]);
|
||||||
|
|
||||||
const folderTree = useMemo(() => {
|
const folderTree = useMemo(() => {
|
||||||
const rootNodes: FolderTreeNode[] = [];
|
const rootNodes: FolderTreeNode[] = [];
|
||||||
const nodeMap = new Map<string, FolderTreeNode>();
|
const nodeMap = new Map<string, FolderTreeNode>();
|
||||||
@@ -737,17 +749,6 @@ export const WorkspaceView: React.FC<WorkspaceViewProps> = ({
|
|||||||
return rootNodes;
|
return rootNodes;
|
||||||
}, [allFolderPaths, filteredDocs, sharedFolders]);
|
}, [allFolderPaths, filteredDocs, sharedFolders]);
|
||||||
|
|
||||||
const filteredDocs = useMemo(() => {
|
|
||||||
const q = searchQuery.trim().toLowerCase();
|
|
||||||
if (!q) return docs;
|
|
||||||
return docs.filter(
|
|
||||||
(d) =>
|
|
||||||
d.title.toLowerCase().includes(q) ||
|
|
||||||
(d.content && d.content.toLowerCase().includes(q)) ||
|
|
||||||
(d.tags && d.tags.some((t) => t.toLowerCase().includes(q)))
|
|
||||||
);
|
|
||||||
}, [docs, searchQuery]);
|
|
||||||
|
|
||||||
const pinnedDocs = useMemo(
|
const pinnedDocs = useMemo(
|
||||||
() => filteredDocs.filter((d) => d.isPinned),
|
() => filteredDocs.filter((d) => d.isPinned),
|
||||||
[filteredDocs]
|
[filteredDocs]
|
||||||
|
|||||||
Reference in new issue
Block a user