feat: add public avatar thumbnail contract
This commit is contained in:
1 parent
9702ab304c
commit
bf24d9575a
2 files changed
+51
No files matched your search
@@ -0,0 +1,24 @@
|
|||||||
|
import { renderToStaticMarkup } from "react-dom/server";
|
||||||
|
import { describe, expect, it } from "vitest";
|
||||||
|
import { UserAvatarThumbnail } from "./user-avatar-thumbnail";
|
||||||
|
|
||||||
|
describe("UserAvatarThumbnail", () => {
|
||||||
|
it("renders the supplied figure as a fixed head-only thumbnail", () => {
|
||||||
|
const html = renderToStaticMarkup(
|
||||||
|
<UserAvatarThumbnail
|
||||||
|
figure="hd-180-1.hr-828-45"
|
||||||
|
alt="Life avatar"
|
||||||
|
options={{ direction: 3 }}
|
||||||
|
/>,
|
||||||
|
);
|
||||||
|
|
||||||
|
expect(html).toContain("figure=hd-180-1.hr-828-45");
|
||||||
|
expect(html).toContain("headonly=1");
|
||||||
|
expect(html).toContain("size=l");
|
||||||
|
expect(html).toContain("direction=3");
|
||||||
|
expect(html).toContain('width="40"');
|
||||||
|
expect(html).toContain('height="40"');
|
||||||
|
expect(html).toContain('alt="Life avatar"');
|
||||||
|
expect(html).toContain("shrink-0");
|
||||||
|
});
|
||||||
|
});
|
||||||
@@ -0,0 +1,27 @@
|
|||||||
|
import { AvatarImage } from "@/components/shared/avatar-image";
|
||||||
|
import type { AvatarOptions } from "@/lib/imager";
|
||||||
|
|
||||||
|
export interface UserAvatarThumbnailProps {
|
||||||
|
figure: string;
|
||||||
|
alt: string;
|
||||||
|
options?: Omit<AvatarOptions, "headOnly" | "size">;
|
||||||
|
className?: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
export function UserAvatarThumbnail({
|
||||||
|
figure,
|
||||||
|
alt,
|
||||||
|
options,
|
||||||
|
className = "",
|
||||||
|
}: UserAvatarThumbnailProps) {
|
||||||
|
return (
|
||||||
|
<AvatarImage
|
||||||
|
figure={figure}
|
||||||
|
options={{ ...options, headOnly: true, size: "l" }}
|
||||||
|
width={40}
|
||||||
|
height={40}
|
||||||
|
alt={alt}
|
||||||
|
className={`shrink-0 ${className}`.trim()}
|
||||||
|
/>
|
||||||
|
);
|
||||||
|
}
|
||||||
Reference in new issue
Block a user