import React, { HTMLAttributes, ReactElement, ReactNode } from 'react';
import './index.scss';
type VNode = ReactElement & { type: { name: string } };
export interface AvatarProps extends HTMLAttributes {
size?: number;
icon?: ReactNode;
src?: string;
children?: React.ReactNode;
bgc?: string;
}
const Avatar: React.FC = (props) => {
const { children, size, icon, src, bgc, ...rest } = props;
const render = () => {
return React.Children.map(children, (child: ReactNode) => {
const vNode = child as VNode;
if (vNode) {
return React.cloneElement(vNode, {
style: { width: `${size}px`, height: `${size}px`, verticalAlign: 'center' }
});
}
});
};
return (
{render()}
);
};
Avatar.defaultProps = {
size: 40,
icon: '',
src: '',
bgc: '#cccccc',
children: ''
};
export default Avatar;