0
0
mirror of https://github.com/naturalcrit/homebrewery.git synced 2026-01-08 03:12:40 +00:00

Also edit currently selected page

This commit is contained in:
Trevor Buckner
2024-01-09 22:19:09 -05:00
parent 448c12cc91
commit 42c1bece65
2 changed files with 19 additions and 12 deletions

View File

@@ -45,12 +45,13 @@ let rawPages = [];
const BrewRenderer = (props)=>{ const BrewRenderer = (props)=>{
props = { props = {
text : '', text : '',
style : '', style : '',
renderer : 'legacy', renderer : 'legacy',
theme : '5ePHB', theme : '5ePHB',
lang : '', lang : '',
errors : [], errors : [],
currentEditorPage : 0,
...props ...props
}; };
@@ -94,6 +95,9 @@ const BrewRenderer = (props)=>{
if(Math.abs(index - state.viewablePageNumber) <= 3) if(Math.abs(index - state.viewablePageNumber) <= 3)
return true; return true;
if(index + 1 == props.currentEditorPage)
return true;
return false; return false;
}; };
@@ -143,8 +147,8 @@ const BrewRenderer = (props)=>{
if(props.errors && props.errors.length) if(props.errors && props.errors.length)
return renderedPages; return renderedPages;
if(rawPages.length < renderedPages.length) // Remove out-of-view pages when page length changes if(rawPages.length != renderedPages.length) // Re-render all pages when page count changes
renderedPages.length = rawPages.length; renderedPages.length = 0;
_.forEach(rawPages, (page, index)=>{ _.forEach(rawPages, (page, index)=>{
if((shouldRender(index) || !renderedPages[index]) && typeof window !== 'undefined'){ if((shouldRender(index) || !renderedPages[index]) && typeof window !== 'undefined'){

View File

@@ -50,7 +50,8 @@ const EditPage = createClass({
url : '', url : '',
autoSave : true, autoSave : true,
autoSaveWarning : false, autoSaveWarning : false,
unsavedTime : new Date() unsavedTime : new Date(),
currentEditorPage : 0
}; };
}, },
savedBrew : null, savedBrew : null,
@@ -109,9 +110,10 @@ const EditPage = createClass({
if(htmlErrors.length) htmlErrors = Markdown.validate(text); if(htmlErrors.length) htmlErrors = Markdown.validate(text);
this.setState((prevState)=>({ this.setState((prevState)=>({
brew : { ...prevState.brew, text: text }, brew : { ...prevState.brew, text: text },
isPending : true, isPending : true,
htmlErrors : htmlErrors htmlErrors : htmlErrors,
currentEditorPage : this.refs.editor.getCurrentPage()
}), ()=>{if(this.state.autoSave) this.trySave();}); }), ()=>{if(this.state.autoSave) this.trySave();});
}, },
@@ -405,6 +407,7 @@ const EditPage = createClass({
theme={this.state.brew.theme} theme={this.state.brew.theme}
errors={this.state.htmlErrors} errors={this.state.htmlErrors}
lang={this.state.brew.lang} lang={this.state.brew.lang}
currentEditorPage={this.state.currentEditorPage}
/> />
</SplitPane> </SplitPane>
</div> </div>