diff --git a/client/homebrew/pages/basePages/editPage/editPage.jsx b/client/homebrew/pages/basePages/editPage/editPage.jsx
index 8915489d4..bba1d5bc9 100644
--- a/client/homebrew/pages/basePages/editPage/editPage.jsx
+++ b/client/homebrew/pages/basePages/editPage/editPage.jsx
@@ -27,6 +27,66 @@ const BaseEditPage = (props)=>{
const [currentEditorCursorPageNum, setCurrentEditorCursorPageNum] = useState(1);
const [currentBrewRendererPageNum, setCurrentBrewRendererPageNum] = useState(1);
const [themeBundle, setThemeBundle] = useState({});
+
+ const editorRef = useRef(null);
+
+ const handleSplitMove = ()=>{
+ editorRef.current.update();
+ };
+
+ const handleEditorViewPageChange = (pageNumber)=>{
+ setCurrentEditorViewPageNum(pageNumber);
+ };
+
+ const handleEditorCursorPageChange = (pageNumber)=>{
+ setCurrentEditorCursorPageNum(pageNumber);
+ };
+
+ const handleBrewRendererPageChange = (pageNumber)=>{
+ setCurrentBrewRendererPageNum(pageNumber);
+ };
+
+ const handleTextChange = (text)=>{
+ //If there are HTML errors, run the validator on every change to give quick feedback
+ if(htmlErrors.length)
+ htmlErrors = Markdown.validate(text);
+
+ setHTMLErrors(htmlErrors);
+ setBrew((prevBrew) => ({ ...prevBrew, text }));
+
+ // TODO: ONLY ON /NEW PAGE
+ localStorage.setItem(BREWKEY, text);
+ };
+
+ const handleStyleChange = (style)=>{
+ setBrew((prevBrew) => ({ ...prevBrew, style }));
+
+ if(props.useLocalStorage)
+ localStorage.setItem(STYLEKEY, style);
+ };
+
+ const handleSnipChange = (snippet)=>{
+ setBrew((prevBrew) => ({ ...prevBrew, snippets: snippet }));
+ };
+
+ const handleMetaChange = (metadata, field=undefined)=>{
+ if(field == 'theme' || field == 'renderer') // Fetch theme bundle only if theme or renderer was changed
+ fetchThemeBundle(setError, setThemeBundle, metadata.renderer, metadata.theme);
+
+ setBrew((prevBrew) => ({ ...prevBrew, ...metadata }));
+
+ if(props.useLocalStorage)
+ localStorage.setItem(METAKEY, JSON.stringify({
+ 'renderer' : metadata.renderer,
+ 'theme' : metadata.theme,
+ 'lang' : metadata.lang
+ }));
+ };
+
+ const clearError = ()=>{
+ setError(null);
+ setIsSaving(false);
+ };
return (
diff --git a/client/homebrew/pages/homePage/homePage.jsx b/client/homebrew/pages/homePage/homePage.jsx
index 9168f1950..2eb6f3f61 100644
--- a/client/homebrew/pages/homePage/homePage.jsx
+++ b/client/homebrew/pages/homePage/homePage.jsx
@@ -49,28 +49,6 @@ const HomePage = createClass({
this.setState({ isSaving: false, error: err });
});
},
- handleSplitMove : function(){
- this.editor.current.update();
- },
-
- handleEditorViewPageChange : function(pageNumber){
- this.setState({ currentEditorViewPageNum: pageNumber });
- },
-
- handleEditorCursorPageChange : function(pageNumber){
- this.setState({ currentEditorCursorPageNum: pageNumber });
- },
-
- handleBrewRendererPageChange : function(pageNumber){
- this.setState({ currentBrewRendererPageNum: pageNumber });
- },
-
- handleTextChange : function(text){
- this.setState((prevState)=>({
- brew : { ...prevState.brew, text: text },
- }));
- },
-
renderSaveButton : function(){
if(this.state.isSaving){
return
diff --git a/client/homebrew/pages/newPage/newPage.jsx b/client/homebrew/pages/newPage/newPage.jsx
index 87c03798f..7270df289 100644
--- a/client/homebrew/pages/newPage/newPage.jsx
+++ b/client/homebrew/pages/newPage/newPage.jsx
@@ -75,81 +75,6 @@ const NewPage = createClass({
document.removeEventListener('keydown', this.handleControlKeys);
},
- handleControlKeys : function(e){
- if(!(e.ctrlKey || e.metaKey)) return;
- const S_KEY = 83;
- const P_KEY = 80;
- if(e.keyCode == S_KEY) this.save();
- if(e.keyCode == P_KEY) printCurrentBrew();
- if(e.keyCode == P_KEY || e.keyCode == S_KEY){
- e.stopPropagation();
- e.preventDefault();
- }
- },
-
- handleSplitMove : function(){
- this.editor.current.update();
- },
-
- handleEditorViewPageChange : function(pageNumber){
- this.setState({ currentEditorViewPageNum: pageNumber });
- },
-
- handleEditorCursorPageChange : function(pageNumber){
- this.setState({ currentEditorCursorPageNum: pageNumber });
- },
-
- handleBrewRendererPageChange : function(pageNumber){
- this.setState({ currentBrewRendererPageNum: pageNumber });
- },
-
- handleTextChange : function(text){
- //If there are errors, run the validator on every change to give quick feedback
- let htmlErrors = this.state.htmlErrors;
- if(htmlErrors.length) htmlErrors = Markdown.validate(text);
-
- this.setState((prevState)=>({
- brew : { ...prevState.brew, text: text },
- htmlErrors : htmlErrors,
- }));
- localStorage.setItem(BREWKEY, text);
- },
-
- handleStyleChange : function(style){
- this.setState((prevState)=>({
- brew : { ...prevState.brew, style: style },
- }));
- localStorage.setItem(STYLEKEY, style);
- },
-
- handleSnipChange : function(snippet){
- //If there are errors, run the validator on every change to give quick feedback
- let htmlErrors = this.state.htmlErrors;
- if(htmlErrors.length) htmlErrors = Markdown.validate(snippet);
-
- this.setState((prevState)=>({
- brew : { ...prevState.brew, snippets: snippet },
- htmlErrors : htmlErrors,
- }), ()=>{if(this.state.autoSave) this.trySave();});
- },
-
- handleMetaChange : function(metadata, field=undefined){
- if(field == 'theme' || field == 'renderer') // Fetch theme bundle only if theme or renderer was changed
- fetchThemeBundle(this, metadata.renderer, metadata.theme);
-
- this.setState((prevState)=>({
- brew : { ...prevState.brew, ...metadata },
- }), ()=>{
- localStorage.setItem(METAKEY, JSON.stringify({
- // 'title' : this.state.brew.title,
- // 'description' : this.state.brew.description,
- 'renderer' : this.state.brew.renderer,
- 'theme' : this.state.brew.theme,
- 'lang' : this.state.brew.lang
- }));
- });
- ;
- },
save : async function(){
this.setState({