UNPKG

@janus-idp/shared-react

Version:

Shared code for utils, types, and React components for the Janus frontend plugins.

70 lines (63 loc) 2.11 kB
'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); var React = require('react'); var styles = require('@material-ui/core/styles'); var Typography = require('@mui/material/Typography'); var cx = require('classnames'); var CamelCaseWrap = require('./CamelCaseWrap.cjs.js'); function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e : { default: e }; } var React__default = /*#__PURE__*/_interopDefaultCompat(React); var Typography__default = /*#__PURE__*/_interopDefaultCompat(Typography); var cx__default = /*#__PURE__*/_interopDefaultCompat(cx); const DASH = "-"; const useStyles = styles.makeStyles({ iconAndText: { alignItems: "baseline", display: "flex", fontWeight: 400, fontSize: "14px" }, flexChild: { flex: " 0 0 auto", position: "relative", top: "0.125em" } }); const StatusIconAndText = ({ icon, title, spin, iconOnly, className, dataTestId }) => { const styles = useStyles(); if (!title) { return /* @__PURE__ */ React__default.default.createElement(React__default.default.Fragment, null, DASH); } if (iconOnly) { return /* @__PURE__ */ React__default.default.createElement(React__default.default.Fragment, null, React__default.default.cloneElement(icon, { "data-testid": dataTestId ?? `icon-only-${title}`, className: icon.props.className })); } return /* @__PURE__ */ React__default.default.createElement( Typography__default.default, { className: cx__default.default(styles.iconAndText, className), "data-testid": dataTestId ?? `icon-with-title-${title}`, title }, React__default.default.cloneElement(icon, { className: cx__default.default( spin && "fa-spin", icon.props.className, styles.flexChild ) }), /* @__PURE__ */ React__default.default.createElement(CamelCaseWrap.CamelCaseWrap, { value: title, dataTest: "status-text" }) ); }; exports.StatusIconAndText = StatusIconAndText; exports.default = StatusIconAndText; //# sourceMappingURL=StatusIconAndText.cjs.js.map