UNPKG

suomifi-ui-components

Version:
87 lines (81 loc) 2.42 kB
'use strict'; var tslib = require('tslib'); var React = require('react'); function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; } var React__default = /*#__PURE__*/_interopDefault(React); var SpacingContext = /*#__PURE__*/React__default.default.createContext({ margins: {} }); var SpacingConsumer = SpacingContext.Consumer; var SpacingProvider = function SpacingProvider(props) { var spacingContext = React.useContext(SpacingContext); var contextMargins = spacingContext.margins; var propMargins = props.margins; var allMargins = tslib.__assign(tslib.__assign({}, contextMargins.all || {}), propMargins.all || {}); var mergedMargins = tslib.__assign(tslib.__assign({}, contextMargins), propMargins); var allGlobalMarginKeys = { all: null, alert: null, actionMenu: null, block: null, button: null, breadcrumb: null, checkbox: null, checkboxGroup: null, chip: null, dateInput: null, dropdown: null, expander: null, expanderGroup: null, externalLink: null, fileInput: null, heading: null, hintText: null, inlineAlert: null, label: null, languageMenu: null, link: null, linkList: null, loadingSpinner: null, multiSelect: null, notification: null, pagination: null, paragraph: null, radioButton: null, radioButtonGroup: null, routerLink: null, searchInput: null, serviceNavigation: null, sideNavigation: null, singleSelect: null, staticChip: null, statusText: null, text: null, textarea: null, textInput: null, timeInput: null, toast: null, toggleInput: null, toggleButton: null, tooltip: null, wizardNavigation: null }; Object.keys(allGlobalMarginKeys).forEach(function (key) { mergedMargins[key] = tslib.__assign(tslib.__assign(tslib.__assign({}, allMargins), contextMargins[key] || {}), propMargins[key] || {}); }); var globalMargins = React.useMemo(function () { return { margins: mergedMargins }; }, [mergedMargins]); if (!props.children) { return null; } return /*#__PURE__*/React__default.default.createElement(SpacingContext.Provider, { value: globalMargins }, props.children); }; exports.SpacingConsumer = SpacingConsumer; exports.SpacingContext = SpacingContext; exports.SpacingProvider = SpacingProvider; //# sourceMappingURL=SpacingProvider.js.map