Files
Jyotisha/frontend/src/components/user-avatar.tsx
T
Jesse 49f6edd7fb
Staging Backend Quality Gate / validate (push) Successful in 13m34s
Staging Backend Quality Gate / publish (push) Has been cancelled
feat(web): add persistent beam avatars
2026-08-07 12:07:57 +08:00

33 lines
804 B
TypeScript

"use client";
import Avatar from "boring-avatars";
import { beamAvatarPalettes, type BeamAvatar } from "@/lib/beam-avatar";
export type UserAvatarProps = {
avatar: BeamAvatar;
size: number;
className?: string;
label?: string;
};
export function UserAvatar({ avatar, size, className, label }: UserAvatarProps) {
const palette = beamAvatarPalettes[avatar.palette] ?? beamAvatarPalettes[0];
return (
<span
className={className ? `user-avatar ${className}` : "user-avatar"}
style={{ width: size, height: size }}
role={label ? "img" : undefined}
aria-label={label}
aria-hidden={label ? undefined : true}
>
<Avatar
name={avatar.seed}
variant="beam"
colors={[...palette.colors]}
size={size}
/>
</span>
);
}