skipOrgCheck on avatar component

This commit is contained in:
2026-01-27 12:07:54 +00:00
parent 68262d92a9
commit b11379e380
3 changed files with 10 additions and 2 deletions

View File

@@ -49,6 +49,7 @@ export default function Avatar({
size, size,
textClass = "text-xs", textClass = "text-xs",
strong = false, strong = false,
skipOrgCheck = false,
className, className,
}: { }: {
avatarURL?: string | null; avatarURL?: string | null;
@@ -57,6 +58,7 @@ export default function Avatar({
size?: number; size?: number;
textClass?: string; textClass?: string;
strong?: boolean; strong?: boolean;
skipOrgCheck?: boolean;
className?: string; className?: string;
}) { }) {
// if the username matches the authed user, use their avatarURL and name (avoid stale data) // if the username matches the authed user, use their avatarURL and name (avoid stale data)
@@ -69,13 +71,15 @@ export default function Avatar({
? FALLBACK_COLOURS[hashStringToIndex(username, FALLBACK_COLOURS.length)] ? FALLBACK_COLOURS[hashStringToIndex(username, FALLBACK_COLOURS.length)]
: "bg-muted"; : "bg-muted";
const showAvatar = skipOrgCheck || selectedOrganisation?.Organisation.features.userAvatars;
return ( return (
<div <div
className={cn( className={cn(
"flex items-center justify-center rounded-full", "flex items-center justify-center rounded-full",
"text-white font-medium select-none", "text-white font-medium select-none",
name && "border", name && "border",
(!avatarURL || !selectedOrganisation?.Organisation.features.userAvatars) && backgroundClass, (!avatarURL || !showAvatar) && backgroundClass,
"transition-colors", "transition-colors",
`w-${size || 6}`, `w-${size || 6}`,
@@ -83,7 +87,7 @@ export default function Avatar({
className, className,
)} )}
> >
{selectedOrganisation?.Organisation.features.userAvatars && avatarURL ? ( {showAvatar && avatarURL ? (
<img <img
src={avatarURL} src={avatarURL}
alt="Avatar" alt="Avatar"

View File

@@ -222,6 +222,7 @@ export default function LogInForm() {
username={username || undefined} username={username || undefined}
avatarURL={avatarURL} avatarURL={avatarURL}
onAvatarUploaded={setAvatarUrl} onAvatarUploaded={setAvatarUrl}
skipOrgCheck
className="mb-2" className="mb-2"
/> />
{avatarURL && ( {avatarURL && (

View File

@@ -13,6 +13,7 @@ export function UploadAvatar({
username, username,
avatarURL, avatarURL,
onAvatarUploaded, onAvatarUploaded,
skipOrgCheck = false,
className, className,
}: { }: {
name?: string; name?: string;
@@ -20,6 +21,7 @@ export function UploadAvatar({
avatarURL?: string | null; avatarURL?: string | null;
onAvatarUploaded: (avatarURL: string) => void; onAvatarUploaded: (avatarURL: string) => void;
label?: string; label?: string;
skipOrgCheck?: boolean;
className?: string; className?: string;
}) { }) {
const [uploading, setUploading] = useState(false); const [uploading, setUploading] = useState(false);
@@ -71,6 +73,7 @@ export function UploadAvatar({
size={24} size={24}
textClass={"text-4xl"} textClass={"text-4xl"}
strong strong
skipOrgCheck={skipOrgCheck}
/> />
{!uploading && showEdit && ( {!uploading && showEdit && (