@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.
66 lines (60 loc) • 1.83 kB
JavaScript
import * as React from "react";
import styled from "styled-components";
import Stack from "../../Stack";
import useMediaQuery from "../../hooks/useMediaQuery";
import { StyledListWrapper } from "./PricingTableItem";
import PricingTableContext from "./PricingTableContext";
const StyledPricingTable = styled.div.withConfig({
displayName: "PricingTable__StyledPricingTable",
componentId: "sc-oqgvzf-0"
})([""]);
const PricingTable = ({
children,
dataTest,
activeElement,
hasError,
desktopRadio
}) => {
const {
isDesktop
} = useMediaQuery();
const resolveBasis = item => {
if (item > 0) {
return `${Math.floor(100 / item)}%`;
}
return `100%`;
};
return /*#__PURE__*/React.createElement(React.Fragment, null, isDesktop !== null && /*#__PURE__*/React.createElement(StyledPricingTable, {
"data-test": dataTest
}, /*#__PURE__*/React.createElement(Stack, {
flex: true,
grow: true,
spaceAfter: "medium",
spacing: "XSmall",
align: "stretch",
desktop: {
spacing: "medium",
spaceAfter: "none"
},
justify: "center"
}, /*#__PURE__*/React.createElement(PricingTableContext.Provider, {
value: {
basis: !isDesktop ? resolveBasis(React.Children.count(children)) : 0,
hasError,
desktopRadio
}
}, children)), !isDesktop && children && /*#__PURE__*/React.createElement(Stack, {
spacing: "XSmall"
}, /*#__PURE__*/React.createElement(StyledListWrapper, null, React.Children.map(children, (child, i) => {
if (i === activeElement) {
return /*#__PURE__*/React.createElement(PricingTableContext.Provider, {
value: {
isContent: true
}
}, child);
}
return null;
})))));
};
export default PricingTable;
export { default as PricingTableItem } from "./PricingTableItem";