diff --git a/assets/components/LogViewer/LogViewer.vue b/assets/components/LogViewer/LogViewer.vue index ee9f6e81..42291668 100644 --- a/assets/components/LogViewer/LogViewer.vue +++ b/assets/components/LogViewer/LogViewer.vue @@ -15,7 +15,7 @@ > - + @@ -32,7 +32,7 @@ const props = defineProps<{ const { container } = useContainerContext(); -let visibleKeys = persistentVisibleKeys(container); +const visibleKeys = persistentVisibleKeys(container); const { filteredPayload } = useVisibleFilter(visibleKeys); const { filteredMessages, resetSearch, isSearching } = useSearchFilter(); diff --git a/assets/composable/storage.ts b/assets/composable/storage.ts index a307687c..5399dc0e 100644 --- a/assets/composable/storage.ts +++ b/assets/composable/storage.ts @@ -8,7 +8,14 @@ if (config.hosts.length === 1 && !sessionHost.value) { } export function persistentVisibleKeys(container: Ref) { - return computed(() => useStorage(container.value.storageKey, [])); + const storage = useStorage<{ [key: string]: string[][] }>("DOZZLE_VISIBLE_KEYS", {}); + return computed(() => { + if (!(container.value.storageKey in storage.value)) { + storage.value[container.value.storageKey] = []; + } + + return storage.value[container.value.storageKey]; + }); } const DOZZLE_PINNED_CONTAINERS = "DOZZLE_PINNED_CONTAINERS"; diff --git a/assets/composable/visible.ts b/assets/composable/visible.ts index 647bd7e0..14502d1f 100644 --- a/assets/composable/visible.ts +++ b/assets/composable/visible.ts @@ -1,12 +1,12 @@ import { ComplexLogEntry, type JSONObject, type LogEntry } from "@/models/LogEntry"; -import type { ComputedRef, Ref } from "vue"; +import type { Ref } from "vue"; -export function useVisibleFilter(visibleKeys: ComputedRef>) { +export function useVisibleFilter(visibleKeys: Ref) { function filteredPayload(messages: Ref[]>) { return computed(() => { return messages.value.map((d) => { if (d instanceof ComplexLogEntry) { - return ComplexLogEntry.fromLogEvent(d, visibleKeys.value); + return ComplexLogEntry.fromLogEvent(d, visibleKeys); } else { return d; }