mirror of
https://github.com/naturalcrit/homebrewery.git
synced 2026-01-06 14:22:52 +00:00
Functionally? working.
This commit is contained in:
@@ -16,6 +16,8 @@ const SYSTEMS = ['5e', '4e', '3.5e', 'Pathfinder'];
|
|||||||
|
|
||||||
const homebreweryThumbnail = require('../../thumbnail.png');
|
const homebreweryThumbnail = require('../../thumbnail.png');
|
||||||
|
|
||||||
|
let mergedThemes;
|
||||||
|
|
||||||
const callIfExists = (val, fn, ...args)=>{
|
const callIfExists = (val, fn, ...args)=>{
|
||||||
if(val[fn]) {
|
if(val[fn]) {
|
||||||
val[fn](...args);
|
val[fn](...args);
|
||||||
@@ -47,11 +49,12 @@ const MetadataEditor = createClass({
|
|||||||
},
|
},
|
||||||
|
|
||||||
getInitialState : function(){
|
getInitialState : function(){
|
||||||
|
mergedThemes = _.merge(Themes, this.props.userThemes);
|
||||||
return {
|
return {
|
||||||
showThumbnail : true,
|
showThumbnail : true,
|
||||||
showThemeWritein : false,
|
showThemeWritein : mergedThemes[this.props.metadata.renderer][this.props.metadata.theme] ? false : true,
|
||||||
lastThemePulldown : '',
|
lastThemePulldown : mergedThemes[this.props.metadata.renderer][this.props.metadata.theme] ? mergedThemes[this.props.metadata.renderer][this.props.metadata.theme] : '',
|
||||||
lastThemeWriteIn : ''
|
lastThemeWriteIn : mergedThemes[this.props.metadata.renderer][this.props.metadata.theme] ? '' : mergedThemes[this.props.metadata.renderer][this.props.metadata.theme]
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
|
|
||||||
@@ -62,17 +65,12 @@ const MetadataEditor = createClass({
|
|||||||
},
|
},
|
||||||
|
|
||||||
toggleThemeWritein : function(){
|
toggleThemeWritein : function(){
|
||||||
console.log('toggleThemeWritein');
|
|
||||||
this.setState({
|
|
||||||
showThemeWritein : !this.state.showThemeWritein,
|
|
||||||
lastThemePulldown : this.state.showThemeWritein ? this.props.metadata.theme : this.state.lastThemePulldown,
|
|
||||||
lastThemeWriteIn : this.state.showThemeWritein ? this.state.lastThemePulldown : this.props.metadata.theme
|
|
||||||
});
|
|
||||||
console.log(this.state);
|
|
||||||
console.log(this.props.metadata);
|
|
||||||
if(!this.state.showThemeWritein) this.props.metadata.theme = this.state.lastThemeWriteIn;
|
if(!this.state.showThemeWritein) this.props.metadata.theme = this.state.lastThemeWriteIn;
|
||||||
else this.props.metadata.theme = this.state.lastThemePulldown;
|
else this.props.metadata.theme = this.state.lastThemePulldown;
|
||||||
this.props.onChange(this.props.metadata, 'theme');
|
this.props.onChange(this.props.metadata, 'theme');
|
||||||
|
this.setState({
|
||||||
|
showThemeWritein : !this.state.showThemeWritein
|
||||||
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
renderThumbnail : function(){
|
renderThumbnail : function(){
|
||||||
@@ -130,17 +128,22 @@ const MetadataEditor = createClass({
|
|||||||
handleTheme : function(theme){
|
handleTheme : function(theme){
|
||||||
this.props.metadata.renderer = theme.renderer;
|
this.props.metadata.renderer = theme.renderer;
|
||||||
this.props.metadata.theme = theme.path;
|
this.props.metadata.theme = theme.path;
|
||||||
|
this.setState({
|
||||||
|
lastThemePulldown : theme.path
|
||||||
|
});
|
||||||
|
|
||||||
this.props.onChange(this.props.metadata, 'theme');
|
this.props.onChange(this.props.metadata, 'theme');
|
||||||
},
|
},
|
||||||
|
|
||||||
handleThemeWritein : function(e) {
|
handleThemeWritein : function(e) {
|
||||||
console.log('Enter!');
|
|
||||||
this.props.metadata.renderer = 'V3';
|
this.props.metadata.renderer = 'V3';
|
||||||
this.props.metadata.theme = e.target.value;
|
this.props.metadata.theme = e.target.value;
|
||||||
console.log(e.target.value);
|
this.setState({
|
||||||
|
lastThemeWriteIn : e.target.value
|
||||||
|
});
|
||||||
|
|
||||||
this.props.onChange(this.props.metadata, 'renderer');
|
this.props.onChange(this.props.metadata, 'renderer');
|
||||||
this.props.onChange(this.props.metadata, 'theme');
|
this.props.onChange(this.props.metadata, 'theme');
|
||||||
console.log(this.props.metadata);
|
|
||||||
},
|
},
|
||||||
|
|
||||||
handleLanguage : function(languageCode){
|
handleLanguage : function(languageCode){
|
||||||
@@ -221,9 +224,6 @@ const MetadataEditor = createClass({
|
|||||||
renderThemeDropdown : function(){
|
renderThemeDropdown : function(){
|
||||||
if(!global.enable_themes) return;
|
if(!global.enable_themes) return;
|
||||||
|
|
||||||
const mergedThemes = _.merge(Themes, this.props.userThemes);
|
|
||||||
console.log(mergedThemes);
|
|
||||||
|
|
||||||
const listThemes = (renderer)=>{
|
const listThemes = (renderer)=>{
|
||||||
return _.map(_.values(mergedThemes[renderer]), (theme)=>{
|
return _.map(_.values(mergedThemes[renderer]), (theme)=>{
|
||||||
if(theme.path == this.props.metadata.shareId) return;
|
if(theme.path == this.props.metadata.shareId) return;
|
||||||
@@ -243,9 +243,8 @@ const MetadataEditor = createClass({
|
|||||||
};
|
};
|
||||||
|
|
||||||
const currentRenderer = this.props.metadata.renderer;
|
const currentRenderer = this.props.metadata.renderer;
|
||||||
console.log(this.props.metadata.theme);
|
|
||||||
const currentTheme = mergedThemes[`${_.upperFirst(this.props.metadata.renderer)}`][this.props.metadata.theme]
|
const currentTheme = mergedThemes[`${_.upperFirst(this.props.metadata.renderer)}`][this.props.metadata.theme]
|
||||||
?? { name: `!!! THEME MISSING !!! ID=${this.props.metadata.theme}` };
|
?? { name: `!!! Manually selected theme !!! ID=${this.props.metadata.theme}` };
|
||||||
let dropdown;
|
let dropdown;
|
||||||
|
|
||||||
if(currentRenderer == 'legacy') {
|
if(currentRenderer == 'legacy') {
|
||||||
@@ -259,7 +258,6 @@ const MetadataEditor = createClass({
|
|||||||
<div> {currentTheme.author ?? _.upperFirst(currentRenderer)} : {currentTheme.name} <i className='fas fa-caret-down'></i> </div>
|
<div> {currentTheme.author ?? _.upperFirst(currentRenderer)} : {currentTheme.name} <i className='fas fa-caret-down'></i> </div>
|
||||||
|
|
||||||
{listThemes(currentRenderer)}
|
{listThemes(currentRenderer)}
|
||||||
{console.log(listThemes(currentRenderer))}
|
|
||||||
</Nav.dropdown>;
|
</Nav.dropdown>;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -279,7 +277,7 @@ const MetadataEditor = createClass({
|
|||||||
default=''
|
default=''
|
||||||
placeholder='Enter share id'
|
placeholder='Enter share id'
|
||||||
className='value'
|
className='value'
|
||||||
defaultValue={this.state.lastThemeWriteIn}
|
defaultValue={this.state.lastThemeWriteIn || this.props.metadata.theme}
|
||||||
onChange={(e)=>this.handleThemeWritein(e)} />;
|
onChange={(e)=>this.handleThemeWritein(e)} />;
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|||||||
@@ -152,7 +152,6 @@ const EditPage = createClass({
|
|||||||
|
|
||||||
handleMetaChange : function(metadata, field=undefined){
|
handleMetaChange : function(metadata, field=undefined){
|
||||||
if(field == 'theme' || field == 'renderer') {// Fetch theme bundle only if theme or renderer was changed
|
if(field == 'theme' || field == 'renderer') {// Fetch theme bundle only if theme or renderer was changed
|
||||||
console.log(metadata);
|
|
||||||
fetchThemeBundle(this, metadata.renderer, metadata.theme);
|
fetchThemeBundle(this, metadata.renderer, metadata.theme);
|
||||||
}
|
}
|
||||||
this.setState((prevState)=>({
|
this.setState((prevState)=>({
|
||||||
|
|||||||
Reference in New Issue
Block a user