Skip to content

Commit 8400319

Browse files
authored
fix: fixes flushing race bug where container events were not show on page (#3445)
2 parents eefa353 + b7bd763 commit 8400319

File tree

2 files changed

+11
-4
lines changed

2 files changed

+11
-4
lines changed

assets/components/LogViewer/ContainerEventLogItem.vue

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<template>
22
<div class="flex w-full flex-col">
33
<div class="relative flex items-start gap-x-2">
4-
<ContainerName class="flex-none" :id="logEntry.containerID" v-if="showContainerName" />
4+
<RandomColorTag class="flex-none" :value="container.name" v-if="showContainerName" />
55
<LogDate :date="logEntry.date" v-if="showTimestamp" />
66
<LogLevel class="flex" />
77
<div class="whitespace-pre-wrap" :data-event="logEntry.event" v-html="logEntry.message"></div>
@@ -33,6 +33,10 @@ const router = useRouter();
3333
const { showToast } = useToast();
3434
const { t } = useI18n();
3535
36+
const { currentContainer } = useContainerStore();
37+
38+
const container = currentContainer(toRef(() => logEntry.containerID));
39+
3640
const { logEntry } = defineProps<{
3741
logEntry: ContainerEventLogEntry;
3842
showContainerName?: boolean;

assets/composable/eventStreams.ts

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -130,16 +130,19 @@ function useLogStream(url: Ref<string>, loadMoreUrl?: Ref<string>) {
130130
error.value = false;
131131
es = new EventSource(urlWithParams.value);
132132
es.addEventListener("container-event", (e) => {
133-
const event = JSON.parse((e as MessageEvent).data) as { actorId: string; name: string };
133+
const event = JSON.parse((e as MessageEvent).data) as {
134+
actorId: string;
135+
name: "container-stopped" | "container-started";
136+
};
134137
const containerEvent = new ContainerEventLogEntry(
135138
event.name == "container-started" ? "Container started" : "Container stopped",
136139
event.actorId,
137140
new Date(),
138-
event.name as "container-stopped" | "container-started",
141+
event.name,
139142
);
140143

141144
buffer.value = [...buffer.value, containerEvent];
142-
145+
flushBuffer();
143146
flushBuffer.flush();
144147
});
145148

0 commit comments

Comments
 (0)