UNPKG

react-hook-layout

Version:
32 lines (24 loc) 2.84 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.useLayout = useLayout; var _react = require("react"); var _slots = require("./slots"); var layoutComponents = []; var renderFunctions = []; function createLayoutRender(LayoutComponent) { return function (props) { (0, _slots.distributeChildrenToSlots)(props && props.children); return /*#__PURE__*/(0, _react.createElement)(LayoutComponent || _react.Fragment, props); }; } function useLayout(LayoutComponent) { var wmIndex = layoutComponents.indexOf(LayoutComponent); if (wmIndex === -1) { layoutComponents.push(LayoutComponent); wmIndex = renderFunctions.push(createLayoutRender(LayoutComponent)) - 1; } return renderFunctions[wmIndex]; } //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy91c2UtbGF5b3V0LmpzIl0sIm5hbWVzIjpbImxheW91dENvbXBvbmVudHMiLCJyZW5kZXJGdW5jdGlvbnMiLCJjcmVhdGVMYXlvdXRSZW5kZXIiLCJMYXlvdXRDb21wb25lbnQiLCJwcm9wcyIsImNoaWxkcmVuIiwiRnJhZ21lbnQiLCJ1c2VMYXlvdXQiLCJ3bUluZGV4IiwiaW5kZXhPZiIsInB1c2giXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQTs7QUFFQTs7QUFFQSxJQUFNQSxnQkFBZ0IsR0FBRyxFQUF6QjtBQUNBLElBQU1DLGVBQWUsR0FBRyxFQUF4Qjs7QUFFQSxTQUFTQyxrQkFBVCxDQUE0QkMsZUFBNUIsRUFBNkM7QUFDM0MsU0FBTyxVQUFBQyxLQUFLLEVBQUk7QUFDZCwwQ0FBMEJBLEtBQUssSUFBSUEsS0FBSyxDQUFDQyxRQUF6QztBQUNBLHdCQUFPLDBCQUFjRixlQUFlLElBQUlHLGVBQWpDLEVBQTJDRixLQUEzQyxDQUFQO0FBQ0QsR0FIRDtBQUlEOztBQUVNLFNBQVNHLFNBQVQsQ0FBbUJKLGVBQW5CLEVBQW9DO0FBQ3pDLE1BQUlLLE9BQU8sR0FBR1IsZ0JBQWdCLENBQUNTLE9BQWpCLENBQXlCTixlQUF6QixDQUFkOztBQUVBLE1BQUlLLE9BQU8sS0FBSyxDQUFDLENBQWpCLEVBQW9CO0FBQ2xCUixJQUFBQSxnQkFBZ0IsQ0FBQ1UsSUFBakIsQ0FBc0JQLGVBQXRCO0FBQ0FLLElBQUFBLE9BQU8sR0FBR1AsZUFBZSxDQUFDUyxJQUFoQixDQUFxQlIsa0JBQWtCLENBQUNDLGVBQUQsQ0FBdkMsSUFBNEQsQ0FBdEU7QUFDRDs7QUFDRCxTQUFPRixlQUFlLENBQUNPLE9BQUQsQ0FBdEI7QUFDRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNyZWF0ZUVsZW1lbnQsIEZyYWdtZW50IH0gZnJvbSBcInJlYWN0XCI7XHJcblxyXG5pbXBvcnQgeyBkaXN0cmlidXRlQ2hpbGRyZW5Ub1Nsb3RzIH0gZnJvbSBcIi4vc2xvdHNcIjtcclxuXHJcbmNvbnN0IGxheW91dENvbXBvbmVudHMgPSBbXTtcclxuY29uc3QgcmVuZGVyRnVuY3Rpb25zID0gW107XHJcblxyXG5mdW5jdGlvbiBjcmVhdGVMYXlvdXRSZW5kZXIoTGF5b3V0Q29tcG9uZW50KSB7XHJcbiAgcmV0dXJuIHByb3BzID0+IHtcclxuICAgIGRpc3RyaWJ1dGVDaGlsZHJlblRvU2xvdHMocHJvcHMgJiYgcHJvcHMuY2hpbGRyZW4pO1xyXG4gICAgcmV0dXJuIGNyZWF0ZUVsZW1lbnQoTGF5b3V0Q29tcG9uZW50IHx8IEZyYWdtZW50LCBwcm9wcyk7XHJcbiAgfTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIHVzZUxheW91dChMYXlvdXRDb21wb25lbnQpIHtcclxuICBsZXQgd21JbmRleCA9IGxheW91dENvbXBvbmVudHMuaW5kZXhPZihMYXlvdXRDb21wb25lbnQpO1xyXG5cclxuICBpZiAod21JbmRleCA9PT0gLTEpIHtcclxuICAgIGxheW91dENvbXBvbmVudHMucHVzaChMYXlvdXRDb21wb25lbnQpO1xyXG4gICAgd21JbmRleCA9IHJlbmRlckZ1bmN0aW9ucy5wdXNoKGNyZWF0ZUxheW91dFJlbmRlcihMYXlvdXRDb21wb25lbnQpKSAtIDE7XHJcbiAgfVxyXG4gIHJldHVybiByZW5kZXJGdW5jdGlvbnNbd21JbmRleF07XHJcbn1cclxuIl19