summaryrefslogtreecommitdiff
path: root/ext/js/display
diff options
context:
space:
mode:
Diffstat (limited to 'ext/js/display')
-rw-r--r--ext/js/display/display-audio.js8
-rw-r--r--ext/js/display/display.js33
2 files changed, 23 insertions, 18 deletions
diff --git a/ext/js/display/display-audio.js b/ext/js/display/display-audio.js
index bb88c89e..03966390 100644
--- a/ext/js/display/display-audio.js
+++ b/ext/js/display/display-audio.js
@@ -405,11 +405,11 @@ class DisplayAudio {
const definition = definitions[definitionIndex];
if (definition.type === 'kanji') { return null; }
- const {expressions} = definition;
- if (expressionIndex < 0 || expressionIndex >= expressions.length) { return null; }
+ const {headwords} = definition;
+ if (expressionIndex < 0 || expressionIndex >= headwords.length) { return null; }
- const {expression, reading} = expressions[expressionIndex];
- return {expression, reading};
+ const {term, reading} = headwords[expressionIndex];
+ return {expression: term, reading};
}
_getExpressionReadingKey(expression, reading) {
diff --git a/ext/js/display/display.js b/ext/js/display/display.js
index 1142f36f..7cc3b437 100644
--- a/ext/js/display/display.js
+++ b/ext/js/display/display.js
@@ -1505,7 +1505,7 @@ class Display extends EventDispatcher {
let audioDetails = null;
if (definitionDetails.type !== 'kanji' && AnkiUtil.fieldsObjectContainsMarker(fields, 'audio')) {
- const primaryCardAudio = this._displayAudio.getPrimaryCardAudio(definitionDetails.expression, definitionDetails.reading);
+ const primaryCardAudio = this._displayAudio.getPrimaryCardAudio(definitionDetails.term, definitionDetails.reading);
let preferredAudioIndex = null;
let sources2 = sources;
if (primaryCardAudio !== null) {
@@ -1531,26 +1531,31 @@ class Display extends EventDispatcher {
);
}
- _getDefinitionDetailsForNote(definition) {
- const {type} = definition;
+ _getDefinitionDetailsForNote(dictionaryEntry) {
+ const {type} = dictionaryEntry;
if (type === 'kanji') {
- const {character} = definition;
+ const {character} = dictionaryEntry;
return {type, character};
}
- const termDetailsList = definition.expressions;
+ const {headwords} = dictionaryEntry;
let bestIndex = -1;
- for (let i = 0, ii = termDetailsList.length; i < ii; ++i) {
- const {sourceTerm, expression, reading} = termDetailsList[i];
- if (expression === sourceTerm) {
- bestIndex = i;
- break;
- } else if (reading === sourceTerm && bestIndex < 0) {
- bestIndex = i;
+ for (let i = 0, ii = headwords.length; i < ii; ++i) {
+ const {term, reading, sources} = headwords[i];
+ for (const {deinflectedText} of sources) {
+ if (term === deinflectedText) {
+ bestIndex = i;
+ i = ii;
+ break;
+ } else if (reading === deinflectedText && bestIndex < 0) {
+ bestIndex = i;
+ break;
+ }
}
}
- const {expression, reading} = termDetailsList[Math.max(0, bestIndex)];
- return {type, expression, reading};
+
+ const {term, reading} = headwords[Math.max(0, bestIndex)];
+ return {type, term, reading};
}
async _setOptionsContextIfDifferent(optionsContext) {