From 32e22dd5070a9f7bed72f78bddf408f3afd74b83 Mon Sep 17 00:00:00 2001 From: yosmoc Date: Thu, 26 Apr 2018 23:46:39 +0200 Subject: [PATCH 1/2] update tagNoteMap when delete / restore the notebook deleted note should not belong to tagNoteMap --- browser/main/store.js | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/browser/main/store.js b/browser/main/store.js index f078ad20..8ca00e7f 100644 --- a/browser/main/store.js +++ b/browser/main/store.js @@ -88,9 +88,27 @@ function data (state = defaultDataMap(), action) { if (note.isTrashed) { state.trashedSet.add(uniqueKey) state.starredSet.delete(uniqueKey) + + note.tags.forEach(tag => { + let tagNoteList = state.tagNoteMap.get(tag) + if (tagNoteList != null) { + tagNoteList = new Set(tagNoteList) + tagNoteList.delete(uniqueKey) + state.tagNoteMap.set(tag, tagNoteList) + } + }) } else { state.trashedSet.delete(uniqueKey) + note.tags.forEach(tag => { + let tagNoteList = state.tagNoteMap.get(tag) + if (tagNoteList != null) { + tagNoteList = new Set(tagNoteList) + tagNoteList.add(uniqueKey) + state.tagNoteMap.set(tag, tagNoteList) + } + }) + if (note.isStarred) { state.starredSet.add(uniqueKey) } From 2831b0bd2af09da58221fadcf668fcd0c51f8ca6 Mon Sep 17 00:00:00 2001 From: yosmoc Date: Thu, 26 Apr 2018 23:52:05 +0200 Subject: [PATCH 2/2] Only showing the tags that size > 0 No meaning to show the tag that has empty List The tag which is only used in the note(s) in the Trash, tags.size becomes zero. In order to support this case, filtering tagList is needed --- browser/main/SideNav/index.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/browser/main/SideNav/index.js b/browser/main/SideNav/index.js index 6b53478e..0159293a 100644 --- a/browser/main/SideNav/index.js +++ b/browser/main/SideNav/index.js @@ -148,7 +148,9 @@ class SideNav extends React.Component { const relatedTags = this.getRelatedTags(this.getActiveTags(location.pathname), data.noteMap) let tagList = _.sortBy(data.tagNoteMap.map( (tag, name) => ({ name, size: tag.size, related: relatedTags.has(name) }) - ), ['name']) + ), ['name']).filter( + tag => tag.size > 0 + ) if (config.sortTagsBy === 'COUNTER') { tagList = _.sortBy(tagList, item => (0 - item.size)) }