You've already forked agentic-coding-workflow
feat(web): SessionStatusBadge component (4 statuses)
This commit is contained in:
@@ -0,0 +1,51 @@
|
||||
<script setup lang="ts">
|
||||
import { computed } from 'vue'
|
||||
|
||||
const props = defineProps<{
|
||||
status: 'starting' | 'running' | 'crashed' | 'exited'
|
||||
}>()
|
||||
|
||||
const cls = computed(() => {
|
||||
switch (props.status) {
|
||||
case 'starting':
|
||||
return 'bg-blue-100 text-blue-800 border-blue-300'
|
||||
case 'running':
|
||||
return 'bg-green-100 text-green-800 border-green-300'
|
||||
case 'crashed':
|
||||
return 'bg-red-100 text-red-800 border-red-300'
|
||||
case 'exited':
|
||||
return 'bg-gray-100 text-gray-700 border-gray-300'
|
||||
}
|
||||
})
|
||||
|
||||
const label = computed(() => {
|
||||
switch (props.status) {
|
||||
case 'starting':
|
||||
return 'Starting'
|
||||
case 'running':
|
||||
return 'Running'
|
||||
case 'crashed':
|
||||
return 'Crashed'
|
||||
case 'exited':
|
||||
return 'Exited'
|
||||
}
|
||||
})
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<span
|
||||
class="inline-flex items-center px-2 py-0.5 text-xs font-medium border rounded"
|
||||
:class="cls"
|
||||
>
|
||||
<span
|
||||
class="w-1.5 h-1.5 rounded-full mr-1"
|
||||
:class="{
|
||||
'bg-blue-500 animate-pulse': status === 'starting',
|
||||
'bg-green-500': status === 'running',
|
||||
'bg-red-500': status === 'crashed',
|
||||
'bg-gray-400': status === 'exited',
|
||||
}"
|
||||
/>
|
||||
{{ label }}
|
||||
</span>
|
||||
</template>
|
||||
Reference in New Issue
Block a user