UNPKG

4.81 kBSource Map (JSON)View Raw
1{"version":3,"sources":["../src/helpers/Html.js"],"names":["Html","props","assets","component","store","content","renderToString","head","rewind","base","toComponent","title","meta","link","script","styles","map","style","key","__html","getState","javascript","main","propTypes","object","node"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;;;;;;;;;AAEA;;;;;;;;;IASqBA,I;;;;;;;;;;6BAOV;AAAA,mBAC4B,KAAKC,KADjC;AAAA,UACAC,MADA,UACAA,MADA;AAAA,UACQC,SADR,UACQA,SADR;AAAA,UACmBC,KADnB,UACmBA,KADnB;;AAEP,UAAMC,UAAUF,YAAY,iBAASG,cAAT,CAAwBH,SAAxB,CAAZ,GAAiD,EAAjE;AACA,UAAMI,OAAO,sBAAOC,MAAP,EAAb;AACA,aACE;AAAA;AAAA,UAAM,MAAK,OAAX;AAAA;AAAA;AAAA;AAAA;AACE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACGD,eAAKE,IAAL,CAAUC,WAAV,EADH;AAEGH,eAAKI,KAAL,CAAWD,WAAX,EAFH;AAGGH,eAAKK,IAAL,CAAUF,WAAV,EAHH;AAIGH,eAAKM,IAAL,CAAUH,WAAV,EAJH;AAKGH,eAAKO,MAAL,CAAYJ,WAAZ,EALH;AAOE,kDAAM,KAAI,eAAV,EAA0B,MAAK,cAA/B;AAAA;AAAA;AAAA;AAAA,YAPF;AAQE,kDAAM,WAAU,iBAAhB,EAAkC,SAAQ,kBAA1C;AAAA;AAAA;AAAA;AAAA,YARF;AASE,kDAAM,MAAK,UAAX,EAAsB,SAAQ,QAA9B;AAAA;AAAA;AAAA;AAAA,YATF;AAUE,kDAAM,SAAQ,QAAd,EAAuB,MAAK,UAA5B;AAAA;AAAA;AAAA;AAAA,YAVF;AAWE,kDAAM,MAAK,UAAX,EAAsB,SAAQ,qCAA9B;AAAA;AAAA;AAAA;AAAA,YAXF;AAaG,8BAAYR,OAAOa,MAAnB,EAA2BC,GAA3B,CAA+B,UAACC,KAAD,EAAQC,GAAR;AAAA,mBAC9B,wCAAM,MAAMhB,OAAOa,MAAP,CAAcE,KAAd,CAAZ,EAAkC,KAAKC,GAAvC,EAA4C,OAAM,oBAAlD;AACM,mBAAI,YADV,EACuB,MAAK,UAD5B,EACuC,SAAQ,OAD/C;AAAA;AAAA;AAAA;AAAA,cAD8B;AAAA,WAA/B;AAbH,SADF;AAyBE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACE,iDAAK,IAAG,SAAR,EAAkB,yBAAyB,EAACC,QAAQd,OAAT,EAA3C;AAAA;AAAA;AAAA;AAAA,YADF;AAEE,oDAAQ,yBAAyB,EAACc,2BAAyB,mCAAUf,MAAMgB,QAAN,EAAV,CAAzB,MAAD,EAAjC,EAA4F,SAAQ,OAApG;AAAA;AAAA;AAAA;AAAA,YAFF;AAGE,oDAAQ,KAAKlB,OAAOmB,UAAP,CAAkBC,IAA/B,EAAqC,SAAQ,OAA7C;AAAA;AAAA;AAAA;AAAA;AAHF;AAzBF,OADF;AAiCD;;;;;;;;4BA3CMC,S,GAAY;AACjBrB,UAAQ,oBAAUsB,MADD;AAEjBrB,aAAW,oBAAUsB,IAFJ;AAGjBrB,SAAO,oBAAUoB;AAHA,C;kBADAxB,I;;;;;;;;;;;;0BAAAA,I","file":"Html.js","sourcesContent":["import React, {Component} from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport ReactDOM from 'react-dom/server';\r\nimport serialize from 'serialize-javascript';\r\nimport Helmet from 'react-helmet';\r\n\r\n/**\r\n * Wrapper component containing HTML metadata and boilerplate tags.\r\n * Used in server-side code only to wrap the string output of the\r\n * rendered route component.\r\n *\r\n * The only thing this component doesn't (and can't) include is the\r\n * HTML doctype declaration, which is added to the rendered output\r\n * by the server.js file.\r\n */\r\nexport default class Html extends Component {\r\n static propTypes = {\r\n assets: PropTypes.object,\r\n component: PropTypes.node,\r\n store: PropTypes.object\r\n };\r\n\r\n render() {\r\n const {assets, component, store} = this.props;\r\n const content = component ? ReactDOM.renderToString(component) : '';\r\n const head = Helmet.rewind();\r\n return (\r\n <html lang=\"en-us\">\r\n <head>\r\n {head.base.toComponent()}\r\n {head.title.toComponent()}\r\n {head.meta.toComponent()}\r\n {head.link.toComponent()}\r\n {head.script.toComponent()}\r\n\r\n <link rel=\"shortcut icon\" href=\"/favicon.ico\" />\r\n <meta httpEquiv=\"X-UA-Compatible\" content=\"IE=edge,chrome=1\" />\r\n <meta name=\"renderer\" content=\"webkit\" />\r\n <meta content=\"always\" name=\"referrer\" />\r\n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\" />\r\n {/* styles (will be present only in production with webpack extract text plugin) */}\r\n {Object.keys(assets.styles).map((style, key) =>\r\n <link href={assets.styles[style]} key={key} media=\"screen, projection\"\r\n rel=\"stylesheet\" type=\"text/css\" charSet=\"UTF-8\"/>\r\n )}\r\n\r\n {/* (will be present only in development mode) */}\r\n {/* outputs a <style/> tag with all bootstrap styles + App.scss + it could be CurrentPage.scss. */}\r\n {/* can smoothen the initial style flash (flicker) on page load in development mode. */}\r\n {/* ideally one could also include here the style for the current page (Home.scss, About.scss, etc) */}\r\n {/* Object.keys(assets.styles).length === 0 ? <style dangerouslySetInnerHTML={{__html: require('../theme/bootstrap.config.js') }}/> : null */}\r\n </head>\r\n <body>\r\n <div id=\"content\" dangerouslySetInnerHTML={{__html: content}}/>\r\n <script dangerouslySetInnerHTML={{__html: `window.__data=${serialize(store.getState())};`}} charSet=\"UTF-8\"/>\r\n <script src={assets.javascript.main} charSet=\"UTF-8\"/>\r\n </body>\r\n </html>\r\n );\r\n }\r\n}\r\n"]}
\No newline at end of file