@mskcc/carbon-react
Version:
Carbon react components for the MSKCC DSM
85 lines (75 loc) • 2.13 kB
JavaScript
/**
* MSKCC 2021, 2024
*/
;
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;