use setters instead of EventDispatcher
This commit is contained in:
parent
275f455e73
commit
d93e3e1a67
@ -73,8 +73,6 @@ async function main() {
|
||||
|
||||
const isIframe = !proxy && (window !== window.parent);
|
||||
|
||||
const initEventDispatcher = new EventDispatcher();
|
||||
|
||||
const popups = {
|
||||
iframe: null,
|
||||
proxy: null,
|
||||
@ -99,18 +97,18 @@ async function main() {
|
||||
popups.normal = popup;
|
||||
}
|
||||
|
||||
if (frontend === null) {
|
||||
frontend = new Frontend(popup);
|
||||
await frontend.prepare();
|
||||
} else {
|
||||
if (isSearchPage) {
|
||||
const disabled = !options.scanning.enableOnSearchPage;
|
||||
initEventDispatcher.trigger('setDisabledOverride', {disabled});
|
||||
frontend.setDisabledOverride(disabled);
|
||||
}
|
||||
|
||||
if (isIframe) {
|
||||
initEventDispatcher.trigger('popupChange', {popup});
|
||||
await frontend.setPopup(popup);
|
||||
}
|
||||
|
||||
if (frontend === null) {
|
||||
frontend = new Frontend(popup, initEventDispatcher);
|
||||
await frontend.prepare();
|
||||
}
|
||||
};
|
||||
|
||||
|
@ -26,7 +26,7 @@
|
||||
*/
|
||||
|
||||
class Frontend extends TextScanner {
|
||||
constructor(popup, initEventDispatcher=null) {
|
||||
constructor(popup) {
|
||||
super(
|
||||
window,
|
||||
() => this.popup.isProxy() ? [] : [this.popup.getContainer()],
|
||||
@ -35,7 +35,6 @@ class Frontend extends TextScanner {
|
||||
);
|
||||
|
||||
this.popup = popup;
|
||||
this.initEventDispatcher = initEventDispatcher;
|
||||
|
||||
this._disabledOverride = false;
|
||||
|
||||
@ -77,11 +76,6 @@ class Frontend extends TextScanner {
|
||||
window.visualViewport.addEventListener('resize', this.onVisualViewportResize.bind(this));
|
||||
}
|
||||
|
||||
if (this.initEventDispatcher !== null) {
|
||||
this.initEventDispatcher.on('setDisabledOverride', this.onSetDisabledOverride.bind(this));
|
||||
this.initEventDispatcher.on('popupChange', this.onPopupChange.bind(this));
|
||||
}
|
||||
|
||||
yomichan.on('orphaned', this.onOrphaned.bind(this));
|
||||
yomichan.on('optionsUpdated', this.updateOptions.bind(this));
|
||||
yomichan.on('zoomChanged', this.onZoomChanged.bind(this));
|
||||
@ -142,6 +136,20 @@ class Frontend extends TextScanner {
|
||||
];
|
||||
}
|
||||
|
||||
setDisabledOverride(disabled) {
|
||||
this._disabledOverride = disabled;
|
||||
// other cases handed by regular options update
|
||||
if (disabled && this.enabled) {
|
||||
this.setEnabled(false);
|
||||
}
|
||||
}
|
||||
|
||||
async setPopup(popup) {
|
||||
this.onSearchClear(true);
|
||||
this.popup = popup;
|
||||
await popup.setOptions(this.options);
|
||||
}
|
||||
|
||||
async updateOptions() {
|
||||
this.setOptions(await apiOptionsGet(this.getOptionsContext()));
|
||||
|
||||
@ -237,20 +245,6 @@ class Frontend extends TextScanner {
|
||||
super.onSearchClear(changeFocus);
|
||||
}
|
||||
|
||||
onSetDisabledOverride({disabled}) {
|
||||
this._disabledOverride = disabled;
|
||||
// other cases handed by regular options update
|
||||
if (disabled && this.enabled) {
|
||||
this.setEnabled(false);
|
||||
}
|
||||
}
|
||||
|
||||
async onPopupChange({popup}) {
|
||||
this.onSearchClear(true);
|
||||
this.popup = popup;
|
||||
await popup.setOptions(this.options);
|
||||
}
|
||||
|
||||
getOptionsContext() {
|
||||
this.optionsContext.url = this.popup.url;
|
||||
return this.optionsContext;
|
||||
|
Loading…
Reference in New Issue
Block a user