import React, { useId } from 'react'; const MESSAGES = [ { showAvatar: true, lines: [{ w: '55%' }, { w: '35%' }] }, { showAvatar: false, lines: [{ w: '72%' }] }, { showAvatar: false, lines: [{ w: '48%' }, { w: '60%' }] }, { showAvatar: true, lines: [{ w: '80%' }] }, { showAvatar: false, lines: [{ w: '40%' }] }, { showAvatar: true, lines: [{ w: '65%' }, { w: '50%' }, { w: '30%' }] }, { showAvatar: false, lines: [{ w: '58%' }] }, { showAvatar: true, lines: [{ w: '45%' }] }, { showAvatar: false, lines: [{ w: '70%' }, { w: '25%' }] }, ]; export function RoomSkeleton() { const id = useId().replace(/:/g, ''); const shimmerKeyframes = ` @keyframes shimmer-${id} { 0% { background-position: -400px 0; } 100% { background-position: 400px 0; } } `; const shimmer = { background: 'linear-gradient(90deg, var(--skeleton-base) 25%, var(--skeleton-shine) 50%, var(--skeleton-base) 75%)', backgroundSize: '800px 100%', animation: `shimmer-${id} 1.6s ease-in-out infinite`, borderRadius: '4px', } as React.CSSProperties; return ( <>
{/* Header — matches PageHeader size="600" (56px) */}
{/* Avatar */}
{/* Room name */}
{/* Spacer */}
{/* Icon buttons */}
{/* Timeline */}
{MESSAGES.map((msg, i) => (
{/* Avatar — only shown on first message in a group */}
{msg.showAvatar && (
)}
{/* Username on first in group */} {msg.showAvatar && (
)} {msg.lines.map((line, j) => (
))}
))}
{/* Input bar */}
); }