UNPKG

@mskcc/carbon-react

Version:

Carbon react components for the MSKCC DSM

85 lines (75 loc) 2.13 kB
/** * MSKCC 2021, 2024 */ '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 }; } function _interopNamespace(e) { if (e && e.__esModule) return e; var n = Object.create(null); if (e) { Object.keys(e).forEach(function (k) { if (k !== 'default') { var d = Object.getOwnPropertyDescriptor(e, k); Object.defineProperty(n, k, d.get ? d : { enumerable: true, get: function () { return e[k]; } }); } }); } n["default"] = e; return Object.freeze(n); } var PropTypes__default = /*#__PURE__*/_interopDefaultLegacy(PropTypes); var React__namespace = /*#__PURE__*/_interopNamespace(React); /** * Provides a grid context for communication the grid "mode" (flexbox or * css-grid) along with subgrid information. */ const GridSettingsContext = /*#__PURE__*/React__namespace.createContext({ mode: 'flexbox', subgrid: false }); const GridSettings = _ref => { let { children, mode, subgrid = false } = _ref; const value = React__namespace.useMemo(() => { return { mode, subgrid }; }, [mode, subgrid]); return /*#__PURE__*/React__namespace.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 grid 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__namespace.useContext(GridSettingsContext); }; exports.GridSettings = GridSettings; exports.useGridSettings = useGridSettings;