From 8ef2e411b300d7ed8698d4afe1488f55c90c2026 Mon Sep 17 00:00:00 2001 From: Berkay Tumal Date: Sat, 18 Jan 2025 02:37:01 +0300 Subject: [PATCH] initialize apps asynchronously in GrooveMock and update related calls --- scripts/build-pages.js | 0 src/script.js | 1 + src/scripts/grooveMock.js | 54 +++++++++++++++++++++------------------ src/welcome.js | 5 ++-- 4 files changed, 33 insertions(+), 27 deletions(-) create mode 100644 scripts/build-pages.js diff --git a/scripts/build-pages.js b/scripts/build-pages.js new file mode 100644 index 0000000..e69de29 diff --git a/src/script.js b/src/script.js index 0ec5521..a9f2707 100644 --- a/src/script.js +++ b/src/script.js @@ -5,6 +5,7 @@ window.GrooveRole = "main" if (GrooveMockInstance) { //window.Groove = new GrooveMock("./mock/apps.json") window.Groove = new GrooveMock("./mock/apps.json") + await Groove.initializeApps() window.BuildConfig = new BuildConfigMock() document.body.classList.add("groove-mock") } diff --git a/src/scripts/grooveMock.js b/src/scripts/grooveMock.js index 661e7b3..3b97c8c 100644 --- a/src/scripts/grooveMock.js +++ b/src/scripts/grooveMock.js @@ -21,35 +21,39 @@ class GrooveMock { this.#retrievedApps = []; // Use async/await pattern instead of callback - this.#initializeApps(); + this.initializeApps(); } - async #initializeApps() { - try { - const response = await fetch(this.mockURL); - const data = await response.json(); + initializeApps() { + return new Promise(async (resolve, reject) => { + try { + const response = await fetch(this.mockURL); + const data = await response.json(); - this.#retrievedApps = data.apps - .filter(app => app.packageName !== 'web.bmdominatezz.gravy') - .map(app => ({ - packageName: app.packageName, - label: app.label, - type: app.type - })); + this.#retrievedApps = data.apps + .filter(app => app.packageName !== 'web.bmdominatezz.gravy') + .map(app => ({ + packageName: app.packageName, + label: app.label, + type: app.type + })); - this.#retrievedApps.push({ - packageName: CONSTANTS.INTERNAL_SETTINGS_APP, - label: 'Groove Settings', - type: 0 - }); - this.#retrievedApps.push({ - packageName: CONSTANTS.INTERNAL_TWEAKS_APP, - label: 'Groove Tweaks', - type: 0 - }); - } catch (error) { - console.error('Failed to initialize apps:', error); - } + this.#retrievedApps.push({ + packageName: CONSTANTS.INTERNAL_SETTINGS_APP, + label: 'Groove Settings', + type: 0 + }); + this.#retrievedApps.push({ + packageName: CONSTANTS.INTERNAL_TWEAKS_APP, + label: 'Groove Tweaks', + type: 0 + }); + resolve(true) + } catch (error) { + console.error('Failed to initialize apps:', error); + reject(error); + } + }) } getSystemInsets() { diff --git a/src/welcome.js b/src/welcome.js index 9f76c33..179a0aa 100644 --- a/src/welcome.js +++ b/src/welcome.js @@ -15,6 +15,7 @@ window.GrooveRole = "main" if (GrooveMockInstance) { //window.Groove = new GrooveMock("./mock/apps.json") window.Groove = new GrooveMock("./mock/apps.json") + await Groove.initializeApps() window.BuildConfig = new BuildConfigMock() document.body.classList.add("groove-mock") } @@ -265,7 +266,7 @@ document.querySelector("#page-readme button.right-btn").addEventListener("flowCl goToPage(7) setTimeout(() => { - location.href = new URL("./",location).href + location.href = new URL("./", location).href }, 500); } @@ -373,7 +374,7 @@ if (firstWelcome && localStorage["welcomeLocalesDownloaded"] != "true") { var localesFinished = false var localeProceed = true setTimeout(async () => { - if(!BuildConfig.signed()){ + if (!BuildConfig.signed()) { updateLoaderText("") finishLocale() return;