|
|
@@ -47,6 +47,7 @@ export default class Avatar extends BaseComponent<AvatarProps, AvatarState> {
|
|
|
onMouseLeave: PropTypes.func,
|
|
|
};
|
|
|
|
|
|
+ foundation!: AvatarFoundation;
|
|
|
constructor(props: AvatarProps) {
|
|
|
super(props);
|
|
|
this.state = {
|
|
|
@@ -106,12 +107,12 @@ export default class Avatar extends BaseComponent<AvatarProps, AvatarState> {
|
|
|
this.foundation.destroy();
|
|
|
}
|
|
|
|
|
|
- onEnter() {
|
|
|
- this.foundation.handleEnter();
|
|
|
+ onEnter(e: React.MouseEvent) {
|
|
|
+ this.foundation.handleEnter(e);
|
|
|
}
|
|
|
|
|
|
- onLeave() {
|
|
|
- this.foundation.handleLeave();
|
|
|
+ onLeave(e: React.MouseEvent) {
|
|
|
+ this.foundation.handleLeave(e);
|
|
|
}
|
|
|
|
|
|
handleError() {
|
|
|
@@ -135,19 +136,24 @@ export default class Avatar extends BaseComponent<AvatarProps, AvatarState> {
|
|
|
);
|
|
|
let content = children;
|
|
|
const hoverRender = hoverContent ? (<div className={`${prefixCls}-hover`}>{hoverContent}</div>) : null;
|
|
|
+ let ariaLabel;
|
|
|
if (isImg) {
|
|
|
content = (
|
|
|
<img src={src} srcSet={srcSet} onError={this.handleError} alt={alt} {...imgAttr} />
|
|
|
);
|
|
|
+ ariaLabel = 'avatar';
|
|
|
} else if (typeof children === 'string') {
|
|
|
content = (
|
|
|
<span className={`${prefixCls}-content`}>
|
|
|
<span className={`${prefixCls}-label`}>{children}</span>
|
|
|
</span>
|
|
|
);
|
|
|
+ ariaLabel = `avatar of ${children}`;
|
|
|
}
|
|
|
return (
|
|
|
+ // eslint-disable-next-line jsx-a11y/no-static-element-interactions,jsx-a11y/click-events-have-key-events
|
|
|
<span
|
|
|
+ aria-label={ariaLabel}
|
|
|
{...(others as any)}
|
|
|
style={style}
|
|
|
className={avatarCls}
|