20 lines
754 B
TypeScript
20 lines
754 B
TypeScript
import { getUserAvatarUrl } from "@calcom/lib/getAvatarUrl";
|
|
import type { User } from "@calcom/prisma/client";
|
|
import { Avatar } from "@calcom/ui";
|
|
|
|
type UserAvatarProps = Omit<React.ComponentProps<typeof Avatar>, "alt" | "imageSrc"> & {
|
|
user: Pick<User, "organizationId" | "name" | "username">;
|
|
/**
|
|
* Useful when allowing the user to upload their own avatar and showing the avatar before it's uploaded
|
|
*/
|
|
previewSrc?: string | null;
|
|
};
|
|
|
|
/**
|
|
* It is aware of the user's organization to correctly show the avatar from the correct URL
|
|
*/
|
|
export function UserAvatar(props: UserAvatarProps) {
|
|
const { user, previewSrc, ...rest } = props;
|
|
return <Avatar {...rest} alt={user.name || ""} imageSrc={previewSrc ?? getUserAvatarUrl(user)} />;
|
|
}
|