component. -->
Avatar Primitive
Demo
An image component featuring an alternative representation for depicting the user.
npx @react-native-reusables/cli@latest add avatar
Copy/paste the following code to ~/components/ui/avatar.tsx:
~/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 };
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> );}
Extends View props
View
Extends Image props except alt
Image
alt