From 669d277a95908cec7b35e098b3252ae38db05df0 Mon Sep 17 00:00:00 2001 From: Kuuuube <61125188+Kuuuube@users.noreply.github.com> Date: Tue, 16 Apr 2024 12:25:59 -0400 Subject: Fix duplicate check not working across note types (#830) * Fix duplicate check not working across note types * Add invalidNoteId --------- Co-authored-by: James Maa --- ext/js/background/backend.js | 6 +++++- ext/js/data/anki-util.js | 2 ++ ext/js/display/display-anki.js | 8 ++++++-- 3 files changed, 13 insertions(+), 3 deletions(-) diff --git a/ext/js/background/backend.js b/ext/js/background/backend.js index deaef4a0..df0378b3 100644 --- a/ext/js/background/backend.js +++ b/ext/js/background/backend.js @@ -28,7 +28,7 @@ import {logErrorLevelToNumber} from '../core/log-utilities.js'; import {log} from '../core/log.js'; import {isObjectNotArray} from '../core/object-utilities.js'; import {clone, deferPromise, promiseTimeout} from '../core/utilities.js'; -import {isNoteDataValid} from '../data/anki-util.js'; +import {invalidNoteId, isNoteDataValid} from '../data/anki-util.js'; import {arrayBufferToBase64} from '../data/array-buffer-util.js'; import {OptionsUtil} from '../data/options-util.js'; import {getAllPermissions, hasPermissions, hasRequiredPermissionsForOptions} from '../data/permissions-util.js'; @@ -595,6 +595,10 @@ export class Backend { const valid = isNoteDataValid(note); + if (isDuplicate && duplicateNoteIds[originalIndices.indexOf(i)].length === 0) { + duplicateNoteIds[originalIndices.indexOf(i)] = [invalidNoteId]; + } + const noteIds = isDuplicate ? duplicateNoteIds[originalIndices.indexOf(i)] : null; const noteInfos = (fetchAdditionalInfo && noteIds !== null && noteIds.length > 0) ? await this._anki.notesInfo(noteIds) : []; diff --git a/ext/js/data/anki-util.js b/ext/js/data/anki-util.js index eea3fb8b..a063980f 100644 --- a/ext/js/data/anki-util.js +++ b/ext/js/data/anki-util.js @@ -82,3 +82,5 @@ export function isNoteDataValid(note) { Object.entries(fields).length > 0 ); } + +export const invalidNoteId = -1; diff --git a/ext/js/display/display-anki.js b/ext/js/display/display-anki.js index fd3e8dcd..dc676702 100644 --- a/ext/js/display/display-anki.js +++ b/ext/js/display/display-anki.js @@ -21,7 +21,7 @@ import {log} from '../core/log.js'; import {toError} from '../core/to-error.js'; import {deferPromise} from '../core/utilities.js'; import {AnkiNoteBuilder} from '../data/anki-note-builder.js'; -import {isNoteDataValid} from '../data/anki-util.js'; +import {invalidNoteId, isNoteDataValid} from '../data/anki-util.js'; import {PopupMenu} from '../dom/popup-menu.js'; import {querySelectorNotNull} from '../dom/query-selector.js'; import {TemplateRendererProxy} from '../templates/template-renderer-proxy.js'; @@ -425,7 +425,11 @@ export class DisplayAnki { if (Array.isArray(noteIds) && noteIds.length > 0) { if (allNoteIds === null) { allNoteIds = new Set(); } - for (const noteId of noteIds) { allNoteIds.add(noteId); } + for (const noteId of noteIds) { + if (noteId !== invalidNoteId) { + allNoteIds.add(noteId); + } + } } if (displayTags !== 'never' && Array.isArray(noteInfos)) { -- cgit v1.2.3