Feature: Mostrar usuarios en DispositivoCard sin expandir
All checks were successful
build-and-deploy / build-and-deploy (push) Successful in 31s

- Agregar preview de usuarios que utilizan el dispositivo
- Usuarios conectados en badge rosa, desconectados en gris
- Mostrar contador total de usuarios
This commit is contained in:
2025-11-24 18:23:40 -06:00
parent 96a8f95f9e
commit f3753f2e04

View File

@@ -19,6 +19,17 @@ const connectedCount = computed(() => {
const id = props.device.id;
return props.users.filter(u => Array.isArray(u.dispositivos_conectados) && u.dispositivos_conectados.includes(id)).length;
});
// Usuarios conectados vs no conectados para mostrar en preview
const connectedUsers = computed(() => {
const id = props.device.id;
return props.users.filter(u => Array.isArray(u.dispositivos_conectados) && u.dispositivos_conectados.includes(id));
});
const disconnectedUsers = computed(() => {
const id = props.device.id;
return props.users.filter(u => !Array.isArray(u.dispositivos_conectados) || !u.dispositivos_conectados.includes(id));
});
</script>
<template>
@@ -43,6 +54,29 @@ const connectedCount = computed(() => {
<div v-if="device.descripcion">Descripción: {{ device.descripcion }}</div>
</div>
<!-- Preview de usuarios (siempre visible) -->
<div v-if="users && users.length && !simple" class="mt-2.5 pt-2.5 border-t border-border">
<div class="text-xs text-muted mb-1.5">Usuarios ({{ users.length }})</div>
<div class="flex flex-wrap gap-1.5">
<Badge
v-for="u in connectedUsers"
:key="u.username"
variant="pink"
class="text-[11px] py-0.5"
>
{{ u.username }}
</Badge>
<Badge
v-for="u in disconnectedUsers"
:key="u.username"
variant="secondary"
class="text-[11px] py-0.5"
>
{{ u.username }}
</Badge>
</div>
</div>
<div v-if="expanded && users && users.length" class="mt-2">
<div class="grid grid-cols-[repeat(auto-fill,minmax(280px,1fr))] gap-2.5">
<UserCard