import { IconUsersGroup, IconVideo } from "@tabler/icons-react"; import { Link } from "react-router"; import { cn } from "@/lib/utils"; export interface SpaceCardData { id: string; name: string; color?: string | null; iconEmoji?: string | null; memberCount?: number; recordingCount?: number; memberEmails?: string[]; } interface SpaceCardProps { space: SpaceCardData; className?: string; } export function SpaceCard({ space, className }: SpaceCardProps) { const color = space.color || "hsl(var(--primary))"; const members = space.memberEmails ?? []; const initial = (space.name.trim().slice(0, 1) || "S").toUpperCase(); return (
{space.iconEmoji ? ( {space.iconEmoji} ) : ( {initial} )}

{space.name}

{space.memberCount ?? members.length} member {(space.memberCount ?? members.length) === 1 ? "" : "s"}
{space.recordingCount ?? 0} recording {(space.recordingCount ?? 0) === 1 ? "" : "s"}
{members.length > 0 && (
{members.slice(0, 5).map((email) => { const initials = (email.split("@")[0] || "?") .slice(0, 2) .toUpperCase(); return (
{initials}
); })} {members.length > 5 && (
+{members.length - 5}
)}
)}
); }