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.

88 lines (71 loc) 2.63 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default; var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var React = _interopRequireWildcard(require("react")); var _styledComponents = _interopRequireWildcard(require("styled-components")); var _context = require("./context"); var _AirplaneDown = _interopRequireDefault(require("../../icons/AirplaneDown")); var _AlertCircle = _interopRequireDefault(require("../../icons/AlertCircle")); var _Circle = _interopRequireDefault(require("../../icons/Circle")); var _defaultTheme = _interopRequireDefault(require("../../defaultTheme")); const lineMixin = (0, _styledComponents.css)(["content:\"\";position:absolute;height:calc(50% + 9px);z-index:-1;"]); // TODO: Improve const IconStyled = _styledComponents.default.div.withConfig({ displayName: "ItineraryIcon__IconStyled", componentId: "sc-wz4151-0" })(["", ""], ({ theme, index, last, count, isNextHidden }) => (0, _styledComponents.css)(["display:flex;justify-content:center;z-index:1;", ";", ";"], index > 0 && count > 0 && (0, _styledComponents.css)(["&:before{top:-9px;border:1px solid ", ";", ";}"], theme.orbit.paletteCloudNormalHover, lineMixin), !last && count > 0 && (0, _styledComponents.css)(["&:after{bottom:-7px;opacity:", ";border:1px solid ", ";", ";}"], isNextHidden ? `0.5` : `1`, theme.orbit.paletteCloudNormalHover, lineMixin))); // $FlowFixMe: https://github.com/flow-typed/flow-typed/issues/3653#issuecomment-568539198 IconStyled.defaultProps = { theme: _defaultTheme.default }; const Icon = ({ type, isDetails, icon }) => { if (icon) return icon; if (type) return /*#__PURE__*/React.createElement(_AlertCircle.default, { size: "small", color: type }); if (isDetails) return /*#__PURE__*/React.createElement(_AirplaneDown.default, { size: "small" }); return /*#__PURE__*/React.createElement(_Circle.default, { size: "small", color: "secondary" }); }; const ItineraryIcon = ({ isDetails, type, children }) => { const { index, last, isNextHidden, count } = (0, _context.usePart)(); return /*#__PURE__*/React.createElement(IconStyled, { index: index, last: last, isDetails: isDetails, isNextHidden: isNextHidden, count: count }, /*#__PURE__*/React.createElement(Icon, { type: type, isDetails: isDetails, icon: children })); }; var _default = ItineraryIcon; exports.default = _default;