mirror of
				https://github.com/zadam/trilium.git
				synced 2025-10-31 10:26:08 +01:00 
			
		
		
		
	avoid resorting children on every child add, fixes #1480
This commit is contained in:
		| @@ -75,15 +75,17 @@ class NoteShort { | ||||
|         this.parentToBranch[parentNoteId] = branchId; | ||||
|     } | ||||
|  | ||||
|     addChild(childNoteId, branchId) { | ||||
|     addChild(childNoteId, branchId, sort = true) { | ||||
|         if (!this.children.includes(childNoteId)) { | ||||
|             this.children.push(childNoteId); | ||||
|         } | ||||
|  | ||||
|         this.childToBranch[childNoteId] = branchId; | ||||
|  | ||||
|         if (sort) { | ||||
|             this.sortChildren(); | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     sortChildren() { | ||||
|         const branchIdPos = {}; | ||||
|   | ||||
| @@ -87,6 +87,8 @@ class TreeCache { | ||||
|         const branchRows = resp.branches; | ||||
|         const attributeRows = resp.attributes; | ||||
|  | ||||
|         const noteIdsToSort = new Set(); | ||||
|  | ||||
|         for (const noteRow of noteRows) { | ||||
|             const {noteId} = noteRow; | ||||
|  | ||||
| @@ -153,7 +155,9 @@ class TreeCache { | ||||
|             const parentNote = this.notes[branch.parentNoteId]; | ||||
|  | ||||
|             if (parentNote) { | ||||
|                 parentNote.addChild(branch.noteId, branch.branchId); | ||||
|                 parentNote.addChild(branch.noteId, branch.branchId, false); | ||||
|  | ||||
|                 noteIdsToSort.add(parentNote.noteId); | ||||
|             } | ||||
|         } | ||||
|  | ||||
| @@ -178,6 +182,11 @@ class TreeCache { | ||||
|                 } | ||||
|             } | ||||
|         } | ||||
|  | ||||
|         // sort all of them at once, this avoids repeated sorts (#1480) | ||||
|         for (const noteId of noteIdsToSort) { | ||||
|             this.notes[noteId].sortChildren(); | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     async reloadNotes(noteIds) { | ||||
|   | ||||
| @@ -57,7 +57,7 @@ function getTree(req) { | ||||
|     const noteIds = sql.getColumn(` | ||||
|         WITH RECURSIVE | ||||
|             treeWithDescendants(noteId, isExpanded) AS ( | ||||
|                 SELECT noteId, 1 FROM branches WHERE parentNoteId = ? AND isDeleted = 0 | ||||
|                 SELECT noteId, isExpanded FROM branches WHERE parentNoteId = ? AND isDeleted = 0 | ||||
|                 UNION | ||||
|                 SELECT branches.noteId, branches.isExpanded FROM branches | ||||
|                   JOIN treeWithDescendants ON branches.parentNoteId = treeWithDescendants.noteId | ||||
|   | ||||
		Reference in New Issue
	
	Block a user