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';
const Avatar = React.forwardRef<AvatarPrimitive.RootRef, AvatarPrimitive.RootProps>( ({ className, ...props }, ref) => ( <AvatarPrimitive.Root ref={ref} className={cn('relative flex h-10 w-10 shrink-0 overflow-hidden rounded-full', className)} {...props} /> ));Avatar.displayName = AvatarPrimitive.Root.displayName;
const AvatarImage = React.forwardRef<AvatarPrimitive.ImageRef, AvatarPrimitive.ImageProps>( ({ className, ...props }, ref) => ( <AvatarPrimitive.Image ref={ref} className={cn('aspect-square h-full w-full', className)} {...props} /> ));AvatarImage.displayName = AvatarPrimitive.Image.displayName;
const AvatarFallback = React.forwardRef<AvatarPrimitive.FallbackRef, AvatarPrimitive.FallbackProps>( ({ className, ...props }, ref) => ( <AvatarPrimitive.Fallback ref={ref} className={cn( 'flex h-full w-full items-center justify-center rounded-full bg-muted', className )} {...props} /> ));AvatarFallback.displayName = AvatarPrimitive.Fallback.displayName;
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) |