Hotfix to keep from checks breaking when entering a new scene.

This commit is contained in:
Ada Werefox 2024-04-23 00:17:23 -05:00
parent b8c4dbe022
commit 25f664ee4e
1 changed files with 51 additions and 41 deletions

View File

@ -79,7 +79,6 @@ async function initialize_elements() {
return;
}
// Initialize global state
current_checks = checks.collected + checks.found;
current_entrances = entrances.found;
@ -122,32 +121,39 @@ async function initialize_elements() {
async function refresh_elements() {
try {
const response = await update.fetch_api(server_address, "overview");
const response = await update.fetch_api(server_address, "overview");
// Check if the "Hide completed areas" option is checked
hide_completed_areas = document.getElementById("hideDone").checked;
// Check if the "Hide completed areas" option is checked
hide_completed_areas = document.getElementById("hideDone").checked;
if (response.data) {
if (!can_access_api_server) {
console.info("I found the server!");
document.getElementById("status-block").classList.add("hidden");
can_access_api_server = true;
await initialize_elements();
}
is_timeout = false;
await update_if_changes(response.data);
setTimeout(refresh_elements, 500)
} else if (response.error) {
setTimeout(refresh_elements, 1100)
if (response.error.error) {
if (!is_timeout) {
is_timeout = true;
console.debug("Received timeout from API server.");
}
if (response.data) {
if (!can_access_api_server) {
console.info("I found the server!");
document.getElementById("status-block").classList.add("hidden");
can_access_api_server = true;
await initialize_elements();
}
is_timeout = false;
await update_if_changes(response.data);
setTimeout(refresh_elements, 500);
} else if (response.error) {
setTimeout(refresh_elements, 1100);
if (response.error.error) {
if (!is_timeout) {
is_timeout = true;
console.debug("Received timeout from API server.");
}
if (!can_access_api_server) {
console.info("I found the server!");
document.getElementById("status-block").classList.add("hidden");
can_access_api_server = true;
}
} else {
if (can_access_api_server) {
console.debug("Could not access the API server.");
document.getElementById("status-block").classList.remove("hidden");
}
can_access_api_server = false;
}
} else {
if (can_access_api_server) {
@ -155,21 +161,11 @@ async function refresh_elements() {
document.getElementById("status-block").classList.remove("hidden");
}
can_access_api_server = false;
setTimeout(refresh_elements, 1100);
}
} else {
if (can_access_api_server) {
console.debug("Could not access the API server.");
document.getElementById("status-block").classList.remove("hidden");
}
can_access_api_server = false;
setTimeout(refresh_elements, 1100)
}
} catch (error) {
setTimeout(refresh_elements, 1100)
setTimeout(refresh_elements, 1100);
}
}
async function update_if_changes(overview) {
@ -574,7 +570,9 @@ async function initialize_checks_list(checks_list, checks) {
// Update the check totals
checks_list.querySelector(
".breakdown-block-checks-title"
).textContent = `Checks: ${checks.collected + checks.found}/${checks.total} (${checks.remaining} left)`;
).textContent = `Checks: ${checks.collected + checks.found}/${
checks.total
} (${checks.remaining} left)`;
checks_list.querySelector(
".breakdown-block-checks-title"
).dataset.checksCollected = checks.collected + checks.found;
@ -725,7 +723,9 @@ async function initialize_summary(summary_element, scene, checks, entrances) {
summary_checks.dataset.checksCollected = checks.collected + checks.found;
summary_checks.dataset.checksRemaining = checks.remaining;
summary_checks.dataset.checksTotal = checks.total;
summary_checks.textContent = `Checks: ${checks.collected + checks.found}/${checks.total} (${checks.remaining})`;
summary_checks.textContent = `Checks: ${checks.collected + checks.found}/${
checks.total
} (${checks.remaining})`;
const summary_entrances = summary_element.querySelector(".summary-entrances");
summary_entrances.dataset.entrancesFound = entrances.found;
@ -787,7 +787,9 @@ async function update_summary(scene, checks, entrances) {
summary_checks.dataset.checksCollected = checks.collected + checks.found;
summary_checks.dataset.checksRemaining = checks.remaining;
summary_checks.dataset.checksTotal = checks.total;
summary_checks.textContent = `Checks: ${checks.collected + checks.found}/${checks.total} (${checks.remaining})`;
summary_checks.textContent = `Checks: ${checks.collected + checks.found}/${
checks.total
} (${checks.remaining})`;
}
if (entrances_changed) {
summary_entrances.dataset.entrancesFound = entrances.found;
@ -856,7 +858,9 @@ async function update_breakdown_checks(scene, checks) {
// Update the check totals
document.querySelector(
`.breakdown[data-scene="${scene}"] .breakdown-block-checks-title`
).textContent = `Checks: ${checks.collected + checks.found}/${checks.total} (${checks.remaining} left)`;
).textContent = `Checks: ${checks.collected + checks.found}/${
checks.total
} (${checks.remaining} left)`;
document.querySelector(
`.breakdown[data-scene="${scene}"] .breakdown-block-checks-title`
).dataset.checksCollected = checks.collected + checks.found;
@ -925,7 +929,10 @@ async function update_breakdown(scene, checks, entrances) {
);
// Check for changes, and if so, update
if (breakdown_checks.dataset.checksCollected != checks.collected + checks.found) {
if (
breakdown_checks.dataset.checksCollected !=
checks.collected + checks.found
) {
update_breakdown_checks(scene, checks);
}
if (breakdown_entrances.dataset.entrancesFound != entrances.found) {
@ -948,9 +955,12 @@ async function update_breakdown_list(data, changed) {
update_breakdown(
scene,
{
collected: document.querySelector(
`.breakdown[data-scene="${scene}"] .breakdown-block-checks-title`
).dataset.checksCollected,
collected: parseInt(
document.querySelector(
`.breakdown[data-scene="${scene}"] .breakdown-block-checks-title`
).dataset.checksCollected
),
found: 0,
},
data.scenes[scene]
)