0
0
mirror of https://github.com/naturalcrit/homebrewery.git synced 2026-03-26 19:08:11 +00:00

Add editorTheme to editor.jsx and downstream

This commit is contained in:
G.Ambatte
2023-04-02 12:53:26 +12:00
parent 51f657d2c5
commit 7dd1368c09
3 changed files with 49 additions and 14 deletions

View File

@@ -34,12 +34,14 @@ const Editor = createClass({
onMetaChange : ()=>{},
reportError : ()=>{},
renderer : 'legacy'
editorTheme : 'default',
renderer : 'legacy'
};
},
getInitialState : function() {
return {
view : 'text' //'text', 'style', 'meta'
editorTheme : this.props.editorTheme,
view : 'text' //'text', 'style', 'meta'
};
},
@@ -255,25 +257,38 @@ const Editor = createClass({
this.refs.codeEditor?.updateSize();
},
updateEditorTheme : function(newTheme){
this.setState({
editorTheme : newTheme
});
},
//Called by CodeEditor after document switch, so Snippetbar can refresh UndoHistory
rerenderParent : function (){
this.forceUpdate();
},
renderEditorCSSLink : function(){
return <link href={`../homebrew/cm-themes/${this.state.editorTheme}.css`} rel='stylesheet' />;
},
renderEditor : function(){
if(this.isText()){
return <>
{this.renderEditorCSSLink()}
<CodeEditor key='codeEditor'
ref='codeEditor'
language='gfm'
view={this.state.view}
value={this.props.brew.text}
onChange={this.props.onTextChange}
editorTheme={this.state.editorTheme}
rerenderParent={this.rerenderParent} />
</>;
}
if(this.isStyle()){
return <>
{this.renderEditorCSSLink()}
<CodeEditor key='codeEditor'
ref='codeEditor'
language='css'
@@ -281,6 +296,7 @@ const Editor = createClass({
value={this.props.brew.style ?? DEFAULT_STYLE_TEXT}
onChange={this.props.onStyleChange}
enableFolding={false}
editorTheme={this.state.editorTheme}
rerenderParent={this.rerenderParent} />
</>;
}
@@ -323,7 +339,8 @@ const Editor = createClass({
theme={this.props.brew.theme}
undo={this.undo}
redo={this.redo}
historySize={this.historySize()} />
historySize={this.historySize()}
updateEditorTheme={this.updateEditorTheme} />
{this.renderEditor()}
</div>