Docs
Current User Avatar
Current User Avatar
Supabase Auth-aware avatar
?It seems like you're not logged in. Login via the Dashboard to see your avatar.
Installation
Folder structure
1'use client'
2
3import { useCurrentUserImage } from '@/hooks/use-current-user-image'
4import { useCurrentUserName } from '@/hooks/use-current-user-name'
5import { Avatar, AvatarFallback, AvatarImage } from '@/components/ui/avatar'
6
7export const CurrentUserAvatar = () => {
8 const profileImage = useCurrentUserImage()
9 const name = useCurrentUserName()
10 const initials = name
11 ?.split(' ')
12 ?.map((word) => word[0])
13 ?.join('')
14 ?.toUpperCase()
15
16 return (
17 <Avatar>
18 {profileImage && <AvatarImage src={profileImage} alt={initials} />}
19 <AvatarFallback>{initials}</AvatarFallback>
20 </Avatar>
21 )
22}
Introduction
The CurrentUserAvatar
component connects to Supabase Auth to fetch the user data and show an avatar. It uses the user_metadata
property which gets populated automatically by Supabase Auth if the user logged in via a provider. If the user doesn't have a profile image, it renders their initials. If the user is logged out, it renders a ?
as a fallback, which you can change.
Usage
The CurrentUserAvatar
component is designed to be used anywhere in your app. Add the <CurrentUserAvatar />
component to your page and it will render the avatar of the current user, with a fallback.
'use client'
import { CurrentUserAvatar } from '@/components/current-user-avatar'
const CurrentUserAvatarDemo = () => {
return (
<Header className="flex items-center justify-between">
<h1>Lumon Industries</h1>
<CurrentUserAvatar />
</Header>
)
}
export default CurrentUserAvatarDemo
Props
This component doesn't accept any props. If you wish to change the fallback, you can do so by changing the CurrentUserAvatar
component directly.