mirror of
https://github.com/naturalcrit/homebrewery.git
synced 2025-12-31 15:12:39 +00:00
Functional user theme loading though noising console
This commit is contained in:
@@ -14,7 +14,7 @@ const NotificationPopup = require('./notificationPopup/notificationPopup.jsx');
|
||||
const Frame = require('react-frame-component').default;
|
||||
const dedent = require('dedent-tabs').default;
|
||||
|
||||
const Themes = require('themes/themes.json');
|
||||
const staticThemes = require('themes/themes.json');
|
||||
|
||||
const PAGE_HEIGHT = 1056;
|
||||
|
||||
@@ -182,18 +182,34 @@ const BrewRenderer = (props)=>{
|
||||
};
|
||||
|
||||
let rendererPath = props.renderer == 'V3' ? 'V3' : 'Legacy';
|
||||
const themePath = props.theme ?? '5ePHB';
|
||||
const baseThemePath = Themes[rendererPath][themePath].baseTheme;
|
||||
let baseRendererPath = props.renderer == 'V3' ? 'V3' : 'Legacy';
|
||||
const blankRendererPath = props.renderer == 'V3' ? 'V3' : 'Legacy';
|
||||
if(props.theme[0] === '#') {
|
||||
rendererPath = 'Brew';
|
||||
}
|
||||
let themePath = props.theme ?? '5ePHB';
|
||||
console.log(`props.userThemes`);
|
||||
console.log(props);
|
||||
console.log(`props.userThemes`);
|
||||
const Themes = { ...staticThemes, ...props.userThemes };
|
||||
let baseThemePath = Themes[rendererPath][themePath]?.baseTheme;
|
||||
|
||||
// Override static theme values if a Brew theme.
|
||||
|
||||
if(themePath[0] == '#') {
|
||||
themePath.slice(1);
|
||||
themePath = themePath.slice(1);
|
||||
rendererPath = '';
|
||||
} else {
|
||||
rendererPath += '/';
|
||||
}
|
||||
|
||||
if(baseThemePath && baseThemePath[0] == '#') {
|
||||
baseThemePath = baseThemePath.slice(1);
|
||||
baseRendererPath = '';
|
||||
} else {
|
||||
baseRendererPath += '/';
|
||||
}
|
||||
|
||||
return (
|
||||
<>
|
||||
{/*render dummy page while iFrame is mounting.*/}
|
||||
@@ -220,9 +236,9 @@ const BrewRenderer = (props)=>{
|
||||
<RenderWarnings />
|
||||
<NotificationPopup />
|
||||
</div>
|
||||
<link href={`/css/${rendererPath}Blank`} rel='stylesheet'/>
|
||||
<link href={`/css/${blankRendererPath}/Blank`} rel='stylesheet'/>
|
||||
{baseThemePath &&
|
||||
<link href={`/css/${rendererPath}${baseThemePath}`} rel='stylesheet'/>
|
||||
<link href={`/css/${baseRendererPath}${baseThemePath}`} rel='stylesheet'/>
|
||||
}
|
||||
<link href={`/css/${rendererPath}${themePath}`} rel='stylesheet'/>
|
||||
|
||||
|
||||
@@ -378,6 +378,7 @@ const Editor = createClass({
|
||||
showEditButtons={this.props.showEditButtons}
|
||||
renderer={this.props.renderer}
|
||||
theme={this.props.brew.theme}
|
||||
userThemes={this.props.brew.userThemes}
|
||||
undo={this.undo}
|
||||
redo={this.redo}
|
||||
foldCode={this.foldCode}
|
||||
|
||||
@@ -38,6 +38,7 @@ const MetadataEditor = createClass({
|
||||
authors : [],
|
||||
systems : [],
|
||||
renderer : 'legacy',
|
||||
themeClass : 'V3',
|
||||
theme : '5ePHB',
|
||||
lang : 'en'
|
||||
},
|
||||
@@ -110,8 +111,9 @@ const MetadataEditor = createClass({
|
||||
});
|
||||
},
|
||||
|
||||
handleTheme : function(theme){
|
||||
handleTheme : function(theme, themeClass){
|
||||
this.props.metadata.renderer = theme.renderer;
|
||||
this.props.metadata.themeClass = themeClass;
|
||||
this.props.metadata.theme = theme.path;
|
||||
this.props.onChange(this.props.metadata);
|
||||
},
|
||||
@@ -199,7 +201,7 @@ const MetadataEditor = createClass({
|
||||
const listThemes = (renderer)=>{
|
||||
return _.map(_.values(mergedThemes[renderer]), (theme)=>{
|
||||
const preview = theme?.thumbnail ? theme.thumbnail : `/themes/${theme.renderer}/${theme.path}/dropdownPreview.png`;
|
||||
return <div className='item' key={`${renderer}_${theme.name}`} onClick={()=>this.handleTheme(theme)} title={''}>
|
||||
return <div className='item' key={`${renderer}_${theme.name}`} onClick={()=>this.handleTheme(theme, renderer)} title={''}>
|
||||
{`${renderer} : ${theme.name}`}
|
||||
<img src={`/themes/${theme.renderer}/${theme.path}/dropdownTexture.png`}/>
|
||||
<div className='preview'>
|
||||
@@ -210,7 +212,7 @@ const MetadataEditor = createClass({
|
||||
});
|
||||
};
|
||||
|
||||
const currentTheme = mergedThemes[`${_.upperFirst(this.props.metadata.renderer)}`][this.props.metadata.theme];
|
||||
const currentTheme = mergedThemes[`${_.upperFirst(this.props.metadata.themeClass?this.props.metadata.themeClass:this.props.metadata.renderer)}`][this.props.metadata.theme];
|
||||
let dropdown;
|
||||
|
||||
if(this.props.metadata.renderer == 'legacy') {
|
||||
@@ -224,7 +226,7 @@ const MetadataEditor = createClass({
|
||||
dropdown =
|
||||
<Nav.dropdown className='value' trigger='click'>
|
||||
<div>
|
||||
{`${_.upperFirst(currentTheme.renderer)} : ${currentTheme.name}`} <i className='fas fa-caret-down'></i>
|
||||
{`${_.upperFirst(this.props.metadata.themeClass?this.props.metadata.themeClass:this.props.metadata.renderer)} : ${currentTheme.name}`} <i className='fas fa-caret-down'></i>
|
||||
</div>
|
||||
{/*listThemes('Legacy')*/}
|
||||
{listThemes('V3')}
|
||||
|
||||
@@ -84,7 +84,7 @@ const Snippetbar = createClass({
|
||||
|
||||
compileSnippets : function(rendererPath, themePath, snippets) {
|
||||
let compiledSnippets = snippets;
|
||||
const baseSnippetsPath = Themes[rendererPath][themePath].baseSnippets;
|
||||
const baseSnippetsPath = themePath[0] != '#' ? Themes[rendererPath][themePath].baseSnippets : false;
|
||||
|
||||
const objB = _.keyBy(compiledSnippets, 'groupName');
|
||||
|
||||
|
||||
@@ -388,6 +388,10 @@ const EditPage = createClass({
|
||||
return <div className='editPage sitePage'>
|
||||
<Meta name='robots' content='noindex, nofollow' />
|
||||
{this.renderNavbar()}
|
||||
{console.log('state')}
|
||||
{console.log(this.state)}
|
||||
{console.log('props')}
|
||||
{console.log(this.props)}
|
||||
|
||||
<div className='content'>
|
||||
<SplitPane onDragFinish={this.handleSplitMove} ref='pane'>
|
||||
@@ -407,6 +411,8 @@ const EditPage = createClass({
|
||||
theme={this.state.brew.theme}
|
||||
errors={this.state.htmlErrors}
|
||||
lang={this.state.brew.lang}
|
||||
userThemes={this.props.brew.userThemes}
|
||||
themeClass={this.state.brew.themeClass}
|
||||
currentEditorPage={this.state.currentEditorPage}
|
||||
/>
|
||||
</SplitPane>
|
||||
|
||||
Reference in New Issue
Block a user