UNPKG

create-dan

Version:

Dan frameworks

1 lines 1.42 kB
{"ast":null,"code":"\"use strict\";\n\nvar _Set = require(\"@babel/runtime-corejs2/core-js/set\");\n\nvar _Object$defineProperty = require(\"@babel/runtime-corejs2/core-js/object/define-property\");\n\n_Object$defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nconst react_1 = require(\"react\");\n\nconst isServer = true;\n\nexports.default = () => {\n const mountedInstances = new _Set();\n let state;\n\n function emitChange(component) {\n state = component.props.reduceComponentsToState([...mountedInstances], component.props);\n\n if (component.props.handleStateChange) {\n component.props.handleStateChange(state);\n }\n }\n\n return class extends react_1.Component {\n // Used when server rendering\n static rewind() {\n const recordedState = state;\n state = undefined;\n mountedInstances.clear();\n return recordedState;\n }\n\n constructor(props) {\n super(props);\n\n if (isServer) {\n mountedInstances.add(this);\n emitChange(this);\n }\n }\n\n componentDidMount() {\n mountedInstances.add(this);\n emitChange(this);\n }\n\n componentDidUpdate() {\n emitChange(this);\n }\n\n componentWillUnmount() {\n mountedInstances.delete(this);\n emitChange(this);\n }\n\n render() {\n return null;\n }\n\n };\n};","map":null,"metadata":{},"sourceType":"script"}