From b88885582d8476803e1a1cee6c528a5eb1d18f3a Mon Sep 17 00:00:00 2001 From: Johannes Zellner Date: Wed, 23 Jul 2025 17:05:59 +0200 Subject: [PATCH] Do not access graph DOM elements if view was already destroyed --- dashboard/src/components/app/Graphs.vue | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/dashboard/src/components/app/Graphs.vue b/dashboard/src/components/app/Graphs.vue index 02c6c99c2..251e79d7f 100644 --- a/dashboard/src/components/app/Graphs.vue +++ b/dashboard/src/components/app/Graphs.vue @@ -65,6 +65,9 @@ async function liveRefresh() { metricStream.onmessage = (message) => { const data = JSON.parse(message.data); + // stop here if the DOM elements are already gone due to view change + if (!cpuGraphItem.value) return; + cpuGraphItem.value.pushData(0, data[app.id].cpu); memoryGraphItem.value.pushData(0, data[app.id].memory); diskGraphItem.value.pushData(0, data[app.id].blockReadRate, data[app.id].blockWriteRate); @@ -102,6 +105,9 @@ async function rebuild() { blockWriteTotal.value = prettyDecimalSize(metrics.blockWriteTotal); } + // stop here if the DOM elements are already gone due to view change + if (!cpuGraphItem.value) return; + cpuGraphItem.value.setDatasets(datasets.cpu); memoryGraphItem.value.setDatasets(datasets.memory); diskGraphItem.value.setDatasets(datasets.disk);