mirror of
https://github.com/naturalcrit/homebrewery.git
synced 2025-12-31 06:32:37 +00:00
DMG theme added
This commit is contained in:
@@ -23,6 +23,7 @@ const BrewRenderer = createClass({
|
||||
text : '',
|
||||
style : '',
|
||||
renderer : 'legacy',
|
||||
theme : '5ePHB',
|
||||
errors : []
|
||||
};
|
||||
},
|
||||
@@ -177,6 +178,8 @@ const BrewRenderer = createClass({
|
||||
render : function(){
|
||||
//render in iFrame so broken code doesn't crash the site.
|
||||
//Also render dummy page while iframe is mounting.
|
||||
const rendererPath = this.props.renderer == 'V3' ? 'V3' : 'Legacy';
|
||||
const themePath = this.props.theme ?? '5ePHB';
|
||||
|
||||
return (
|
||||
<React.Fragment>
|
||||
@@ -200,7 +203,7 @@ const BrewRenderer = createClass({
|
||||
<RenderWarnings />
|
||||
<NotificationPopup />
|
||||
</div>
|
||||
<link href={`${this.props.renderer == 'legacy' ? '/themes/Legacy/5ePHB/style.css' : '/themes/V3/5ePHB/style.css'}`} rel='stylesheet'/>
|
||||
<link href={`/themes/${rendererPath}/${themePath}/style.css`} rel='stylesheet'/>
|
||||
{/* Apply CSS from Style tab and render pages from Markdown tab */}
|
||||
{this.state.isMounted
|
||||
&&
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
/*eslint max-lines: ["warn", {"max": 300, "skipBlankLines": true, "skipComments": true}]*/
|
||||
require('./metadataEditor.less');
|
||||
const React = require('react');
|
||||
const createClass = require('create-react-class');
|
||||
@@ -29,6 +30,11 @@ const MetadataEditor = createClass({
|
||||
};
|
||||
},
|
||||
|
||||
getThemeData : function(renderer, theme){
|
||||
|
||||
return Themes[_.upperFirst(renderer)].find((x)=>x.path == theme);
|
||||
},
|
||||
|
||||
handleFieldChange : function(name, e){
|
||||
this.props.onChange(_.merge({}, this.props.metadata, {
|
||||
[name] : e.target.value
|
||||
@@ -45,6 +51,8 @@ const MetadataEditor = createClass({
|
||||
handleRenderer : function(renderer, e){
|
||||
if(e.target.checked){
|
||||
this.props.metadata.renderer = renderer;
|
||||
if(renderer == 'legacy')
|
||||
this.props.metadata.theme = '5ePHB';
|
||||
}
|
||||
this.props.onChange(this.props.metadata);
|
||||
},
|
||||
@@ -56,7 +64,7 @@ const MetadataEditor = createClass({
|
||||
|
||||
handleTheme : function(theme){
|
||||
this.props.metadata.renderer = theme.renderer;
|
||||
this.props.metadata.theme = theme.name;
|
||||
this.props.metadata.theme = theme.path;
|
||||
this.props.onChange(this.props.metadata);
|
||||
},
|
||||
|
||||
@@ -129,17 +137,19 @@ const MetadataEditor = createClass({
|
||||
renderThemeDropdown : function(){
|
||||
const listThemes = (renderer)=>{
|
||||
return _.map(Themes[renderer], (theme)=>{
|
||||
return <div href={''} className='item' key={''} onClick={()=>this.handleTheme(theme)} title={''}>
|
||||
return <div className='item' key={''} onClick={()=>this.handleTheme(theme)} title={''}>
|
||||
{`${theme.renderer} : ${theme.name}`}
|
||||
</div>;
|
||||
});
|
||||
};
|
||||
|
||||
const currentTheme = this.getThemeData(this.props.metadata.renderer, this.props.metadata.theme);
|
||||
|
||||
return <div className='field themes'>
|
||||
<label>theme</label>
|
||||
<Nav.dropdown trigger='click'>
|
||||
<div>
|
||||
{`${this.props.metadata.renderer} : ${this.props.metadata.theme}`} <i className='fas fa-caret-down'></i>
|
||||
{`${_.upperFirst(currentTheme.renderer)} : ${currentTheme.name}`} <i className='fas fa-caret-down'></i>
|
||||
</div>
|
||||
{listThemes('Legacy')}
|
||||
{listThemes('V3')}
|
||||
|
||||
@@ -42,8 +42,6 @@ const Snippetbar = createClass({
|
||||
componentDidMount : async function() {
|
||||
const rendererPath = this.props.renderer == 'V3' ? 'V3' : 'Legacy';
|
||||
const themePath = this.props.theme ?? '5ePHB';
|
||||
console.log(Themes);
|
||||
console.log(Themes[`${rendererPath}_${themePath}`]);
|
||||
const snippets = Themes[`${rendererPath}_${themePath}`];
|
||||
this.setState({
|
||||
snippets : snippets
|
||||
|
||||
@@ -472,7 +472,7 @@ const EditPage = createClass({
|
||||
onMetaChange={this.handleMetaChange}
|
||||
renderer={this.state.brew.renderer}
|
||||
/>
|
||||
<BrewRenderer text={this.state.brew.text} style={this.state.brew.style} renderer={this.state.brew.renderer} errors={this.state.htmlErrors} />
|
||||
<BrewRenderer text={this.state.brew.text} style={this.state.brew.style} renderer={this.state.brew.renderer} theme={this.state.brew.theme} errors={this.state.htmlErrors} />
|
||||
</SplitPane>
|
||||
</div>
|
||||
</div>;
|
||||
|
||||
Reference in New Issue
Block a user