* chore: Remove all avatar/logo references * Updated user profile to only use avatarUrl * fix: minor style issue * chore: Remove redundant includeTeamLogo * fix: Use right avatar default in event type list * fix: placeholder avatar team profile, target * chore: Add logoUrl/avatarUrl to JWT * fix: Bunch of org avatar issues, fix members list * Fix logoUrl on org pages * More type fixes * Hopefully final type fixes * Another round of type fixes * fix: UserForm ts * fix: Handle as return types, not input types * fix: Remove profile and add avatarUrl * fix: notFound as const * fix: Seeder avatarUrl params * revert: Migration changes for easier recovery * fix: Add explicit type to builder as avatar is now set * Add logoUrl to unpublished entity * Avatar test out of scope here * fix: Use the new avatarUrl after save * chore: Removed getOrgAvatarUrl/getTeamAvatarUrl * fix: Update sidebar image immediately after change * Unable to safe unnamed user, so default * fix: Unpublished page, add organization test * Add more tests
22 lines
689 B
TypeScript
22 lines
689 B
TypeScript
import { z } from "zod";
|
|
|
|
import { AVATAR_FALLBACK, CAL_URL } from "@calcom/lib/constants";
|
|
import type { User } from "@calcom/prisma/client";
|
|
|
|
/**
|
|
* Gives an organization aware avatar url for a user
|
|
* It ensures that the wrong avatar isn't fetched by ensuring that organizationId is always passed
|
|
* It should always return a fully formed url
|
|
*/
|
|
export const getUserAvatarUrl = (user: Pick<User, "avatarUrl"> | undefined) => {
|
|
if (user?.avatarUrl) {
|
|
const isAbsoluteUrl = z.string().url().safeParse(user.avatarUrl).success;
|
|
if (isAbsoluteUrl) {
|
|
return user.avatarUrl;
|
|
} else {
|
|
return CAL_URL + user.avatarUrl;
|
|
}
|
|
}
|
|
return CAL_URL + AVATAR_FALLBACK;
|
|
};
|