Skip to content

Commit ddd655d

Browse files
committed
chore: update ui
1 parent 36f1a1c commit ddd655d

File tree

6 files changed

+325
-106
lines changed

6 files changed

+325
-106
lines changed

packages/core/src/client/webcomponents/.generated/css.ts

Lines changed: 1 addition & 1 deletion
Large diffs are not rendered by default.
Lines changed: 9 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -1,56 +1,28 @@
11
<script setup lang="ts">
2-
import type { DevToolsLogEntry, DevToolsLogLevel } from '@vitejs/devtools-kit'
3-
import DockIcon from './DockIcon.vue'
2+
import type { DevToolsLogEntry } from '@vitejs/devtools-kit'
3+
import { useTimeAgo } from '@vueuse/core'
4+
import { levels } from './LogItemConstants'
45
5-
// @unocss-include
6-
7-
defineProps<{
6+
const props = defineProps<{
87
entry: DevToolsLogEntry
98
compact?: boolean
109
}>()
1110
12-
const levelIcons: Record<DevToolsLogLevel, string> = {
13-
info: 'ph:info-duotone',
14-
warn: 'ph:warning-duotone',
15-
error: 'ph:x-circle-duotone',
16-
success: 'ph:check-circle-duotone',
17-
debug: 'ph:bug-duotone',
18-
}
19-
20-
const levelIndicatorColors: Record<DevToolsLogLevel, string> = {
21-
info: 'bg-blue',
22-
warn: 'bg-amber',
23-
error: 'bg-red',
24-
success: 'bg-green',
25-
debug: 'bg-gray',
26-
}
27-
28-
const levelColors: Record<DevToolsLogLevel, string> = {
29-
info: 'text-blue',
30-
warn: 'text-amber',
31-
error: 'text-red',
32-
success: 'text-green',
33-
debug: 'text-gray',
34-
}
35-
36-
function formatTime(ts: number): string {
37-
return new Date(ts).toLocaleTimeString()
38-
}
11+
const timeAgo = useTimeAgo(() => props.entry.timestamp)
3912
</script>
4013

4114
<template>
4215
<div class="flex items-start gap-2 relative">
43-
<div class="w-2px flex-none absolute left-0 top-4px bottom-4px rounded-r" :class="[levelIndicatorColors[entry.level] || 'bg-gray']" />
16+
<div class="w-2px flex-none absolute left-0 top-4px bottom-4px rounded-r" :class="[levels[entry.level]?.bg || 'bg-gray']" />
4417

4518
<div
4619
v-if="entry.status === 'loading'"
4720
class="flex-none mt-0.5 border-2 border-current border-t-transparent rounded-full animate-spin op50 w-4 h-4"
4821
/>
49-
<DockIcon
22+
<div
5023
v-else
51-
:icon="levelIcons[entry.level]"
5224
class="flex-none mt-0.5 w-4 h-4"
53-
:class="[levelColors[entry.level]]"
25+
:class="[levels[entry.level]?.icon, levels[entry.level]?.color]"
5426
/>
5527

5628
<div class="flex-1 min-w-0">
@@ -69,7 +41,7 @@ function formatTime(ts: number): string {
6941
>{{ label }}</span>
7042
</div>
7143
</div>
72-
<span v-if="!compact" class="text-xs op40 flex-none">{{ formatTime(entry.timestamp) }}</span>
44+
<span v-if="!compact" class="text-xs op40 flex-none" :title="new Date(entry.timestamp).toLocaleString()">{{ timeAgo }}</span>
7345
<slot name="actions" />
7446
</div>
7547
</template>
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
import type { DevToolsLogLevel } from '@vitejs/devtools-kit'
2+
3+
// @unocss-include
4+
5+
export type LogSource = 'server' | 'client'
6+
7+
export interface LevelStyle {
8+
icon: string
9+
color: string
10+
bg: string
11+
}
12+
13+
export interface SourceStyle {
14+
icon: string
15+
color: string
16+
label: string
17+
}
18+
19+
export const levels: Record<DevToolsLogLevel, LevelStyle> = {
20+
info: { icon: 'i-ph:info-duotone', color: 'text-blue', bg: 'bg-blue' },
21+
warn: { icon: 'i-ph:warning-duotone', color: 'text-amber', bg: 'bg-amber' },
22+
error: { icon: 'i-ph:x-circle-duotone', color: 'text-red', bg: 'bg-red' },
23+
success: { icon: 'i-ph:check-circle-duotone', color: 'text-green', bg: 'bg-green' },
24+
debug: { icon: 'i-ph:bug-duotone', color: 'text-gray', bg: 'bg-gray' },
25+
}
26+
27+
export const sources: Record<LogSource, SourceStyle> = {
28+
server: { icon: 'i-ph:hexagon-duotone', color: 'text-green', label: 'Server' },
29+
client: { icon: 'i-ph:globe-simple-duotone', color: 'text-amber', label: 'Client' },
30+
}

packages/core/src/client/webcomponents/components/ToastOverlay.vue

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22
import type { DocksContext } from '@vitejs/devtools-kit/client'
33
import { useLogs } from '../state/logs'
44
import { dismissToast, useToasts } from '../state/toasts'
5-
import DockIcon from './DockIcon.vue'
65
import LogItem from './LogItem.vue'
76
87
// @unocss-include
@@ -47,7 +46,7 @@ function openLogs(toastId: string) {
4746
class="flex-none op30 hover:op100 p-0.5 rounded hover:bg-active transition"
4847
@click.stop="dismissToast(toast.id)"
4948
>
50-
<DockIcon icon="ph:x" class="w-3 h-3" />
49+
<div class="i-ph-x w-3 h-3" />
5150
</button>
5251
</template>
5352
</LogItem>

0 commit comments

Comments
 (0)