diff --git a/assets/stores/container.ts b/assets/stores/container.ts index 13433d59..fad8fad0 100644 --- a/assets/stores/container.ts +++ b/assets/stores/container.ts @@ -40,13 +40,23 @@ export const useContainerStore = defineStore("container", () => { }, false ); - // es.addEventListener("container-die", (e) => store.dispatch("UPDATE_CONTAINER", JSON.parse(e.data)), false); + es.addEventListener( + "container-die", + (e) => { + const event = JSON.parse((e as MessageEvent).data) as { actorId: string }; + const container = allContainersById.value[event.actorId]; + if (container) { + container.state = "dead"; + } + }, + false + ); const currentContainer = (id: Ref) => computed(() => allContainersById.value[id.value]); const appendActiveContainer = ({ id }: Container) => activeContainerIds.value.push(id); const removeActiveContainer = ({ id }: Container) => activeContainerIds.value.splice(activeContainerIds.value.indexOf(id), 1); - + return { containers, activeContainerIds, diff --git a/assets/types/Container.d.ts b/assets/types/Container.d.ts index 12220fc4..546449a2 100644 --- a/assets/types/Container.d.ts +++ b/assets/types/Container.d.ts @@ -3,8 +3,8 @@ export interface Container { readonly created: number; readonly image: string; readonly name: string; - readonly state: "created" | "running" | "exited" | "dead" | "paused" | "restarting"; readonly status: string; + state: "created" | "running" | "exited" | "dead" | "paused" | "restarting"; stat?: ContainerStat; }