refactor: extract status badge into reusable component
This commit is contained in:
@@ -0,0 +1,37 @@
|
||||
<script setup lang="ts">
|
||||
import type { ReportStatus } from '~/types/api'
|
||||
|
||||
interface Props {
|
||||
status: ReportStatus
|
||||
}
|
||||
|
||||
const props = defineProps<Props>()
|
||||
|
||||
const badgeConfig = computed(() => {
|
||||
const config: Record<ReportStatus, { color: string, text: string, icon: string }> = {
|
||||
OPEN: { color: 'info', text: 'Aperta', icon: 'it-info-circle' },
|
||||
UNDER_REVIEW: { color: 'warning', text: 'In Revisione', icon: 'it-clock' },
|
||||
ASSIGNED: { color: 'primary', text: 'Assegnata', icon: 'it-user' },
|
||||
IN_PROGRESS: { color: 'primary', text: 'In Lavorazione', icon: 'it-settings' },
|
||||
RESOLVED: { color: 'success', text: 'Risolta', icon: 'it-check-circle' },
|
||||
REJECTED: { color: 'danger', text: 'Rifiutata', icon: 'it-close-circle' },
|
||||
CLOSED: { color: 'secondary', text: 'Chiusa', icon: 'it-locked' }
|
||||
}
|
||||
|
||||
return config[props.status] || { color: 'secondary', text: props.status, icon: 'it-info-circle' }
|
||||
})
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<span class="badge badge-pill rounded-pill d-inline-flex align-items-center gap-1" :class="`bg-${badgeConfig.color}`">
|
||||
<BIIcon :name="badgeConfig.icon" size="xs" color="white" />
|
||||
{{ badgeConfig.text }}
|
||||
</span>
|
||||
</template>
|
||||
|
||||
<style scoped>
|
||||
.badge {
|
||||
font-weight: 600;
|
||||
padding: 0.35em 0.65em;
|
||||
}
|
||||
</style>
|
||||
Reference in New Issue
Block a user