UNPKG

@carbon/react

Version:

React components for the Carbon Design System

69 lines (60 loc) 1.86 kB
/** * Copyright IBM Corp. 2016, 2023 * * This source code is licensed under the Apache-2.0 license found in the * LICENSE file in the root directory of this source tree. */ 'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); var PropTypes = require('prop-types'); var React = require('react'); function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; } var PropTypes__default = /*#__PURE__*/_interopDefaultLegacy(PropTypes); var React__default = /*#__PURE__*/_interopDefaultLegacy(React); /** * Provides a grid context for communication the grid "mode" (flexbox or * css-grid) along with subgrid information. */ const GridSettingsContext = /*#__PURE__*/React__default["default"].createContext({ mode: 'flexbox', subgrid: false }); const GridSettings = ({ children, mode, subgrid = false }) => { const value = React__default["default"].useMemo(() => { return { mode, subgrid }; }, [mode, subgrid]); return /*#__PURE__*/React__default["default"].createElement(GridSettingsContext.Provider, { value: value }, children); }; const gridModes = ['flexbox', 'css-grid']; GridSettings.propTypes = { /** * Pass in components which will be rendered within the `GridSettings` * component */ children: PropTypes__default["default"].node, /** * Specify the gutter mode for the GridContext */ mode: PropTypes__default["default"].oneOf(gridModes).isRequired, /** * Specify whether subgrid should be enabled */ subgrid: PropTypes__default["default"].bool }; /** * Helper function for accessing the GridContext value */ const useGridSettings = () => { return React__default["default"].useContext(GridSettingsContext); }; exports.GridSettings = GridSettings; exports.useGridSettings = useGridSettings;