@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.
36 lines (33 loc) • 1.44 kB
JavaScript
import { css } from "styled-components";
import getDesktopSpacing from "./getDesktopSpacing";
import { rtlSpacing } from "../../utils/rtl";
import { SPACINGS } from "../consts";
import isMobileViewport from "./isMobileViewport";
import getMobileSpacing from "./getMobileSpacing";
import getProperty from "./getProperty";
import { QUERIES } from "../../utils/mediaQuery/consts";
import getDirectionSpacingTemplate from "./getDirectionSpacingTemplate";
var getChildrenMargin = function getChildrenMargin(_ref) {
var viewport = _ref.viewport,
index = _ref.index,
devices = _ref.devices;
return function (props) {
if (props[viewport] || viewport === QUERIES.DESKTOP) {
var spacing = getProperty("spacing", {
index: index,
devices: devices
}, props);
if (spacing === SPACINGS.NONE) return false;
var isMobile = isMobileViewport(viewport);
var spacingTokens = isMobile ? getMobileSpacing() : getDesktopSpacing();
var direction = getProperty("direction", {
index: index,
devices: devices
}, props);
var margin = spacing && direction && String(getDirectionSpacingTemplate(direction)).replace("__spacing__", spacingTokens[spacing]);
return css(["& > *{margin:", "!important;", ";}"], margin && rtlSpacing(margin), isMobile && css(["&:last-child{margin:0 !important;}"]));
}
return false;
};
};
export default getChildrenMargin;