const App = `import { forwardRef } from "react"; import { useMemo } from "react"; import { AvatarIcon, useAvatar } from "@nextui-org/react"; const MyAvatar = forwardRef((props, ref) => { const { src, icon = , alt, classNames, slots, name, showFallback, fallback: fallbackComponent, getInitials, getAvatarProps, getImageProps, } = useAvatar({ ref, ...props, }); const fallback = useMemo(() => { if (!showFallback && src) return null; const ariaLabel = alt || name || "avatar"; if (fallbackComponent) { return (
{fallbackComponent}
); } return name ? ( {getInitials(name)} ) : ( {icon} ); }, [showFallback, src, fallbackComponent, name, classNames]); return (
{src && {alt}} {fallback}
); }); Avatar.displayName = "MyAvatar"; export default MyAvatar;`; const AppTs = `import { forwardRef, useMemo } from "react"; import { AvatarIcon, useAvatar, AvatarProps as BaseAvatarProps } from "@nextui-org/react"; export interface AvatarProps extends BaseAvatarProps {} const MyAvatar = forwardRef((props, ref) => { const { src, icon = , alt, classNames, slots, name, showFallback, fallback: fallbackComponent, getInitials, getAvatarProps, getImageProps, } = useAvatar({ ref, ...props, }); const fallback = useMemo(() => { if (!showFallback && src) return null; const ariaLabel = alt || name || "avatar"; if (fallbackComponent) { return (
{fallbackComponent}
); } return name ? ( {getInitials(name)} ) : ( {icon} ); }, [showFallback, src, fallbackComponent, name, classNames]); return (
{src && {alt}} {fallback}
); }); Avatar.displayName = "MyAvatar"; export default MyAvatar;`; const react = { "/App.jsx": App, }; const reactTs = { "/App.tsx": AppTs, }; export default { ...react, ...reactTs, };