1
0
mirror of https://github.com/laurent22/joplin.git synced 2024-12-24 10:27:10 +02:00

Desktop: Fixes #3481: Crash when applying tags to multiple notes from within another tag

This commit is contained in:
Laurent Cozic 2020-07-12 17:15:17 +01:00
parent e0a87d6253
commit f1b2b7b86b

View File

@ -295,6 +295,21 @@ function updateOneItem(state, action, keyName = '') {
return newState;
}
function updateSelectedNotesFromExistingNotes(state) {
const newSelectedNoteIds = [];
for (const selectedNoteId of state.selectedNoteIds) {
for (const n of state.notes) {
if (n.id === selectedNoteId) {
newSelectedNoteIds.push(n.id);
}
}
}
return Object.assign({}, state, {
selectedNoteIds: newSelectedNoteIds,
});
}
function defaultNotesParentType(state, exclusion) {
let newNotesParentType = null;
@ -637,12 +652,12 @@ const reducer = (state = defaultState, action) => {
}
break;
// Replace all the notes with the provided array
case 'NOTE_UPDATE_ALL':
newState = Object.assign({}, state);
newState.notes = action.notes;
newState.notesSource = action.notesSource;
newState = updateSelectedNotesFromExistingNotes(newState);
break;
// Insert the note into the note list if it's new, or
@ -707,7 +722,6 @@ const reducer = (state = defaultState, action) => {
newState.selectedNoteIds = newIndex >= 0 ? [newNotes[newIndex].id] : [];
}
if (action.provisional) {
newState.provisionalNoteIds.push(modNote.id);
} else {