(function Avatar(
{
avatarUrl = '',
fallbackUrl = defaultAvatarUrl,
size: sizeProps = '24',
name,
disabled = false,
showBorder = false,
smoothCorners = true,
status,
className,
children,
...rest
},
forwardedRef
) {
const avatarGroupContext = useAvatarContext()
const size = avatarGroupContext?.size ?? sizeProps
const loadedAvatarUrl = useProgressiveImage(avatarUrl, fallbackUrl)
const AVATAR_BORDER_RADIUS = useAvatarRadiusToken()
const StatusComponent = useMemo(() => {
if (
(isEmpty(children) && !status) ||
(children && !isValidElement(children))
) {
return null
}
const Contents = (() => {
if (children) {
return children
}
if (status) {
return (
)
}
return null
})()
return (
Contents && (
{Contents}
)
)
}, [status, size, children])
return (
= 72 && styles['big-size'],
showBorder && styles.bordered
)}
disabled={!smoothCorners}
borderRadius={AVATAR_BORDER_RADIUS}
shadow={showBorder ? getShadow(size) : undefined}
backgroundColor="surface"
backgroundImage={loadedAvatarUrl}
data-testid={AVATAR_TEST_ID}
>
{StatusComponent}
)
})