Files
negareh-console/src/components/UserAvatar.tsx
T
morteza bf7d4b5e66
deploy to danak / build_and_deploy (push) Has been cancelled
avatar
2026-07-17 23:29:01 +03:30

43 lines
1.1 KiB
TypeScript

import { type FC } from 'react'
import { usePresignedUrl } from '@/pages/uploader/hooks/usePresignedUrl'
import { clx } from '@/helpers/utils'
type Props = {
src?: string | null
firstName?: string | null
lastName?: string | null
className?: string
textClassName?: string
}
const UserAvatar: FC<Props> = ({
src,
firstName,
lastName,
className = 'size-10',
textClassName = 'text-xs',
}) => {
const resolvedSrc = usePresignedUrl(src ?? undefined)
const initials =
`${String(firstName ?? '').charAt(0)}${String(lastName ?? '').charAt(0)}`.trim() ||
'?'
return (
<div
className={clx(
'shrink-0 rounded-full bg-description overflow-hidden flex items-center justify-center text-white font-medium',
className,
textClassName,
)}
>
{resolvedSrc ? (
<img src={resolvedSrc} className="size-full object-cover" alt="" />
) : (
initials
)}
</div>
)
}
export default UserAvatar