@atlaskit/heading
Version:
A heading is a typography component used to display text in different sizes and formats.
36 lines (35 loc) • 1.21 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _react = _interopRequireDefault(require("react"));
var _headingLevelContext = require("./heading-level-context");
var _useHeadingLevel = require("./use-heading-level");
/**
* __Heading level provider__
*
* The Heading level provider injects the heading level to all `Heading` components below it in the component tree.
*
* @example
* ```tsx
* // Will correctly infer the heading level
* <HeadingContext value={1}>
* <Heading>H1</Heading>
* <HeadingContext>
* <Heading>H2</Heading>
* </HeadingContext>
* </HeadingContext>
* ```
*/
var HeadingLevelContextProvider = function HeadingLevelContextProvider(_ref) {
var children = _ref.children,
value = _ref.value;
var parentHeadingLevel = (0, _useHeadingLevel.useHeadingLevel)();
var headingLevel = parentHeadingLevel + 1;
return /*#__PURE__*/_react.default.createElement(_headingLevelContext.HeadingLevelContext.Provider, {
value: value || headingLevel
}, children);
};
var _default = exports.default = HeadingLevelContextProvider;