diff --git a/ui/src/components/realtime/RealtimeEventCard.vue b/ui/src/components/realtime/RealtimeEventCard.vue index 39d171e..be49024 100644 --- a/ui/src/components/realtime/RealtimeEventCard.vue +++ b/ui/src/components/realtime/RealtimeEventCard.vue @@ -1,6 +1,7 @@ - + + {{ operationIcon }} {{ event.operation }} · {{ event.table }} • {{ formatTimestamp(event.receivedAt) }} @@ -10,6 +11,7 @@ :is="component" v-bind="componentPropsOld" class="old-card opacity-70" + style="max-width: 350px;" /> → @@ -24,6 +27,7 @@ v-else-if="component" :is="component" v-bind="componentProps" + style="max-width: 400px;" /> @@ -80,21 +84,85 @@ const formatTimestamp = (ts) => { } const eventBgClass = computed(() => { - if (props.event.operation === 'DELETE') return 'bg-red-100/40' - if (props.event.operation === 'INSERT') return 'bg-green-100/40' + if (props.event.operation === 'DELETE') return 'delete-card' + if (props.event.operation === 'INSERT') return 'insert-card' return '' }) + +const operationIcon = computed(() => { + switch (props.event.operation) { + case 'INSERT': return '➕' + case 'DELETE': return '🗑️' + case 'UPDATE': return '✏️' + default: return '' + } +}) + +const operationClass = computed(() => { + switch (props.event.operation) { + case 'INSERT': return 'insert-chip' + case 'DELETE': return 'delete-chip' + case 'UPDATE': return 'update-chip' + default: return '' + } +}) + + diff --git a/ui/src/views/RealtimeFeedView.vue b/ui/src/views/RealtimeFeedView.vue index e7ab2ec..2392f31 100644 --- a/ui/src/views/RealtimeFeedView.vue +++ b/ui/src/views/RealtimeFeedView.vue @@ -19,13 +19,14 @@ onMounted(() => { No hay eventos aún. @@ -37,7 +38,7 @@ onMounted(() => {
+
+ {{ operationIcon }} {{ event.operation }} · {{ event.table }} • {{ formatTimestamp(event.receivedAt) }}