fix app updating

This commit is contained in:
Chris Wanstrath 2026-02-15 09:13:53 -08:00
parent f3cc26252c
commit 7f2343fc04

View File

@ -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}`)
})
}
} }