Display try catch refactor (#704)
* Remove try-catch from _termLookup Already handled by _onTermLookup * Move try-catch out of _onTermLookup and into _onGlossaryMouseUp
This commit is contained in:
parent
f271c83d77
commit
a562a11498
@ -521,78 +521,74 @@ class Display extends EventDispatcher {
|
||||
|
||||
_onGlossaryMouseUp(e) {
|
||||
if (!this._clickScanPrevent && DOM.isMouseButtonPressed(e, 'primary')) {
|
||||
this._onTermLookup(e);
|
||||
try {
|
||||
this._onTermLookup(e);
|
||||
} catch (error) {
|
||||
this.onError(error);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
async _onTermLookup(e) {
|
||||
try {
|
||||
if (!this._historyHasState()) { return; }
|
||||
if (!this._historyHasState()) { return; }
|
||||
|
||||
const termLookupResults = await this._termLookup(e);
|
||||
if (!termLookupResults || !this._historyHasState()) { return; }
|
||||
const termLookupResults = await this._termLookup(e);
|
||||
if (!termLookupResults || !this._historyHasState()) { return; }
|
||||
|
||||
const {state} = this._history;
|
||||
const {textSource, definitions} = termLookupResults;
|
||||
const {state} = this._history;
|
||||
const {textSource, definitions} = termLookupResults;
|
||||
|
||||
const scannedElement = e.target;
|
||||
const sentenceExtent = this._options.anki.sentenceExt;
|
||||
const layoutAwareScan = this._options.scanning.layoutAwareScan;
|
||||
const sentence = docSentenceExtract(textSource, sentenceExtent, layoutAwareScan);
|
||||
const scannedElement = e.target;
|
||||
const sentenceExtent = this._options.anki.sentenceExt;
|
||||
const layoutAwareScan = this._options.scanning.layoutAwareScan;
|
||||
const sentence = docSentenceExtract(textSource, sentenceExtent, layoutAwareScan);
|
||||
|
||||
state.focusEntry = this._entryIndexFind(scannedElement);
|
||||
state.scrollX = this._windowScroll.x;
|
||||
state.scrollY = this._windowScroll.y;
|
||||
this._historyStateUpdate(state);
|
||||
state.focusEntry = this._entryIndexFind(scannedElement);
|
||||
state.scrollX = this._windowScroll.x;
|
||||
state.scrollY = this._windowScroll.y;
|
||||
this._historyStateUpdate(state);
|
||||
|
||||
const query = textSource.text();
|
||||
const details = {
|
||||
focus: false,
|
||||
history: true,
|
||||
params: this._createSearchParams('terms', query, false),
|
||||
state: {
|
||||
focusEntry: 0,
|
||||
sentence,
|
||||
url: state.url
|
||||
},
|
||||
content: {
|
||||
definitions
|
||||
}
|
||||
};
|
||||
this.setContent(details);
|
||||
} catch (error) {
|
||||
this.onError(error);
|
||||
}
|
||||
const query = textSource.text();
|
||||
const details = {
|
||||
focus: false,
|
||||
history: true,
|
||||
params: this._createSearchParams('terms', query, false),
|
||||
state: {
|
||||
focusEntry: 0,
|
||||
sentence,
|
||||
url: state.url
|
||||
},
|
||||
content: {
|
||||
definitions
|
||||
}
|
||||
};
|
||||
this.setContent(details);
|
||||
}
|
||||
|
||||
async _termLookup(e) {
|
||||
try {
|
||||
e.preventDefault();
|
||||
e.preventDefault();
|
||||
|
||||
const {length: scanLength, deepDomScan: deepScan, layoutAwareScan} = this._options.scanning;
|
||||
const textSource = docRangeFromPoint(e.clientX, e.clientY, deepScan);
|
||||
if (textSource === null) {
|
||||
const {length: scanLength, deepDomScan: deepScan, layoutAwareScan} = this._options.scanning;
|
||||
const textSource = docRangeFromPoint(e.clientX, e.clientY, deepScan);
|
||||
if (textSource === null) {
|
||||
return false;
|
||||
}
|
||||
|
||||
let definitions, length;
|
||||
try {
|
||||
textSource.setEndOffset(scanLength, layoutAwareScan);
|
||||
|
||||
({definitions, length} = await api.termsFind(textSource.text(), {}, this.getOptionsContext()));
|
||||
if (definitions.length === 0) {
|
||||
return false;
|
||||
}
|
||||
|
||||
let definitions, length;
|
||||
try {
|
||||
textSource.setEndOffset(scanLength, layoutAwareScan);
|
||||
|
||||
({definitions, length} = await api.termsFind(textSource.text(), {}, this.getOptionsContext()));
|
||||
if (definitions.length === 0) {
|
||||
return false;
|
||||
}
|
||||
|
||||
textSource.setEndOffset(length, layoutAwareScan);
|
||||
} finally {
|
||||
textSource.cleanup();
|
||||
}
|
||||
|
||||
return {textSource, definitions};
|
||||
} catch (error) {
|
||||
this.onError(error);
|
||||
textSource.setEndOffset(length, layoutAwareScan);
|
||||
} finally {
|
||||
textSource.cleanup();
|
||||
}
|
||||
|
||||
return {textSource, definitions};
|
||||
}
|
||||
|
||||
_onAudioPlay(e) {
|
||||
|
Loading…
Reference in New Issue
Block a user