{"ast":null,"code":"import * as React from 'react';\nvar NavigationContent = function NavigationContent(_ref) {\n var render = _ref.render,\n children = _ref.children;\n return render(children);\n};\nexport default function useComponent(render) {\n var renderRef = React.useRef(render);\n renderRef.current = render;\n React.useEffect(function () {\n renderRef.current = null;\n });\n return React.useRef(function (_ref2) {\n var children = _ref2.children;\n var render = renderRef.current;\n if (render === null) {\n throw new Error('The returned component must be rendered in the same render phase as the hook.');\n }\n return React.createElement(NavigationContent, {\n render: render\n }, children);\n }).current;\n}","map":{"version":3,"sources":["useComponent.tsx"],"names":["React","NavigationContent","render","children","useComponent","renderRef","useRef","current","useEffect","Error"],"mappings":"AAAA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAS9B,IAAMC,iBAAiB,GAAG,SAApBA,iBAAiB,CAAG,IAAA,EAAiC;EAAhC,IAAEC,MAAM,GAAmB,IAAA,CAAzBA,MAAM;IAAEC,QAAAA,GAAiB,IAAA,CAAjBA,QAAAA;EACnC,OAAOD,MAAM,CAACC,QAAQ,CAAC;AACzB,CAAC;AAED,eAAe,SAASC,YAAY,CAACF,MAAc,EAAE;EACnD,IAAMG,SAAS,GAAGL,KAAK,CAACM,MAAM,CAAgBJ,MAAM,CAAC;EAKrDG,SAAS,CAACE,OAAO,GAAGL,MAAM;EAE1BF,KAAK,CAACQ,SAAS,CAAC,YAAM;IACpBH,SAAS,CAACE,OAAO,GAAG,IAAI;EAC1B,CAAC,CAAC;EAEF,OAAOP,KAAK,CAACM,MAAM,CAAC,UAAA,KAAA,EAAiD;IAAhD,IAAEH,QAAAA,GAAyC,KAAA,CAAzCA,QAAAA;IACrB,IAAMD,MAAM,GAAGG,SAAS,CAACE,OAAO;IAEhC,IAAIL,MAAM,KAAK,IAAI,EAAE;MACnB,MAAM,IAAIO,KAAK,CACb,+EAA+E,CAChF;IACH;IAEA,OAAO,KAAA,CAAA,aAAA,CAAC,iBAAiB,EAAA;MAAC,MAAM,EAAEP;IAAO,CAAA,EAAEC,QAAQ,CAAqB;EAC1E,CAAC,CAAC,CAACI,OAAO;AACZ","sourceRoot":"../../src","sourcesContent":["import * as React from 'react';\nconst NavigationContent = _ref => {\n let {\n render,\n children\n } = _ref;\n return render(children);\n};\nexport default function useComponent(render) {\n const renderRef = React.useRef(render);\n\n // Normally refs shouldn't be mutated in render\n // But we return a component which will be rendered\n // So it's just for immediate consumption\n renderRef.current = render;\n React.useEffect(() => {\n renderRef.current = null;\n });\n return React.useRef(_ref2 => {\n let {\n children\n } = _ref2;\n const render = renderRef.current;\n if (render === null) {\n throw new Error('The returned component must be rendered in the same render phase as the hook.');\n }\n return /*#__PURE__*/React.createElement(NavigationContent, {\n render: render\n }, children);\n }).current;\n}\n//# sourceMappingURL=useComponent.js.map"]},"metadata":{},"sourceType":"module"}