diff --git a/wikiweaver-web/js/index.js b/wikiweaver-web/js/index.js index 09eb7e9..3a707d8 100644 --- a/wikiweaver-web/js/index.js +++ b/wikiweaver-web/js/index.js @@ -34,10 +34,10 @@ let data = reef.signal({ countdownStart: 0, countdownInput: "", startPage: "", - startPagePlaceholder: "Gingerbread", + startPagePlaceholder: "", startPageSuggestions: [], goalPage: "", - goalPagePlaceholder: "League of Legends", + goalPagePlaceholder: "", goalPageSuggestions: [], players: {}, }); @@ -368,15 +368,15 @@ document.addEventListener("reef:signal", async (event) => { ResetCountdownTimer(); ResetStartAndGoalPages(); CreateNicerExample(); - await UpdatePagePlaceholderEveryFewSeconds(10); + await UpdatePagePlaceholderEveryFewSeconds(5); break; case LobbyState.RESET: - await UpdatePagePlaceholderEveryFewSeconds(10); + await UpdatePagePlaceholderEveryFewSeconds(5); break; case LobbyState.IDLE: - await UpdatePagePlaceholderEveryFewSeconds(10); + await UpdatePagePlaceholderEveryFewSeconds(5); break; case LobbyState.RACING: @@ -656,26 +656,49 @@ function IsNumber(time) { // ===== PAGE PLACEHOLDER ===== var PagePlaceholderTimer; +var ShouldUpdateStartPage; +var PagePlaceholderLock; function ResetPagePlaceholderTimer() { + ShouldUpdateStartPage = true; clearInterval(PagePlaceholderTimer); } async function UpdatePagePlaceholderEveryFewSeconds(n) { - await SetPagePlaceholderToRandomArticles(); + // I dont really like this, but whatever. + if (PagePlaceholderLock) return; + PagePlaceholderLock = true; ResetPagePlaceholderTimer(); + + if (!data.startPagePlaceholder) + await UpdateStartPagePlaceholder(); + + if (!data.goalPagePlaceholder) + UpdateGoalPagePlaceholder(); + PagePlaceholderTimer = setInterval( - SetPagePlaceholderToRandomArticles, - n * 1_000 - ); + async () => { + if (ShouldUpdateStartPage) + await UpdateStartPagePlaceholder(); + else + UpdateGoalPagePlaceholder(); + + ShouldUpdateStartPage = !ShouldUpdateStartPage; + }, + n * 1_000); + + PagePlaceholderLock = false; } -async function SetPagePlaceholderToRandomArticles() { +async function UpdateStartPagePlaceholder() { let [startPage] = await GetRandomWikipediaArticles(1); - document.getElementById("start-page-input").placeholder = startPage; - goalPage = goalarticles[Math.floor(Math.random() * goalarticles.length)]; - document.getElementById("goal-page-input").placeholder = goalPage; + data.startPagePlaceholder = startPage; +} + +function UpdateGoalPagePlaceholder() { + let goalPage = goalarticles[Math.floor(Math.random() * goalarticles.length)]; + data.goalPagePlaceholder = goalPage; } document.addEventListener("DOMContentLoaded", async () => { diff --git a/wikiweaver-web/js/networking.js b/wikiweaver-web/js/networking.js index 24c1f70..9811596 100644 --- a/wikiweaver-web/js/networking.js +++ b/wikiweaver-web/js/networking.js @@ -87,9 +87,9 @@ async function JoinLobby() { }); globalThis.socket.addEventListener("close", (event) => { - if (PingTimer) clearInterval(PingTimer); - if (CountdownTimer) clearInterval(CountdownTimer); - if (PagePlaceholderTimer) clearInterval(PagePlaceholderTimer); + clearInterval(PingTimer); + clearInterval(CountdownTimer); + ResetPagePlaceholderTimer(); data.connectionStatus = ConnectionStatus.DISCONNECTED; });