@carbon/ibm-security
Version:
Carbon for Cloud & Cognitive IBM Security UI components
63 lines (61 loc) • 2.78 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.namespace = exports.default = void 0;
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
var _classnames2 = _interopRequireDefault(require("classnames"));
var _propTypes = _interopRequireDefault(require("prop-types"));
var _react = _interopRequireDefault(require("react"));
var _namespace = require("../../globals/namespace");
var _excluded = ["className", "large", "profile"];
/**
* @file Profile image.
* @copyright IBM Security 2019
*/
var namespace = exports.namespace = (0, _namespace.getComponentNamespace)('profile-image');
/**
* Profile image component.
* @param {Record<string, any>} props Profile image props.
* @returns {ProfileImage} Profile image instance.
*/
var ProfileImage = function ProfileImage(_ref) {
var className = _ref.className,
large = _ref.large,
profile = _ref.profile,
other = (0, _objectWithoutProperties2.default)(_ref, _excluded);
var classNames = (0, _classnames2.default)(namespace, className, (0, _defineProperty2.default)({}, "".concat(namespace, "--large"), large));
return profile.image_url ? /*#__PURE__*/_react.default.createElement("img", (0, _extends2.default)({
className: classNames,
alt: "".concat(profile.name.first_name, " ").concat(profile.name.surname),
src: profile.image_url
}, other)) : /*#__PURE__*/_react.default.createElement("span", (0, _extends2.default)({
className: classNames
}, other), "".concat(profile.name.first_name.charAt(0)).concat(profile.name.surname.charAt(0)));
};
ProfileImage.defaultProps = {
className: null,
large: false
};
ProfileImage.propTypes = {
/** @type {string} Extra classes. */
className: _propTypes.default.string,
/** @type {boolean} Determines whether the profile image is large or not. */
large: _propTypes.default.bool,
/** @type {Record<string, any>} An object list of profile information. */
profile: _propTypes.default.shape({
/** @type {string} Profile image URL. */
image_url: _propTypes.default.string,
/** @type {Record<string, string>} An object list of profile name information. */
name: _propTypes.default.shape({
/** @type {string} First name. */
first_name: _propTypes.default.string.isRequired,
/** @type {string} Surname. */
surname: _propTypes.default.string.isRequired
}).isRequired
}).isRequired
};
var _default = exports.default = ProfileImage;