UNPKG

respond-framework

Version:
36 lines (35 loc) 1.25 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _reactTestRenderer = require("react-test-renderer"); var _createNodeMock = require("./createNodeMock.js"); const createRenderer = (respond, opts = {}) => ({ async render() { if (!this._renderer) this.create(); // for performance and to match the rendering of a real Respond app, we create renderer after first trigger event else (0, _reactTestRenderer.act)(() => respond.commit()); // after, reactivity will handle subsequent renders, but we assume control for precision batching here (similar to queueNotification.js in a real app) }, create() { (0, _reactTestRenderer.act)(() => { const app = respond.render(); const createNodeMock = opts.createNodeMock ?? _createNodeMock.default; this._renderer = (0, _reactTestRenderer.create)(app, { createNodeMock }); }); this.root = this._renderer.root; }, toJSON() { return this.prevJson = this._renderer.toJSON(); }, toPrevNextJSON() { const prev = this.prevJson; const next = this.prevJson = this._renderer.toJSON(); return { prev, next }; } }); var _default = exports.default = createRenderer;