aboutsummaryrefslogtreecommitdiff
path: root/ext
diff options
context:
space:
mode:
authortoasted-nutbread <toasted-nutbread@users.noreply.github.com>2021-07-09 20:26:20 -0400
committerGitHub <noreply@github.com>2021-07-09 20:26:20 -0400
commitd897fb553d5f9901bf2c8a0942e87e043788e1b2 (patch)
tree6343c627a134fc2699b5b3e5d8c95ac5ce1f0a91 /ext
parent7a1570885e7310e5b1e15ab798c9eb66694a96fb (diff)
Improve error when card has missing content (#1818)
Diffstat (limited to 'ext')
-rw-r--r--ext/js/display/display-anki.js31
1 files changed, 25 insertions, 6 deletions
diff --git a/ext/js/display/display-anki.js b/ext/js/display/display-anki.js
index 235149ad..b08dc952 100644
--- a/ext/js/display/display-anki.js
+++ b/ext/js/display/display-anki.js
@@ -368,12 +368,8 @@ class DisplayAnki {
const {note, errors, requirements: outputRequirements} = await this._createNote(dictionaryEntry, mode, requirements);
allErrors.push(...errors);
- if (outputRequirements.length > 0) {
- const error = new Error('The created card may not have some content');
- error.requirements = requirements;
- error.outputRequirements = outputRequirements;
- allErrors.push(error);
- }
+ const error = this._getAddNoteRequirementsError(requirements, outputRequirements);
+ if (error !== null) { allErrors.push(error); }
let noteId = null;
let addNoteOkay = false;
@@ -413,6 +409,29 @@ class DisplayAnki {
}
}
+ _getAddNoteRequirementsError(requirements, outputRequirements) {
+ if (outputRequirements.length === 0) { return null; }
+
+ let count = 0;
+ for (const requirement of outputRequirements) {
+ const {type} = requirement;
+ switch (type) {
+ case 'audio':
+ case 'clipboardImage':
+ break;
+ default:
+ ++count;
+ break;
+ }
+ }
+ if (count === 0) { return null; }
+
+ const error = new Error('The created card may not have some content');
+ error.requirements = requirements;
+ error.outputRequirements = outputRequirements;
+ return error;
+ }
+
_showAnkiNoteErrors(errors) {
if (this._ankiNoteNotificationEventListeners !== null) {
this._ankiNoteNotificationEventListeners.removeAllEventListeners();