29 lines
1.1 KiB
TypeScript
29 lines
1.1 KiB
TypeScript
import { useProject } from '../../context/Project/provider'
|
|
|
|
type Props = { overrideImagePath?: string }
|
|
|
|
const UserAvatar = (props?: Props) => {
|
|
const { currentSession } = useProject()
|
|
|
|
const avatarPath = props?.overrideImagePath ?? currentSession?.user?.avatarPath
|
|
|
|
if (avatarPath) return <img
|
|
className="h-8 w-8 rounded-full"
|
|
src={avatarPath}
|
|
alt="user avatar"
|
|
/>
|
|
else if (currentSession?.user?.firstName || currentSession?.user?.lastName) return (
|
|
<span className="inline-flex h-8 w-8 items-center justify-center rounded-full bg-gray-500">
|
|
<span className="text-sm font-medium leading-none text-white">
|
|
{`${currentSession?.user?.firstName[0]}${currentSession?.user?.lastName[0]}`}
|
|
</span>
|
|
</span>
|
|
)
|
|
else return <span className="inline-block h-8 w-8 overflow-hidden rounded-full bg-gray-100">
|
|
<svg className="h-full w-full text-gray-300" fill="currentColor" viewBox="0 0 24 24">
|
|
<path d="M24 20.993V24H0v-2.996A14.977 14.977 0 0112.004 15c4.904 0 9.26 2.354 11.996 5.993zM16.002 8.999a4 4 0 11-8 0 4 4 0 018 0z" />
|
|
</svg>
|
|
</span>
|
|
}
|
|
|
|
export default UserAvatar |