diff --git a/src/services/note_cache/note_cache_service.js b/src/services/note_cache/note_cache_service.js index 5eaa725b5..234d6ed17 100644 --- a/src/services/note_cache/note_cache_service.js +++ b/src/services/note_cache/note_cache_service.js @@ -152,6 +152,12 @@ function getSomePath(note, path = []) { function getNotePath(noteId) { const note = noteCache.notes[noteId]; + + if (!note) { + console.trace(`Cannot find note ${noteId} in cache.`); + return; + } + const retPath = getSomePath(note); if (retPath) { diff --git a/src/services/search/note_set.js b/src/services/search/note_set.js index 3f8dc9dcf..626730d68 100644 --- a/src/services/search/note_set.js +++ b/src/services/search/note_set.js @@ -4,6 +4,7 @@ class NoteSet { constructor(notes = []) { /** @type {Note[]} */ this.notes = notes; + this.noteIdSet = new Set(notes.map(note => note.noteId)); /** @type {boolean} */ this.sorted = false; } @@ -11,6 +12,7 @@ class NoteSet { add(note) { if (!this.hasNote(note)) { this.notes.push(note); + this.noteIdSet.add(note.noteId); } } @@ -25,12 +27,12 @@ class NoteSet { } hasNoteId(noteId) { - // TODO: optimize - return !!this.notes.find(note => note.noteId === noteId); + return this.noteIdSet.has(noteId); } mergeIn(anotherNoteSet) { this.notes = this.notes.concat(anotherNoteSet.notes); + this.noteIdSet = new Set(this.notes.map(note => note.noteId)); } minus(anotherNoteSet) {