UNPKG

suomifi-ui-components

Version:
79 lines (76 loc) 2.14 kB
import { __assign } from 'tslib'; import React, { useContext, useMemo } from 'react'; var SpacingContext = /*#__PURE__*/React.createContext({ margins: {} }); var SpacingConsumer = SpacingContext.Consumer; var SpacingProvider = function SpacingProvider(props) { var spacingContext = useContext(SpacingContext); var contextMargins = spacingContext.margins; var propMargins = props.margins; var allMargins = __assign(__assign({}, contextMargins.all || {}), propMargins.all || {}); var mergedMargins = __assign(__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] = __assign(__assign(__assign({}, allMargins), contextMargins[key] || {}), propMargins[key] || {}); }); var globalMargins = useMemo(function () { return { margins: mergedMargins }; }, [mergedMargins]); if (!props.children) { return null; } return /*#__PURE__*/React.createElement(SpacingContext.Provider, { value: globalMargins }, props.children); }; export { SpacingConsumer, SpacingContext, SpacingProvider }; //# sourceMappingURL=SpacingProvider.js.map