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