UNPKG

@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
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;