Files
WRNexusJS/packages/realtime/components/PresenceList.wrn
T
Clintchiz 4cebacadfe
Quality / quality (ubuntu-latest) (push) Failing after 12m9s
Quality / quality (windows-latest) (push) Canceled after 0s
release: WRNexusJS 0.8.3
2026-08-03 19:47:30 +05:30

30 lines
1.1 KiB
Plaintext

import { Avatar, Badge, Card } from "@wrnexus/ui"
component PresenceList {
props {
members: unknown[] = []
title: string = "People"
emptyLabel: string = "No one is online."
color: string = "primary"
size: string = "md"
class: string = ""
}
view {
<Card title='{title}' color='{color}' size='{size}' empty='{members.length == 0}' emptyTitle='{emptyLabel}' class='{class}'>
<div class="space-y-3">
{#each members as member}
<div class="flex items-center gap-3">
<Avatar src='{member.avatar || ""}' fallback='{member.name || member.userId || "?"}' size="sm" color='{color}' />
<div class="min-w-0 flex-1">
<p class="m-0 truncate text-sm font-semibold">{member.name || member.userId}</p>
<p class="m-0 text-xs text-[var(--wire-color-muted)]">{member.status || "online"}</p>
</div>
<Badge label='{member.status || "online"}' color='{member.status == "busy" ? "danger" : member.status == "away" ? "warning" : "success"}' size="sm" variant="soft" />
</div>
{/each}
</div>
</Card>
}
}