fix app updating
This commit is contained in:
parent
f3cc26252c
commit
7f2343fc04
|
|
@ -47,23 +47,9 @@ events.onmessage = e => {
|
||||||
const prev = apps
|
const prev = apps
|
||||||
setApps(JSON.parse(e.data))
|
setApps(JSON.parse(e.data))
|
||||||
|
|
||||||
// Full re-render if app list changed structurally or selected app disappeared
|
if (selectedApp && !apps.some(a => a.name === selectedApp)) {
|
||||||
const added = apps.some(a => !prev.find(p => p.name === a.name))
|
setSelectedApp(null)
|
||||||
const removed = prev.some(p => !apps.find(a => a.name === p.name))
|
|
||||||
if (added || removed || (selectedApp && !apps.some(a => a.name === selectedApp))) {
|
|
||||||
if (selectedApp && !apps.some(a => a.name === selectedApp)) {
|
|
||||||
setSelectedApp(null)
|
|
||||||
}
|
|
||||||
render()
|
|
||||||
return
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Targeted DOM updates for state-only changes
|
render()
|
||||||
const states = ['running', 'stopped', 'starting', 'stopping', 'invalid']
|
|
||||||
for (const app of apps) {
|
|
||||||
document.querySelectorAll(`[data-app="${app.name}"]`).forEach(dot => {
|
|
||||||
for (const s of states) dot.classList.remove(`state-${s}`)
|
|
||||||
dot.classList.add(`state-${app.state}`)
|
|
||||||
})
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user