11<script setup lang="ts">
2- import type { DevToolsLogEntry , DevToolsLogLevel } from ' @vitejs/devtools-kit'
2+ import type { DevToolsLogEntry , DevToolsLogEntryFrom , DevToolsLogLevel } from ' @vitejs/devtools-kit'
33import type { DocksContext } from ' @vitejs/devtools-kit/client'
4- import type { LogSource } from ' ./LogItemConstants'
54import { useTimeAgo } from ' @vueuse/core'
65import { computed , onMounted , ref } from ' vue'
76import { markLogsAsRead , useLogs } from ' ../state/logs'
87import FilterToggles from ' ./FilterToggles.vue'
98import HashBadge from ' ./HashBadge.vue'
109import LogItem from ' ./LogItem.vue'
11- import { getHashColorFromString , levels , sources } from ' ./LogItemConstants'
10+ import { formEntries , getHashColorFromString , levels } from ' ./LogItemConstants'
1211
1312const props = defineProps <{
1413 context: DocksContext
@@ -23,7 +22,7 @@ type SortMode = 'newest' | 'oldest' | 'level'
2322const logsState = useLogs (props .context )
2423
2524const allLevels: DevToolsLogLevel [] = Object .keys (levels ) as DevToolsLogLevel []
26- const allSources : LogSource [] = Object .keys (sources ) as LogSource []
25+ const allFroms : DevToolsLogEntryFrom [] = Object .keys (formEntries ) as DevToolsLogEntryFrom []
2726
2827const sortLabels: Record <SortMode , string > = {
2928 newest: ' Newest first' ,
@@ -40,7 +39,7 @@ const search = ref('')
4039const selectedId = ref <string | null >(null )
4140const activeFilters = ref <Set <DevToolsLogLevel >>(new Set ())
4241const activeLabelFilters = ref <Set <string >>(new Set ())
43- const activeSources = ref <Set <LogSource >>(new Set ())
42+ const activeFromFilters = ref <Set <DevToolsLogEntryFrom >>(new Set ())
4443const activeCategories = ref <Set <string >>(new Set ())
4544const sortBy = ref <SortMode >(' newest' )
4645
@@ -75,12 +74,12 @@ function toggleLabelFilter(label: string) {
7574 filters .add (label )
7675}
7776
78- function toggleSource( source : string ) {
79- const s = activeSources .value
80- if (s .has (source as LogSource ))
81- s .delete (source as LogSource )
77+ function toggleFrom( from : DevToolsLogEntryFrom ) {
78+ const s = activeFromFilters .value
79+ if (s .has (from ))
80+ s .delete (from )
8281 else
83- s .add (source as LogSource )
82+ s .add (from )
8483}
8584
8685function toggleCategory(category : string ) {
@@ -94,15 +93,15 @@ function toggleCategory(category: string) {
9493const hasActiveFilter = computed (() => {
9594 return activeFilters .value .size > 0
9695 || activeLabelFilters .value .size > 0
97- || activeSources .value .size > 0
96+ || activeFromFilters .value .size > 0
9897 || activeCategories .value .size > 0
9998 || search .value .length > 0
10099})
101100
102101function resetFilters() {
103102 activeFilters .value .clear ()
104103 activeLabelFilters .value .clear ()
105- activeSources .value .clear ()
104+ activeFromFilters .value .clear ()
106105 activeCategories .value .clear ()
107106 search .value = ' '
108107}
@@ -133,16 +132,16 @@ const filteredEntries = computed(() => {
133132 entries = entries .filter (e => activeFilters .value .has (e .level ))
134133 if (activeLabelFilters .value .size > 0 )
135134 entries = entries .filter (e => e .labels ?.some (l => activeLabelFilters .value .has (l )))
136- if (activeSources .value .size > 0 )
137- entries = entries .filter (e => activeSources .value .has (e .source as LogSource ))
135+ if (activeFromFilters .value .size > 0 )
136+ entries = entries .filter (e => activeFromFilters .value .has (e .from as DevToolsLogEntryFrom ))
138137 if (activeCategories .value .size > 0 )
139138 entries = entries .filter (e => e .category && activeCategories .value .has (e .category ))
140139 if (search .value ) {
141140 const q = search .value .toLowerCase ()
142141 entries = entries .filter (e =>
143142 e .message .toLowerCase ().includes (q )
144143 || e .description ?.toLowerCase ().includes (q )
145- || e .source ?.toLowerCase ().includes (q )
144+ || e .from ?.toLowerCase ().includes (q )
146145 || e .category ?.toLowerCase ().includes (q )
147146 || e .labels ?.some (l => l .toLowerCase ().includes (q )),
148147 )
@@ -265,11 +264,11 @@ onMounted(() => {
265264 <div class =" border-l border-base h-4 mx-0.5" />
266265
267266 <FilterToggles
268- label =" Source "
269- :items =" allSources "
270- :active =" (activeSources as Set<string >)"
271- :styles =" sources "
272- @toggle =" toggleSource "
267+ label =" From "
268+ :items =" allFroms "
269+ :active =" (activeFromFilters as Set<DevToolsLogEntryFrom >)"
270+ :styles =" formEntries "
271+ @toggle =" (toggleFrom as (item: string) => void) "
273272 />
274273
275274 <template v-if =" allCategories .length > 0 " >
@@ -351,9 +350,9 @@ onMounted(() => {
351350 <div :class =" levels[selectedEntry.level].icon" class =" w-3.5 h-3.5" />
352351 <span class =" capitalize" >{{ selectedEntry.level }}</span >
353352 </span >
354- <span v-if =" sources [selectedEntry.source as LogSource ]" class =" flex items-center gap-1" :class =" sources [selectedEntry.source as LogSource ].color" >
355- <div :class =" sources [selectedEntry.source as LogSource ].icon" class =" w-3.5 h-3.5" />
356- {{ sources [selectedEntry.source as LogSource ].label }}
353+ <span v-if =" formEntries [selectedEntry.from as DevToolsLogEntryFrom ]" class =" flex items-center gap-1" :class =" formEntries [selectedEntry.from as DevToolsLogEntryFrom ].color" >
354+ <div :class =" formEntries [selectedEntry.from as DevToolsLogEntryFrom ].icon" class =" w-3.5 h-3.5" />
355+ {{ formEntries [selectedEntry.from as DevToolsLogEntryFrom ].label }}
357356 </span >
358357 <span v-if =" selectedEntry.status === 'loading'" class =" flex items-center gap-1 text-amber" >
359358 <div class =" w-3 h-3 border-1.5 border-current border-t-transparent rounded-full animate-spin" />
0 commit comments