jiti-meet/react/features/base/avatar/components/AbstractStatelessAvatar.tsx

51 lines
1.2 KiB
TypeScript
Raw Normal View History

2019-07-03 15:39:39 +00:00
import { PureComponent } from 'react';
export type Props = {
/**
* Color of the (initials based) avatar, if needed.
*/
color?: string;
2019-07-03 15:39:39 +00:00
/**
* Initials to be used to render the initials based avatars.
*/
initials?: string;
2019-07-03 15:39:39 +00:00
/**
* Callback to signal the failure of the loading of the URL.
*/
onAvatarLoadError?: Function;
2019-07-03 15:39:39 +00:00
2021-12-17 00:16:24 +00:00
/**
* Additional parameters to be passed to onAvatarLoadError function.
*/
onAvatarLoadErrorParams?: Object;
2021-12-17 00:16:24 +00:00
2019-07-03 15:39:39 +00:00
/**
* Expected size of the avatar.
*/
size?: number;
/**
* The URL of the avatar to render.
*/
url?: string | Function;
2019-07-03 15:39:39 +00:00
};
/**
* Implements an abstract stateless avatar component that renders an avatar purely from what gets passed through
* props.
*/
export default class AbstractStatelessAvatar<P extends Props> extends PureComponent<P> {
/**
2019-08-30 16:39:06 +00:00
* Checks if the passed prop is a loaded icon or not.
*
2019-08-30 16:39:06 +00:00
* @param {string? | Object?} iconProp - The prop to check.
* @returns {boolean}
*/
_isIcon(iconProp?: string | Function): iconProp is Function {
return Boolean(iconProp) && (typeof iconProp === 'object' || typeof iconProp === 'function');
}
}