From aa6556be221b7d3dc5fe357e5c6a8e3311552da9 Mon Sep 17 00:00:00 2001 From: Amir Raminfar Date: Sat, 20 Jul 2024 15:01:01 -0700 Subject: [PATCH] fix: fixes broken auto redirect. see #3123 (#3129) --- assets/components/HostMenu.vue | 4 ++++ assets/stores/container.ts | 18 +++++++++--------- assets/types/Container.d.ts | 2 +- 3 files changed, 14 insertions(+), 10 deletions(-) diff --git a/assets/components/HostMenu.vue b/assets/components/HostMenu.vue index a488ffcf..df5889a6 100644 --- a/assets/components/HostMenu.vue +++ b/assets/components/HostMenu.vue @@ -186,4 +186,8 @@ watchEffect(() => { li.exited { @apply opacity-50; } + +li.deleted { + @apply hidden; +} diff --git a/assets/stores/container.ts b/assets/stores/container.ts index 42fa4b83..c6a6cf2a 100644 --- a/assets/stores/container.ts +++ b/assets/stores/container.ts @@ -61,16 +61,16 @@ export const useContainerStore = defineStore("container", () => { }); es.addEventListener("container-event", (e) => { const event = JSON.parse((e as MessageEvent).data) as { actorId: string; name: string }; - switch (event.name) { - case "die": - const container = allContainersById.value[event.actorId]; - if (container) { + const container = allContainersById.value[event.actorId]; + if (container) { + switch (event.name) { + case "die": container.state = "exited"; - } - break; - case "destroy": - containers.value = containers.value.filter((c) => c.id !== event.actorId); - break; + break; + case "destroy": + container.state = "deleted"; + break; + } } }); diff --git a/assets/types/Container.d.ts b/assets/types/Container.d.ts index b1011cc5..568a782f 100644 --- a/assets/types/Container.d.ts +++ b/assets/types/Container.d.ts @@ -20,5 +20,5 @@ export type ContainerJson = { readonly group?: string; }; -export type ContainerState = "created" | "running" | "exited" | "dead" | "paused" | "restarting"; +export type ContainerState = "created" | "running" | "exited" | "dead" | "paused" | "restarting" | "deleted"; export type ContainerHealth = "healthy" | "unhealthy" | "starting";