@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.
78 lines (68 loc) • 3.17 kB
JavaScript
import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
import * as React from "react";
import CheckCircle from "../../icons/CheckCircle";
import Circle from "../../icons/CircleEmpty";
import AlertCircle from "../../icons/AlertCircle";
import CloseCircle from "../../icons/CloseCircle";
import { useStatuses, useStep } from "../TimelineContext";
import useMediaQuery from "../../hooks/useMediaQuery";
import TimelineStepDesktop from "./components/TimelineStepDesktop";
import TimelineStepMobile from "./components/TimelineStepMobile";
var TypeIcon = function TypeIcon(_ref) {
var type = _ref.type;
if (type === "success") return /*#__PURE__*/React.createElement(CheckCircle, {
color: "success"
});
if (type === "warning") return /*#__PURE__*/React.createElement(AlertCircle, {
color: "warning"
});
if (type === "critical") return /*#__PURE__*/React.createElement(CloseCircle, {
color: "critical"
});
return /*#__PURE__*/React.createElement(Circle, {
color: "tertiary",
size: "small"
});
};
var TimelineStep = function TimelineStep(_ref2) {
var children = _ref2.children,
label = _ref2.label,
subLabel = _ref2.subLabel,
type = _ref2.type;
var _useStatuses = useStatuses(),
types = _useStatuses.types,
setTypes = _useStatuses.setTypes;
var _useStep = useStep(),
index = _useStep.index,
last = _useStep.last;
var _useMediaQuery = useMediaQuery(),
isDesktop = _useMediaQuery.isDesktop;
var nextType = types[index + 1];
React.useEffect(function () {
setTypes(function (prev) {
return _objectSpread(_objectSpread({}, prev), {}, _defineProperty({}, index, type));
});
}, [setTypes, type, index]);
return isDesktop ? /*#__PURE__*/React.createElement(TimelineStepDesktop, {
typeIcon: /*#__PURE__*/React.createElement(TypeIcon, {
type: type
}),
nextType: nextType,
label: label,
type: type,
subLabel: subLabel,
last: last
}, children) : /*#__PURE__*/React.createElement(TimelineStepMobile, {
typeIcon: /*#__PURE__*/React.createElement(TypeIcon, {
type: type
}),
nextType: nextType,
label: label,
type: type,
subLabel: subLabel,
last: last
}, children);
};
export default TimelineStep;