UNPKG

jest-react-fela

Version:
57 lines (42 loc) 1.61 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = exports.CallbackWrapper = void 0; var _react = require("react"); var _fela = require("fela"); var _server = require("react-dom/server"); var _reactDom = require("react-dom"); var _reactFela = require("react-fela"); var _jestFelaBindings = require("jest-fela-bindings"); // Wait for React to finish in concurrent mode https://github.com/reactwg/react-18/discussions/5#discussioncomment-2276079 var CallbackWrapper = function CallbackWrapper(_ref) { var callback = _ref.callback, children = _ref.children; var once = (0, _react.useRef)(false); (0, _react.useEffect)(function () { if (once.current) return; once.current = true; callback(); }, [callback]); return children; }; exports.CallbackWrapper = CallbackWrapper; var createRoot; try { // eslint-disable-next-line import/no-unresolved,global-require var ReactDOMClient = require('react-dom/client'); if (typeof ReactDOMClient !== 'undefined' && typeof ReactDOMClient.createRoot !== 'undefined') { createRoot = ReactDOMClient.createRoot; } // eslint-disable-next-line no-empty } catch (e) {} var renderHandler = { createRoot: { createRoot: createRoot, CallbackWrapper: CallbackWrapper }, render: _reactDom.render, renderToStaticMarkup: _server.renderToStaticMarkup }; var _default = (0, _jestFelaBindings.createAsyncSnapshotFactory)(_react.createElement, renderHandler, (0, _fela.createRenderer)(), _reactFela.RendererProvider, _reactFela.ThemeProvider); exports["default"] = _default;