diff --git a/client/homebrew/pages/editPage/editPage.jsx b/client/homebrew/pages/editPage/editPage.jsx index de1278d..27cacdd 100644 --- a/client/homebrew/pages/editPage/editPage.jsx +++ b/client/homebrew/pages/editPage/editPage.jsx @@ -16,7 +16,6 @@ var SplitPane = require('naturalcrit/splitPane/splitPane.jsx'); var Editor = require('../../editor/editor.jsx'); var BrewRenderer = require('../../brewRenderer/brewRenderer.jsx'); -var HijackPrint = require('../hijackPrint.js'); var Markdown = require('naturalcrit/markdown.js'); @@ -65,11 +64,22 @@ var EditPage = React.createClass({ htmlErrors : Markdown.validate(this.state.text) }) - document.onkeydown = HijackPrint(this.props.brew.shareId); + document.addEventListener('keydown', this.handleControlKeys); }, componentWillUnmount: function() { window.onbeforeunload = function(){}; - document.onkeydown = function(){}; + document.removeEventListener('keydown', this.handleControlKeys); + }, + + + handleControlKeys : function(e){ + if(!(e.ctrlKey || e.metaKey)) return; + e.stopPropagation(); + e.preventDefault(); + const S_KEY = 83; + const P_KEY = 80; + if(e.keyCode == S_KEY) this.save(); + if(e.keyCode == P_KEY) window.open(`/print/${this.props.brew.shareId}?dialog=true`, '_blank').focus(); }, handleSplitMove : function(){ diff --git a/client/homebrew/pages/hijackPrint.js b/client/homebrew/pages/hijackPrint.js index 144a1fc..e19f5fb 100644 --- a/client/homebrew/pages/hijackPrint.js +++ b/client/homebrew/pages/hijackPrint.js @@ -1,3 +1,5 @@ +//TODO: Depricate + module.exports = function(shareId){ return function(event){ event = event || window.event; diff --git a/client/homebrew/pages/newPage/newPage.jsx b/client/homebrew/pages/newPage/newPage.jsx index b2a9f63..d8a2bd4 100644 --- a/client/homebrew/pages/newPage/newPage.jsx +++ b/client/homebrew/pages/newPage/newPage.jsx @@ -35,7 +35,22 @@ const NewPage = React.createClass({ text : storage }) } + document.addEventListener('keydown', this.handleControlKeys); }, + componentWillUnmount: function() { + document.removeEventListener('keydown', this.handleControlKeys); + }, + + handleControlKeys : function(e){ + if(!(e.ctrlKey || e.metaKey)) return; + e.stopPropagation(); + e.preventDefault(); + const S_KEY = 83; + const P_KEY = 80; + if(e.keyCode == S_KEY) this.save(); + if(e.keyCode == P_KEY) this.print(); + }, + handleSplitMove : function(){ this.refs.editor.update(); }, @@ -54,7 +69,7 @@ const NewPage = React.createClass({ localStorage.setItem(KEY, text); }, - handleSave : function(){ + save : function(){ this.setState({ isSaving : true }); @@ -85,19 +100,19 @@ const NewPage = React.createClass({ save... }else{ - return + return save } }, - handlePrintClick : function(){ + print : function(){ localStorage.setItem('print', this.state.text); window.open('/print?dialog=true&local=print','_blank'); }, renderLocalPrintButton : function(){ - return + return get PDF },