mirror of
https://github.com/BoostIo/Boostnote
synced 2025-12-16 03:06:27 +00:00
Refactoring removing of unique key from tags
This commit is contained in:
@@ -72,15 +72,7 @@ function data (state = defaultDataMap(), action) {
|
|||||||
if (note.isTrashed) {
|
if (note.isTrashed) {
|
||||||
state.trashedSet.add(uniqueKey)
|
state.trashedSet.add(uniqueKey)
|
||||||
state.starredSet.delete(uniqueKey)
|
state.starredSet.delete(uniqueKey)
|
||||||
|
removeFromTags(note.tags, state, 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 {
|
} else {
|
||||||
state.trashedSet.delete(uniqueKey)
|
state.trashedSet.delete(uniqueKey)
|
||||||
|
|
||||||
@@ -169,16 +161,7 @@ function data (state = defaultDataMap(), action) {
|
|||||||
originFolderList.delete(originKey)
|
originFolderList.delete(originKey)
|
||||||
state.folderNoteMap.set(originFolderKey, originFolderList)
|
state.folderNoteMap.set(originFolderKey, originFolderList)
|
||||||
|
|
||||||
// From tagMap
|
removeFromTags(originNote.tags, state, originKey)
|
||||||
if (originNote.tags.length > 0) {
|
|
||||||
state.tagNoteMap = new Map(state.tagNoteMap)
|
|
||||||
originNote.tags.forEach((tag) => {
|
|
||||||
let noteSet = state.tagNoteMap.get(tag)
|
|
||||||
noteSet = new Set(noteSet)
|
|
||||||
noteSet.delete(originKey)
|
|
||||||
state.tagNoteMap.set(tag, noteSet)
|
|
||||||
})
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (oldNote == null || oldNote.isStarred !== note.isStarred) {
|
if (oldNote == null || oldNote.isStarred !== note.isStarred) {
|
||||||
@@ -268,16 +251,7 @@ function data (state = defaultDataMap(), action) {
|
|||||||
folderSet.delete(uniqueKey)
|
folderSet.delete(uniqueKey)
|
||||||
state.folderNoteMap.set(folderKey, folderSet)
|
state.folderNoteMap.set(folderKey, folderSet)
|
||||||
|
|
||||||
// From tagMap
|
removeFromTags(targetNote.tags, state, uniqueKey)
|
||||||
if (targetNote.tags.length > 0) {
|
|
||||||
state.tagNoteMap = new Map(state.tagNoteMap)
|
|
||||||
targetNote.tags.forEach((tag) => {
|
|
||||||
let noteSet = state.tagNoteMap.get(tag)
|
|
||||||
noteSet = new Set(noteSet)
|
|
||||||
noteSet.delete(uniqueKey)
|
|
||||||
state.tagNoteMap.set(tag, noteSet)
|
|
||||||
})
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
state.noteMap = new Map(state.noteMap)
|
state.noteMap = new Map(state.noteMap)
|
||||||
state.noteMap.delete(uniqueKey)
|
state.noteMap.delete(uniqueKey)
|
||||||
@@ -474,16 +448,7 @@ function updateTagChanges (oldNote, note, state, uniqueKey) {
|
|||||||
const discardedTags = _.difference(oldNote.tags, note.tags)
|
const discardedTags = _.difference(oldNote.tags, note.tags)
|
||||||
const addedTags = _.difference(note.tags, oldNote.tags)
|
const addedTags = _.difference(note.tags, oldNote.tags)
|
||||||
if (discardedTags.length + addedTags.length > 0) {
|
if (discardedTags.length + addedTags.length > 0) {
|
||||||
state.tagNoteMap = new Map(state.tagNoteMap)
|
removeFromTags(discardedTags, state, uniqueKey)
|
||||||
|
|
||||||
discardedTags.forEach((tag) => {
|
|
||||||
let tagNoteList = state.tagNoteMap.get(tag)
|
|
||||||
if (tagNoteList != null) {
|
|
||||||
tagNoteList = new Set(tagNoteList)
|
|
||||||
tagNoteList.delete(uniqueKey)
|
|
||||||
state.tagNoteMap.set(tag, tagNoteList)
|
|
||||||
}
|
|
||||||
})
|
|
||||||
assignToTags(addedTags, state, uniqueKey)
|
assignToTags(addedTags, state, uniqueKey)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -496,6 +461,18 @@ function assignToTags (tags, state, uniqueKey) {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function removeFromTags (tags, state, uniqueKey) {
|
||||||
|
state.tagNoteMap = new Map(state.tagNoteMap)
|
||||||
|
tags.forEach(tag => {
|
||||||
|
let tagNoteList = state.tagNoteMap.get(tag)
|
||||||
|
if (tagNoteList != null) {
|
||||||
|
tagNoteList = new Set(tagNoteList)
|
||||||
|
tagNoteList.delete(uniqueKey)
|
||||||
|
state.tagNoteMap.set(tag, tagNoteList)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
function getOrInitItem (target, key) {
|
function getOrInitItem (target, key) {
|
||||||
let results = target.get(key)
|
let results = target.get(key)
|
||||||
if (results == null) {
|
if (results == null) {
|
||||||
|
|||||||
Reference in New Issue
Block a user