Avatar
Avatar Primitive
Demo
An image component featuring an alternative representation for depicting the user.
Installation
npx @react-native-reusables/cli@latest add avatar
Copy/paste the following code to ~/components/ui/avatar.tsx
:
import * as AvatarPrimitive from '@rn-primitives/avatar';import * as React from 'react';import { cn } from '~/lib/utils';
function Avatar({ className, ...props}: AvatarPrimitive.RootProps & { ref?: React.RefObject<AvatarPrimitive.RootRef>;}) { return ( <AvatarPrimitive.Root className={cn('relative flex h-10 w-10 shrink-0 overflow-hidden rounded-full', className)} {...props} /> );}
function AvatarImage({ className, ...props}: AvatarPrimitive.ImageProps & { ref?: React.RefObject<AvatarPrimitive.ImageRef>;}) { return ( <AvatarPrimitive.Image className={cn('aspect-square h-full w-full', className)} {...props} /> );}
function AvatarFallback({ className, ...props}: AvatarPrimitive.FallbackProps & { ref?: React.RefObject<AvatarPrimitive.FallbackRef>;}) { return ( <AvatarPrimitive.Fallback className={cn( 'flex h-full w-full items-center justify-center rounded-full bg-muted', className )} {...props} /> );}
export { Avatar, AvatarFallback, AvatarImage };
Usage
import { Avatar, AvatarFallback, AvatarImage } from '~/components/ui/avatar';import { Text } from '~/components/ui/text';
const GITHUB_AVATAR_URI = 'https://github.com/mrzachnugent.png';
function Example() { return ( <Avatar alt="Zach Nugent's Avatar"> <AvatarImage source={{ uri: GITHUB_AVATAR_URI }} /> <AvatarFallback> <Text>ZN</Text> </AvatarFallback> </Avatar> );}
Props
Avatar
Extends View
props
Prop | Type | Note |
---|---|---|
alt * | string | |
asChild | boolean | (optional) |
AvatarImage
Extends Image
props except alt
Prop | Type | Note |
---|---|---|
asChild | boolean | (optional) |
AvatarFallback
Extends View
props
Prop | Type | Note |
---|---|---|
asChild | boolean | (optional) |