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 React from 'react';import * as AvatarPrimitive from '~/components/primitives/avatar';import { cn } from '~/lib/utils'; const Avatar = React.forwardRef< React.ElementRef<typeof AvatarPrimitive.Root>, React.ComponentPropsWithoutRef<typeof AvatarPrimitive.Root>>(({ 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< React.ElementRef<typeof AvatarPrimitive.Image>, React.ComponentPropsWithoutRef<typeof AvatarPrimitive.Image>>(({ 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< React.ElementRef<typeof AvatarPrimitive.Fallback>, React.ComponentPropsWithoutRef<typeof AvatarPrimitive.Fallback>>(({ 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