@kiwicom/orbit-components
Version:
Orbit-components is a React component library which provides developers with the easiest possible way of building Kiwi.com's products.
52 lines (51 loc) • 1.9 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
exports.__esModule = true;
exports.getStatusColor = exports.default = void 0;
var React = _interopRequireWildcard(require("react"));
var _clsx = _interopRequireDefault(require("clsx"));
var _useTheme = _interopRequireDefault(require("../../../hooks/useTheme"));
const getStatusColor = (theme, type) => {
const colors = {
success: theme.orbit.textSuccessForeground,
warning: theme.orbit.textWarningForeground,
critical: theme.orbit.textCriticalForeground,
info: theme.orbit.textInfoForeground
};
return type ? colors[type] : theme.orbit.paletteCloudNormalHover;
};
exports.getStatusColor = getStatusColor;
const ProgressLine = ({
desktop,
status,
nextStatus,
last,
prevStatus
}) => {
const theme = (0, _useTheme.default)();
const getBorderStyle = () => {
if (desktop) {
if (status && !nextStatus && !last) {
return {
borderImageSlice: 1,
borderImageSource: `linear-gradient(to right, ${getStatusColor(theme, prevStatus)}, ${getStatusColor(theme, status)})`
};
}
}
if (status && !nextStatus && !last) {
return {
borderImageSlice: 1,
borderImageSource: `linear-gradient(to bottom, ${getStatusColor(theme, prevStatus)}, ${getStatusColor(theme, status)})`
};
}
return {
borderColor: getStatusColor(theme, status)
};
};
return /*#__PURE__*/React.createElement("span", {
className: (0, _clsx.default)("border", status ? "border-solid" : "border-dashed", desktop ? "w-1/2" : "absolute top-[15px] h-[calc(100%+theme(spacing.50))] ltr:left-[11px] rtl:right-[11px]"),
style: getBorderStyle()
});
};
var _default = exports.default = ProgressLine;