diff --git a/client/homebrew/pages/editPage/editPage.jsx b/client/homebrew/pages/editPage/editPage.jsx
index 39a6d1931..a23b209f6 100644
--- a/client/homebrew/pages/editPage/editPage.jsx
+++ b/client/homebrew/pages/editPage/editPage.jsx
@@ -1,8 +1,9 @@
/* eslint-disable max-lines */
require('./editPage.less');
const React = require('react');
-const createClass = require('create-react-class');
const _ = require('lodash');
+const createClass = require('create-react-class');
+
const request = require('../../utils/request-middleware.js');
const { Meta } = require('vitreum/headtags');
@@ -41,22 +42,24 @@ const EditPage = createClass({
getInitialState : function() {
return {
- brew : this.props.brew,
- isSaving : false,
- isPending : false,
- alertTrashedGoogleBrew : this.props.brew.trashed,
- alertLoginToTransfer : false,
- saveGoogle : this.props.brew.googleId ? true : false,
- confirmGoogleTransfer : false,
- error : null,
- htmlErrors : Markdown.validate(this.props.brew.text),
- url : '',
- autoSave : true,
- autoSaveWarning : false,
- unsavedTime : new Date(),
- currentEditorPage : 0,
- displayLockMessage : this.props.brew.lock || false,
- themeBundle : {}
+ brew : this.props.brew,
+ isSaving : false,
+ isPending : false,
+ alertTrashedGoogleBrew : this.props.brew.trashed,
+ alertLoginToTransfer : false,
+ saveGoogle : this.props.brew.googleId ? true : false,
+ confirmGoogleTransfer : false,
+ error : null,
+ htmlErrors : Markdown.validate(this.props.brew.text),
+ url : '',
+ autoSave : true,
+ autoSaveWarning : false,
+ unsavedTime : new Date(),
+ currentEditorViewPageNum : 0,
+ currentEditorCursorPageNum : 0,
+ currentBrewRendererPageNum : 0,
+ displayLockMessage : this.props.brew.lock || false,
+ themeBundle : {}
};
},
@@ -113,16 +116,31 @@ const EditPage = createClass({
this.editor.current.update();
},
+ handleEditorViewPageChange : function(pageNumber){
+ console.log(`editor view : ${pageNumber}`)
+ this.setState({ currentEditorViewPageNum : pageNumber });
+ },
+
+ handleEditorCursorPageChange : function(pageNumber){
+ console.log(`editor cursor : ${pageNumber}`)
+ this.setState({ currentEditorCursorPageNum : pageNumber });
+ },
+
+ handleBrewRendererPageChange : function(pageNumber){
+ console.log(`brewRenderer view : ${pageNumber}`)
+ this.setState({ currentBrewRendererPageNum : pageNumber });
+ },
+
handleTextChange : function(text){
//If there are errors, run the validator on every change to give quick feedback
+ console.log("text change")
let htmlErrors = this.state.htmlErrors;
if(htmlErrors.length) htmlErrors = Markdown.validate(text);
this.setState((prevState)=>({
- brew : { ...prevState.brew, text: text },
- isPending : true,
- htmlErrors : htmlErrors,
- currentEditorPage : this.editor.current.getCurrentPage() - 1 //Offset index since Marked starts pages at 0
+ brew : { ...prevState.brew, text: text },
+ isPending : true,
+ htmlErrors : htmlErrors,
}), ()=>{if(this.state.autoSave) this.trySave();});
},
@@ -413,6 +431,11 @@ const EditPage = createClass({
renderer={this.state.brew.renderer}
userThemes={this.props.userThemes}
snippetBundle={this.state.themeBundle.snippets}
+ onCursorPageChange={this.handleEditorCursorPageChange}
+ onViewPageChange={this.handleEditorViewPageChange}
+ currentEditorViewPageNum={this.state.currentEditorViewPageNum}
+ currentEditorCursorPageNum={this.state.currentEditorCursorPageNum}
+ currentBrewRendererPageNum={this.state.currentBrewRendererPageNum}
/>
diff --git a/client/homebrew/pages/homePage/homePage.jsx b/client/homebrew/pages/homePage/homePage.jsx
index d7efcaf14..484d04e1f 100644
--- a/client/homebrew/pages/homePage/homePage.jsx
+++ b/client/homebrew/pages/homePage/homePage.jsx
@@ -1,7 +1,6 @@
require('./homePage.less');
const React = require('react');
const createClass = require('create-react-class');
-const _ = require('lodash');
const cx = require('classnames');
const request = require('../../utils/request-middleware.js');
const { Meta } = require('vitreum/headtags');
@@ -32,11 +31,13 @@ const HomePage = createClass({
},
getInitialState : function() {
return {
- brew : this.props.brew,
- welcomeText : this.props.brew.text,
- error : undefined,
- currentEditorPage : 0,
- themeBundle : {}
+ brew : this.props.brew,
+ welcomeText : this.props.brew.text,
+ error : undefined,
+ currentEditorViewPageNum : 0,
+ currentEditorCursorPageNum : 0,
+ currentBrewRendererPageNum : 0,
+ themeBundle : {}
};
},
@@ -61,10 +62,25 @@ const HomePage = createClass({
handleSplitMove : function(){
this.editor.current.update();
},
+
+ handleEditorViewPageChange : function(pageNumber){
+ console.log(`editor view : ${pageNumber}`)
+ this.setState({ currentEditorViewPageNum : pageNumber });
+ },
+
+ handleEditorCursorPageChange : function(pageNumber){
+ console.log(`editor cursor : ${pageNumber}`)
+ this.setState({ currentEditorCursorPageNum : pageNumber });
+ },
+
+ handleBrewRendererPageChange : function(pageNumber){
+ console.log(`brewRenderer view : ${pageNumber}`)
+ this.setState({ currentBrewRendererPageNum : pageNumber });
+ },
+
handleTextChange : function(text){
this.setState((prevState)=>({
- brew : { ...prevState.brew, text: text },
- currentEditorPage : this.editor.current.getCurrentPage() - 1 //Offset index since Marked starts pages at 0
+ brew : { ...prevState.brew, text: text },
}));
},
renderNavbar : function(){
@@ -97,12 +113,20 @@ const HomePage = createClass({
renderer={this.state.brew.renderer}
showEditButtons={false}
snippetBundle={this.state.themeBundle.snippets}
+ onCursorPageChange={this.handleEditorCursorPageChange}
+ onViewPageChange={this.handleEditorViewPageChange}
+ currentEditorViewPageNum={this.state.currentEditorViewPageNum}
+ currentEditorCursorPageNum={this.state.currentEditorCursorPageNum}
+ currentBrewRendererPageNum={this.state.currentBrewRendererPageNum}
/>
diff --git a/client/homebrew/pages/newPage/newPage.jsx b/client/homebrew/pages/newPage/newPage.jsx
index 5b0f59c00..a62077cec 100644
--- a/client/homebrew/pages/newPage/newPage.jsx
+++ b/client/homebrew/pages/newPage/newPage.jsx
@@ -39,13 +39,15 @@ const NewPage = createClass({
const brew = this.props.brew;
return {
- brew : brew,
- isSaving : false,
- saveGoogle : (global.account && global.account.googleId ? true : false),
- error : null,
- htmlErrors : Markdown.validate(brew.text),
- currentEditorPage : 0,
- themeBundle : {}
+ brew : brew,
+ isSaving : false,
+ saveGoogle : (global.account && global.account.googleId ? true : false),
+ error : null,
+ htmlErrors : Markdown.validate(brew.text),
+ currentEditorViewPageNum : 0,
+ currentEditorCursorPageNum : 0,
+ currentBrewRendererPageNum : 0,
+ themeBundle : {}
};
},
@@ -108,15 +110,29 @@ const NewPage = createClass({
this.editor.current.update();
},
+ handleEditorViewPageChange : function(pageNumber){
+ console.log(`editor view : ${pageNumber}`)
+ this.setState({ currentEditorViewPageNum : pageNumber });
+ },
+
+ handleEditorCursorPageChange : function(pageNumber){
+ console.log(`editor cursor : ${pageNumber}`)
+ this.setState({ currentEditorCursorPageNum : pageNumber });
+ },
+
+ handleBrewRendererPageChange : function(pageNumber){
+ console.log(`brewRenderer view : ${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,
- currentEditorPage : this.editor.current.getCurrentPage() - 1 //Offset index since Marked starts pages at 0
+ brew : { ...prevState.brew, text: text },
+ htmlErrors : htmlErrors,
}));
localStorage.setItem(BREWKEY, text);
},
@@ -221,6 +237,11 @@ const NewPage = createClass({
renderer={this.state.brew.renderer}
userThemes={this.props.userThemes}
snippetBundle={this.state.themeBundle.snippets}
+ onCursorPageChange={this.handleEditorCursorPageChange}
+ onViewPageChange={this.handleEditorViewPageChange}
+ currentEditorViewPageNum={this.state.currentEditorViewPageNum}
+ currentEditorCursorPageNum={this.state.currentEditorCursorPageNum}
+ currentBrewRendererPageNum={this.state.currentBrewRendererPageNum}
/>