@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
JavaScript
'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