@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.
95 lines (79 loc) • 2.71 kB
JavaScript
"use strict";
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
var React = _interopRequireWildcard(require("react"));
var _CheckCircle = _interopRequireDefault(require("../../icons/CheckCircle"));
var _CircleEmpty = _interopRequireDefault(require("../../icons/CircleEmpty"));
var _AlertCircle = _interopRequireDefault(require("../../icons/AlertCircle"));
var _CloseCircle = _interopRequireDefault(require("../../icons/CloseCircle"));
var _TimelineContext = require("../TimelineContext");
var _useMediaQuery = _interopRequireDefault(require("../../hooks/useMediaQuery"));
var _TimelineStepDesktop = _interopRequireDefault(require("./components/TimelineStepDesktop"));
var _TimelineStepMobile = _interopRequireDefault(require("./components/TimelineStepMobile"));
const TypeIcon = ({
type
}) => {
if (type === "success") return /*#__PURE__*/React.createElement(_CheckCircle.default, {
color: "success"
});
if (type === "warning") return /*#__PURE__*/React.createElement(_AlertCircle.default, {
color: "warning"
});
if (type === "critical") return /*#__PURE__*/React.createElement(_CloseCircle.default, {
color: "critical"
});
return /*#__PURE__*/React.createElement(_CircleEmpty.default, {
color: "tertiary",
size: "small"
});
};
const TimelineStep = ({
children,
label,
subLabel,
type
}) => {
const {
types,
setTypes
} = (0, _TimelineContext.useStatuses)();
const {
index,
last
} = (0, _TimelineContext.useStep)();
const {
isDesktop
} = (0, _useMediaQuery.default)();
const nextType = types[index + 1];
React.useEffect(() => {
setTypes(prev => (0, _objectSpread2.default)((0, _objectSpread2.default)({}, prev), {}, {
[index]: type
}));
}, [setTypes, type, index]);
return isDesktop ? /*#__PURE__*/React.createElement(_TimelineStepDesktop.default, {
typeIcon: /*#__PURE__*/React.createElement(TypeIcon, {
type: type
}),
nextType: nextType,
label: label,
type: type,
subLabel: subLabel,
last: last
}, children) : /*#__PURE__*/React.createElement(_TimelineStepMobile.default, {
typeIcon: /*#__PURE__*/React.createElement(TypeIcon, {
type: type
}),
nextType: nextType,
label: label,
type: type,
subLabel: subLabel,
last: last
}, children);
};
var _default = TimelineStep;
exports.default = _default;