react-esc-render-jss
Version:
JSS intergration for React-ESC
3 lines (2 loc) • 3.9 kB
JavaScript
;function _interopDefault(e){return e&&"object"==typeof e&&"default"in e?e.default:e}Object.defineProperty(exports,"__esModule",{value:!0});var _objectSpread=_interopDefault(require("@babel/runtime/helpers/objectSpread")),_classCallCheck=_interopDefault(require("@babel/runtime/helpers/classCallCheck")),_defineProperty=_interopDefault(require("@babel/runtime/helpers/defineProperty")),React=_interopDefault(require("react")),reactJss=require("react-jss"),_createClass=_interopDefault(require("@babel/runtime/helpers/createClass")),_possibleConstructorReturn=_interopDefault(require("@babel/runtime/helpers/possibleConstructorReturn")),_getPrototypeOf=_interopDefault(require("@babel/runtime/helpers/getPrototypeOf")),_inherits=_interopDefault(require("@babel/runtime/helpers/inherits")),PropTypes=_interopDefault(require("prop-types")),server=_interopDefault(require("react-dom/server")),isProduction="production"===process.env.NODE_ENV,createGenerateClassName=function(){var n=0;return function(e,t){if(n+=1,isProduction){var r=e.key.charAt(0).toLowerCase();return"c".concat(r).concat(n)}if(t&&t.options.name){var s=t.options.name;return s=s.replace(new RegExp(/[!"#$%&'()*+,./:; <=>?@[\\\]^`{|}~]/g),"-"),"".concat(s,"-").concat(e.key,"-").concat(n)}return"".concat(e.key,"-").concat(n)}},MainContainer=function(e){function t(){return _classCallCheck(this,t),_possibleConstructorReturn(this,_getPrototypeOf(t).apply(this,arguments))}return _inherits(t,e),_createClass(t,[{key:"componentDidMount",value:function(){var e=document.getElementById("jss-server-side");e&&e.parentNode&&e.parentNode.removeChild(e)}},{key:"render",value:function(){return this.props.children}}]),t}(React.Component);_defineProperty(MainContainer,"propTypes",{children:PropTypes.oneOfType([PropTypes.node,PropTypes.arrayOf(PropTypes.node)]).isRequired});var JssClient=function e(t){var r=this;_classCallCheck(this,e),_defineProperty(this,"jss",void 0),_defineProperty(this,"config",void 0),_defineProperty(this,"render",function(e,t){return React.createElement(MainContainer,null,React.createElement(reactJss.JssProvider,{jss:r.jss},React.createElement(e,t)))}),this.config=t;var s={createGenerateClassName:createGenerateClassName};t.jss&&t.jss.options&&(s=_objectSpread({},s,t.jss.options)),reactJss.jss.setup(s),this.jss=reactJss.jss},renderHtmlLayout=function(e,t,r){var s=3<arguments.length&&void 0!==arguments[3]?arguments[3]:{};return"<!DOCTYPE html>"+(0,server.renderToStaticMarkup)(React.createElement("html",e.htmlAttributes.toComponent(),React.createElement("head",null,e.title.toComponent(),e.meta.toComponent(),e.base.toComponent(),e.link.toComponent(),e.script.toComponent(),e.style.toComponent(),React.createElement("style",{id:"jss-server-side",dangerouslySetInnerHTML:{__html:r}}),React.createElement("script",{dangerouslySetInnerHTML:{__html:"___INITIAL_STATE__=".concat(JSON.stringify(s))}})),React.createElement("body",null,t)))},collapseWhitespace=function(e){return e&&e.replace(/[ \n\r\t\f\xA0]+/g,function(e){return"\t"===e?"\t":e.replace(/(^|\xA0+)[^\xA0]+/g,"$1 ")})},JssServer=function(){function r(e){_classCallCheck(this,r),this.config=e;var t={createGenerateClassName:createGenerateClassName};this.config.jss&&this.config.jss.options&&(t=_objectSpread({},t,this.config.jss.options)),reactJss.jss.setup(t),this.jss=reactJss.jss,this.sheetsRegistry=new reactJss.SheetsRegistry}return _createClass(r,[{key:"render",value:function(e,t){return React.createElement(reactJss.JssProvider,{registry:this.sheetsRegistry,jss:this.jss},React.createElement(e,t))}},{key:"postRender",value:function(e){var t=e.head,r=e.body,s=(e.content,e.scripts),n=e.store,o=collapseWhitespace(this.sheetsRegistry.toString());return renderHtmlLayout(t,[r,s],o,n.getState())}}]),r}();exports.RenderClient=JssClient,exports.RenderServer=JssServer;
//# sourceMappingURL=react-esc-render-jss.production.js.map