aboutsummaryrefslogtreecommitdiff
path: root/ext/bg/js/search-frontend.js
diff options
context:
space:
mode:
Diffstat (limited to 'ext/bg/js/search-frontend.js')
-rw-r--r--ext/bg/js/search-frontend.js40
1 files changed, 27 insertions, 13 deletions
diff --git a/ext/bg/js/search-frontend.js b/ext/bg/js/search-frontend.js
index 9cc1436f..e534e771 100644
--- a/ext/bg/js/search-frontend.js
+++ b/ext/bg/js/search-frontend.js
@@ -19,18 +19,7 @@
* apiOptionsGet
*/
-async function searchFrontendSetup() {
- await yomichan.prepare();
-
- const optionsContext = {
- depth: 0,
- url: window.location.href
- };
- const options = await apiOptionsGet(optionsContext);
- if (!options.scanning.enableOnSearchPage) { return; }
-
- window.frontendInitializationData = {depth: 1, proxy: false};
-
+function injectSearchFrontend() {
const scriptSrcs = [
'/mixed/js/text-scanner.js',
'/fg/js/frontend-api-receiver.js',
@@ -62,4 +51,29 @@ async function searchFrontendSetup() {
}
}
-searchFrontendSetup();
+async function main() {
+ await yomichan.prepare();
+
+ let optionsApplied = false;
+
+ const applyOptions = async () => {
+ const optionsContext = {
+ depth: 0,
+ url: window.location.href
+ };
+ const options = await apiOptionsGet(optionsContext);
+ if (!options.scanning.enableOnSearchPage || optionsApplied) { return; }
+ optionsApplied = true;
+
+ window.frontendInitializationData = {depth: 1, proxy: false, isSearchPage: true};
+ injectSearchFrontend();
+
+ yomichan.off('optionsUpdated', applyOptions);
+ };
+
+ yomichan.on('optionsUpdated', applyOptions);
+
+ await applyOptions();
+}
+
+main();