fix app updating
This commit is contained in:
parent
f3cc26252c
commit
7f2343fc04
|
|
@ -47,23 +47,9 @@ events.onmessage = e => {
|
|||
const prev = apps
|
||||
setApps(JSON.parse(e.data))
|
||||
|
||||
// Full re-render if app list changed structurally or selected app disappeared
|
||||
const added = apps.some(a => !prev.find(p => p.name === a.name))
|
||||
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
|
||||
if (selectedApp && !apps.some(a => a.name === selectedApp)) {
|
||||
setSelectedApp(null)
|
||||
}
|
||||
|
||||
// Targeted DOM updates for state-only changes
|
||||
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}`)
|
||||
})
|
||||
}
|
||||
render()
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user