Skip to content

Commit 923e9f9

Browse files
authored
feat: cancel auto-delete timer when log entry is selected (#275)
1 parent 2c4e6f6 commit 923e9f9

File tree

2 files changed

+20
-1
lines changed

2 files changed

+20
-1
lines changed

packages/core/playground/src/pages/devtools.vue

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,8 @@ const logStatus = ref<'idle' | 'loading'>('idle')
1818
const logId = ref('')
1919
const logDescription = ref('')
2020
const logStacktrace = ref('')
21+
const logAutoDismiss = ref<number>()
22+
const logAutoDelete = ref<number>()
2123
2224
// Update form
2325
const updateId = ref('')
@@ -56,6 +58,8 @@ async function addLog() {
5658
id: logId.value || undefined,
5759
description: logDescription.value || undefined,
5860
stacktrace: logStacktrace.value || undefined,
61+
autoDismiss: logAutoDismiss.value,
62+
autoDelete: logAutoDelete.value,
5963
})
6064
}
6165
@@ -231,6 +235,14 @@ function incrementCounter() {
231235
<span op50 text-xs>Stacktrace</span>
232236
<textarea v-model="logStacktrace" rows="3" border="~ base" rounded px2 py1 text-sm bg-transparent outline-none resize-y font-mono />
233237
</label>
238+
<label flex="~ col gap-1">
239+
<span op50 text-xs>Auto Dismiss</span>
240+
<input v-model="logAutoDismiss" type="number" border="~ base" rounded px2 py1 text-sm bg-transparent outline-none>
241+
</label>
242+
<label flex="~ col gap-1">
243+
<span op50 text-xs>Auto Delete</span>
244+
<input v-model="logAutoDelete" type="number" border="~ base" rounded px2 py1 text-sm bg-transparent outline-none>
245+
</label>
234246
</div>
235247
<div flex items-center gap-3 mt2>
236248
<label flex items-center gap-1 text-xs>

packages/core/src/client/webcomponents/components/views-builtin/ViewBuiltinLogs.vue

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
import type { DevToolsLogEntry, DevToolsLogEntryFrom, DevToolsLogLevel } from '@vitejs/devtools-kit'
33
import type { DocksContext } from '@vitejs/devtools-kit/client'
44
import { useClipboard, useTimeAgo } from '@vueuse/core'
5-
import { computed, onMounted, ref } from 'vue'
5+
import { computed, onMounted, ref, watch } from 'vue'
66
import { markLogsAsRead, useLogs } from '../../state/logs'
77
import FilterToggles from '../display/FilterToggles.vue'
88
import HashBadge from '../display/HashBadge.vue'
@@ -161,6 +161,13 @@ const selectedEntry = computed(() => {
161161
return logsState.entries.find(e => e.id === selectedId.value) ?? null
162162
})
163163
164+
watch(selectedEntry, async (entry) => {
165+
if (!entry?.autoDelete)
166+
return
167+
168+
await props.context.rpc.call('devtoolskit:internal:logs:update', entry.id, { autoDelete: 0 })
169+
})
170+
164171
const selectedTimeAgo = useTimeAgo(computed(() => selectedEntry.value?.timestamp ?? Date.now()))
165172
const { copy: copyStacktrace, copied: stacktraceCopied } = useClipboard()
166173

0 commit comments

Comments
 (0)