better visibility check for map draw loop

This commit is contained in:
Brian 2024-05-06 19:58:01 -04:00
parent 9d888328b2
commit 980822d8d0

View file

@ -312,15 +312,15 @@
} }
}) })
// fetches node data, updates map, repeats // fetches node data, updates map, repeats
const fetchNodes = async () => { const drawMap = async shouldDraw => {
if (document.visibilityState === 'visible') { if (shouldDraw) {
try { try {
await fetch('/nodes.json').then(r => r.json()).then(updateNodes) await fetch('/nodes.json').then(r => r.json()).then(updateNodes)
} catch (e) { } catch (e) {
console.error('Failed to update nodes:', e) console.error('Failed to update nodes:', e)
} }
} }
setTimeout(() => fetchNodes(), updateInterval) setTimeout(() => drawMap(document.visibilityState === 'visible'), updateInterval)
} }
// centers map to node and opens popup // centers map to node and opens popup
const showNode = nodeNum => { const showNode = nodeNum => {
@ -346,7 +346,7 @@
} }
}) })
// let's go!!! // let's go!!!
fetchNodes().then(() => { drawMap(true).then(() => {
if (window.location.hash && !showNode(window.location.hash.slice(1))) { if (window.location.hash && !showNode(window.location.hash.slice(1))) {
history.replaceState(null, '', window.location.pathname) history.replaceState(null, '', window.location.pathname)
} }