jest-react-fela
Version:
Jest helpers for react-fela
57 lines (42 loc) • 1.61 kB
JavaScript
;
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;