0
0
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:
Trevor Buckner
2022-01-21 00:27:52 -05:00
parent 65335162fc
commit f84e2c316f
21 changed files with 1206 additions and 25 deletions

View File

@@ -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
&&

View File

@@ -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')}

View File

@@ -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

View File

@@ -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>;