@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.
80 lines (60 loc) • 2.39 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
exports.__esModule = true;
exports.default = exports.TimelineStep = void 0;
var React = _interopRequireWildcard(require("react"));
var _styledComponents = _interopRequireDefault(require("styled-components"));
var _Stack = _interopRequireDefault(require("../Stack"));
var _useMediaQuery = _interopRequireDefault(require("../hooks/useMediaQuery"));
var _TimelineContext = require("./TimelineContext");
var _getSpacingToken = _interopRequireDefault(require("../common/getSpacingToken"));
var _defaultTheme = _interopRequireDefault(require("../defaultTheme"));
var _TimelineStep = _interopRequireDefault(require("./TimelineStep"));
exports.TimelineStep = _TimelineStep.default;
const WrapperStyled = _styledComponents.default.div.withConfig({
displayName: "Timeline__WrapperStyled",
componentId: "sc-1ogyzsj-0"
})(["position:relative;overflow:hidden;margin-bottom:", ";"], _getSpacingToken.default); // $FlowFixMe: https://github.com/flow-typed/flow-typed/issues/3653#issuecomment-568539198
WrapperStyled.defaultProps = {
theme: _defaultTheme.default
};
const Timeline = ({
children,
spaceAfter,
direction,
dataTest,
id
}) => {
const childrenArr = React.Children.toArray(children);
const {
isDesktop
} = (0, _useMediaQuery.default)();
const getDirection = () => {
if (direction) return direction;
return isDesktop ? "row" : "column";
};
return childrenArr && childrenArr.length > 0 ? /*#__PURE__*/React.createElement(WrapperStyled, {
spaceAfter: spaceAfter,
"data-test": dataTest,
id: id
}, /*#__PURE__*/React.createElement(_Stack.default, {
flex: true,
shrink: true,
direction: getDirection()
}, /*#__PURE__*/React.createElement(_TimelineContext.TimelineStatusProvider, {
direction: direction
}, React.Children.map(childrenArr, (child, i) => {
if ( /*#__PURE__*/React.isValidElement(child)) {
return /*#__PURE__*/React.createElement(_TimelineContext.TimelineStepContext.Provider, {
value: {
index: i,
last: i + 1 === childrenArr.length
}
}, child);
}
return null;
})))) : null;
};
var _default = Timeline;
exports.default = _default;