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}
);
});
MyAvatar.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,
};