Files
EpicNext-Cms/src/components/shared/avatar-image.tsx
T
openhands df38dccbf1
Local Build and Deploy / deploy (push) Failing after 46s
style: format code biome
2026-07-13 21:57:41 +02:00

41 lines
960 B
TypeScript

import { type AvatarOptions, getAvatarUrl } from "@/lib/imager";
interface AvatarImageProps {
figure: string;
options?: AvatarOptions;
width: number;
height: number;
alt: string;
className?: string;
}
export function AvatarImage({
figure,
options,
width,
height,
alt,
className = "",
}: AvatarImageProps) {
// Auto-pick the smallest size that still looks crisp at the requested
// dimensions, unless the caller passed an explicit size.
const max = Math.max(width, height);
const autoSize: "s" | "m" | "l" =
options?.size ??
(options?.headOnly ? "l" : max <= 40 ? "s" : max <= 80 ? "m" : "l");
return (
// eslint-disable-next-line @next/next/no-img-element
<img
src={getAvatarUrl(figure, { ...options, size: autoSize })}
alt={alt}
width={width}
height={height}
loading="lazy"
decoding="async"
style={{ maxWidth: width, maxHeight: height }}
className={`image-pixelated object-contain ${className}`}
/>
);
}