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.

48 lines (42 loc) 1.72 kB
import * as React from "react"; import styled from "styled-components"; import Stack from "../Stack"; import useMediaQuery from "../hooks/useMediaQuery"; import { TimelineStatusProvider, TimelineStepContext } from "./TimelineContext"; import getSpacingToken from "../common/getSpacingToken"; import themeDefault from "../defaultTheme"; var WrapperStyled = styled.div.withConfig({ displayName: "Timeline__WrapperStyled", componentId: "etnkq0-0" })(["position:relative;overflow:hidden;margin-bottom:", ";"], getSpacingToken); // $FlowFixMe: https://github.com/flow-typed/flow-typed/issues/3653#issuecomment-568539198 WrapperStyled.defaultProps = { theme: themeDefault }; var Timeline = function Timeline(_ref) { var children = _ref.children, spaceAfter = _ref.spaceAfter, dataTest = _ref.dataTest; var childrenArr = React.Children.toArray(children); var _useMediaQuery = useMediaQuery(), isDesktop = _useMediaQuery.isDesktop; return childrenArr && childrenArr.length > 0 ? /*#__PURE__*/React.createElement(WrapperStyled, { spaceAfter: spaceAfter, "data-test": dataTest }, /*#__PURE__*/React.createElement(Stack, { flex: true, shrink: true, direction: isDesktop ? "row" : "column" }, /*#__PURE__*/React.createElement(TimelineStatusProvider, null, React.Children.map(childrenArr, function (child, i) { if ( /*#__PURE__*/React.isValidElement(child)) { return /*#__PURE__*/React.createElement(TimelineStepContext.Provider, { value: { index: i, last: i + 1 === childrenArr.length } }, child); } return null; })))) : null; }; export default Timeline; export { default as TimelineStep } from "./TimelineStep";