35 lines
770 B
TypeScript
35 lines
770 B
TypeScript
import { Avatar } from "./Avatar"
|
|
|
|
import { AVATAR_URLS } from "../config/avatars"
|
|
|
|
interface AvatarGridProps {
|
|
headIds: string[]
|
|
activeHeads: string[]
|
|
speakingHead: string | null
|
|
headSummaries?: Record<string, string>
|
|
avatarUrls?: Record<string, string | null>
|
|
}
|
|
|
|
export function AvatarGrid({
|
|
headIds,
|
|
activeHeads,
|
|
speakingHead,
|
|
headSummaries = {},
|
|
avatarUrls = AVATAR_URLS,
|
|
}: AvatarGridProps) {
|
|
return (
|
|
<div className="avatar-grid">
|
|
{headIds.map((id) => (
|
|
<Avatar
|
|
key={id}
|
|
headId={id}
|
|
isActive={activeHeads.includes(id)}
|
|
isSpeaking={speakingHead === id}
|
|
summary={headSummaries[id]}
|
|
avatarUrl={avatarUrls[id] ?? AVATAR_URLS[id]}
|
|
/>
|
|
))}
|
|
</div>
|
|
)
|
|
}
|