UNPKG

@atlaskit/avatar

Version:

An avatar is a visual representation of a user or entity.

111 lines (108 loc) 4.47 kB
/* avatar-image.tsx generated by @compiled/babel-plugin v0.39.1 */ "use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); var _typeof = require("@babel/runtime/helpers/typeof"); Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; require("./avatar-image.compiled.css"); var _react = _interopRequireWildcard(require("react")); var React = _react; var _runtime = require("@compiled/react/runtime"); var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray")); var _aiAgent = _interopRequireDefault(require("@atlaskit/icon/core/ai-agent")); var _person = _interopRequireDefault(require("@atlaskit/icon/core/person")); var _release = _interopRequireDefault(require("@atlaskit/icon/core/release")); function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); } var styles = { image: "_16jlkb7n _1o9zkb7n _i0dl1osq _1e0c1txw _1bsb1osq _4t3i1osq", icon: "_1e0c1txw _1bsb1osq _4t3i1osq _bfhk7qp0", circle: "_2rko1rr0", hexagon: "_mkrz1k6g" }; var borderRadiusMap = { xsmall: "_2rkolb4i", small: "_2rkolb4i", medium: "_2rko12b0", large: "_2rko12b0", xlarge: "_2rko1qi0", xxlarge: "_2rkopb1k" }; var nestedSvgStylesMap = { xsmall: "_w8l57vkz _17527vkz", small: "_w8l51tcg _17521tcg", medium: "_w8l5zwfg _1752zwfg", large: "_w8l51ylp _17521ylp", xlarge: "_w8l516xz _175216xz", xxlarge: "_w8l51qr7 _17521qr7" }; /** * __Avatar image__ * * An avatar image is an internal component used to control the rendering phases of an image. */ var AvatarImage = function AvatarImage(_ref) { var _ref$alt = _ref.alt, alt = _ref$alt === void 0 ? '' : _ref$alt, src = _ref.src, appearance = _ref.appearance, size = _ref.size, testId = _ref.testId, imgLoading = _ref.imgLoading; var _useState = (0, _react.useState)(false), _useState2 = (0, _slicedToArray2.default)(_useState, 2), hasImageErrored = _useState2[0], setHasImageErrored = _useState2[1]; // If src changes, reset state (0, _react.useEffect)(function () { setHasImageErrored(false); }, [src]); if (!src || hasImageErrored) { var renderedIcon; switch (appearance) { case 'circle': renderedIcon = /*#__PURE__*/React.createElement(_person.default, { label: alt, color: "var(--ds-icon-subtle, #505258)", testId: testId && "".concat(testId, "--person"), spacing: "spacious" }); break; case 'hexagon': renderedIcon = /*#__PURE__*/React.createElement(_aiAgent.default, { label: alt, color: "var(--ds-icon-subtle, #505258)", testId: testId && "".concat(testId, "--agent"), spacing: "spacious" }); break; default: // historical default for safety case 'square': renderedIcon = /*#__PURE__*/React.createElement(_release.default, { label: alt, color: "var(--ds-icon-subtle, #505258)", testId: testId && "".concat(testId, "--ship"), spacing: "spacious" }); break; } return /*#__PURE__*/React.createElement("span", { className: (0, _runtime.ax)([styles.icon, nestedSvgStylesMap[size]]) }, renderedIcon); } return /*#__PURE__*/React.createElement("img", { loading: imgLoading, src: src, alt: alt, "data-testid": testId && "".concat(testId, "--image"), onError: function onError() { return setHasImageErrored(true); }, "aria-hidden": !alt ? true : undefined, "data-vc": testId ? "".concat(testId, "--image") : 'avatar-image', "data-ssr-placeholder-ignored": true, className: (0, _runtime.ax)([styles.image, borderRadiusMap[size], appearance === 'circle' && styles.circle, appearance === 'hexagon' && styles.hexagon]) }); }; var _default = exports.default = AvatarImage;