@itwin/itwinui-react
Version:
A react component library for iTwinUI
82 lines (81 loc) • 2.08 kB
JavaScript
;
Object.defineProperty(exports, '__esModule', {
value: true,
});
function _export(target, all) {
for (var name in all)
Object.defineProperty(target, name, {
enumerable: true,
get: all[name],
});
}
_export(exports, {
Avatar: function () {
return Avatar;
},
defaultStatusTitles: function () {
return defaultStatusTitles;
},
});
const _interop_require_default = require('@swc/helpers/_/_interop_require_default');
const _interop_require_wildcard = require('@swc/helpers/_/_interop_require_wildcard');
const _classnames = /*#__PURE__*/ _interop_require_default._(
require('classnames'),
);
const _react = /*#__PURE__*/ _interop_require_wildcard._(require('react'));
const _index = require('../../utils/index.js');
const _VisuallyHidden = require('../VisuallyHidden/VisuallyHidden.js');
const getBackground = (color) => {
if (!color) return '';
return (0, _index.isSoftBackground)(color)
? _index.SoftBackgrounds[color]
: color;
};
const defaultStatusTitles = {
away: 'Away',
busy: 'Busy',
offline: 'Offline',
online: 'Online',
};
const Avatar = _react.forwardRef((props, ref) => {
let {
size = 'small',
status,
abbreviation,
image,
backgroundColor,
translatedStatusTitles,
className,
style,
...rest
} = props;
let statusTitles = {
...defaultStatusTitles,
...translatedStatusTitles,
};
return _react.createElement(
_index.Box,
{
as: 'span',
className: (0, _classnames.default)('iui-avatar', className),
'data-iui-size': 'medium' !== size ? size : void 0,
'data-iui-status': status,
style: {
backgroundColor: getBackground(backgroundColor),
...style,
},
ref: ref,
...rest,
},
image ? null : abbreviation?.substring(0, 2),
image,
status
? _react.createElement(
_VisuallyHidden.VisuallyHidden,
null,
statusTitles[status],
)
: null,
);
});
if ('development' === process.env.NODE_ENV) Avatar.displayName = 'Avatar';