"use client" import { Icon } from "@iconify/react" import { cn } from "@/lib/utils" const ACCENT = "#34A853" type Participant = { name: string color: string muted: boolean cameraOff?: boolean speaking?: boolean } const PARTICIPANTS: Participant[] = [ { name: "Léa Fontaine", color: "#34A853", muted: false, speaking: true }, { name: "Vincent Morel", color: "#4285F4", muted: true }, { name: "Thomas Giraud", color: "#EA4335", muted: false, cameraOff: true }, { name: "Camille Visiteur", color: "#FBBC04", muted: true }, { name: "Sofia Rossi", color: "#A142F4", muted: false }, { name: "Karim Benali", color: "#00ACC1", muted: true, cameraOff: true }, ] function initials(name: string) { return name .split(" ") .map((part) => part.charAt(0)) .slice(0, 2) .join("") } function ParticipantTile({ participant }: { participant: Participant }) { return (
{participant.cameraOff ? ( {initials(participant.name)} ) : (
{initials(participant.name)}
)}
{participant.name}
{participant.speaking ? ( ) : null}
) } const CONTROLS: { icon: string; label: string; primary?: boolean }[] = [ { icon: "mdi:microphone", label: "Micro" }, { icon: "mdi:video", label: "Caméra" }, { icon: "mdi:monitor-share", label: "Partager", primary: true }, { icon: "mdi:hand-back-left-outline", label: "Main" }, { icon: "mdi:message-outline", label: "Chat" }, ] /** Aperçu statique d'une salle de réunion UltiMeet — grille de participants et contrôles. */ export function UltimeetRoomDemo() { return (
Atelier Nord — point hebdo Chiffré 12:47
{PARTICIPANTS.map((participant) => ( ))}
{CONTROLS.map((control) => ( ))}

Aperçu statique — visio WebRTC chiffrée, rien n'est diffusé.

) }