diff --git a/client/homebrew/brewRenderer/brewRenderer.less b/client/homebrew/brewRenderer/brewRenderer.less index ed29047f3..28ea8005e 100644 --- a/client/homebrew/brewRenderer/brewRenderer.less +++ b/client/homebrew/brewRenderer/brewRenderer.less @@ -72,7 +72,7 @@ .pages { margin: 0px; &>.page { - box-shadow: unset; + box-shadow: unset; } } } diff --git a/client/homebrew/navbar/print.navitem.jsx b/client/homebrew/navbar/print.navitem.jsx index 0bfb62138..42b47b88e 100644 --- a/client/homebrew/navbar/print.navitem.jsx +++ b/client/homebrew/navbar/print.navitem.jsx @@ -1,13 +1,8 @@ const React = require('react'); const Nav = require('naturalcrit/nav/nav.jsx'); -module.exports = function(props){ - const printPage = () => { - if (window.typeof !== 'undefined') - window.frames['BrewRenderer'].contentWindow.print(); - }; - - return +module.exports = function({printFunction}){ + return get PDF ; }; diff --git a/client/homebrew/pages/editPage/editPage.jsx b/client/homebrew/pages/editPage/editPage.jsx index b5c82217c..dfce74e48 100644 --- a/client/homebrew/pages/editPage/editPage.jsx +++ b/client/homebrew/pages/editPage/editPage.jsx @@ -95,13 +95,24 @@ const EditPage = createClass({ const S_KEY = 83; const P_KEY = 80; if(e.keyCode == S_KEY) this.trySave(true); - if(e.keyCode == P_KEY) window.frames['BrewRenderer'].contentWindow.print(); + if(e.keyCode == P_KEY) this.printPage(); if(e.keyCode == P_KEY || e.keyCode == S_KEY){ e.stopPropagation(); e.preventDefault(); } }, + printPage : function(){ + if (window.typeof !== 'undefined') { + window.frames['BrewRenderer'].contentWindow.print(); + //Force DOM reflow; Print dialog causes a repaint, and @media print CSS somehow makes out-of-view pages disappear + let node = window.frames['BrewRenderer'].contentDocument.getElementsByClassName('brewRenderer').item(0); + node.style.display='none'; + node.offsetHeight; // accessing this is enough to trigger a reflow + node.style.display=''; + } + }, + handleSplitMove : function(){ this.editor.current.update(); }, @@ -378,7 +389,7 @@ const EditPage = createClass({ post to reddit - + diff --git a/client/homebrew/pages/newPage/newPage.jsx b/client/homebrew/pages/newPage/newPage.jsx index 85ca62500..85303ae2d 100644 --- a/client/homebrew/pages/newPage/newPage.jsx +++ b/client/homebrew/pages/newPage/newPage.jsx @@ -90,13 +90,24 @@ const NewPage = createClass({ const S_KEY = 83; const P_KEY = 80; if(e.keyCode == S_KEY) this.save(); - if(e.keyCode == P_KEY) window.frames['BrewRenderer'].contentWindow.print(); + if(e.keyCode == P_KEY) this.printPage(); if(e.keyCode == P_KEY || e.keyCode == S_KEY){ e.stopPropagation(); e.preventDefault(); } }, + printPage : function(){ + if (window.typeof !== 'undefined') { + window.frames['BrewRenderer'].contentWindow.print(); + //Force DOM reflow; Print dialog causes a repaint, and @media print CSS somehow makes out-of-view pages disappear + let node = window.frames['BrewRenderer'].contentDocument.getElementsByClassName('brewRenderer').item(0); + node.style.display='none'; + node.offsetHeight; // accessing this is enough to trigger a reflow + node.style.display=''; + } + }, + handleSplitMove : function(){ this.editor.current.update(); }, @@ -181,10 +192,6 @@ const NewPage = createClass({ } }, - print : function(){ - window.open('/print?dialog=true&local=print', '_blank'); - }, - renderNavbar : function(){ return @@ -197,7 +204,7 @@ const NewPage = createClass({ : this.renderSaveButton() } - + diff --git a/client/homebrew/pages/sharePage/sharePage.jsx b/client/homebrew/pages/sharePage/sharePage.jsx index ec998a821..dccea796c 100644 --- a/client/homebrew/pages/sharePage/sharePage.jsx +++ b/client/homebrew/pages/sharePage/sharePage.jsx @@ -35,12 +35,23 @@ const SharePage = createClass({ if(!(e.ctrlKey || e.metaKey)) return; const P_KEY = 80; if(e.keyCode == P_KEY){ - if(e.keyCode == P_KEY) window.frames['BrewRenderer'].contentWindow.print(); + if(e.keyCode == P_KEY) this.printPage(); e.stopPropagation(); e.preventDefault(); } }, + printPage : function(){ + if (window.typeof !== 'undefined') { + window.frames['BrewRenderer'].contentWindow.print(); + //Force DOM reflow; Print dialog causes a repaint, and @media print CSS somehow makes out-of-view pages disappear + let node = window.frames['BrewRenderer'].contentDocument.getElementsByClassName('brewRenderer').item(0); + node.style.display='none'; + node.offsetHeight; // accessing this is enough to trigger a reflow + node.style.display=''; + } + }, + processShareId : function() { return this.props.brew.googleId && !this.props.brew.stubbed ? this.props.brew.googleId + this.props.brew.shareId : @@ -72,7 +83,7 @@ const SharePage = createClass({ {this.props.brew.shareId && <> - + source