0
0
mirror of https://github.com/naturalcrit/homebrewery.git synced 2026-01-02 15:02:38 +00:00

Work in progress.

Still issues with saving the state  of the theme pulldowns and collecting the written in theme.
This commit is contained in:
David Bolack
2024-12-30 12:28:47 -06:00
parent 7c357a2aa1
commit fe2d02a24c
3 changed files with 33 additions and 10 deletions

View File

@@ -62,13 +62,17 @@ const MetadataEditor = createClass({
}, },
toggleThemeWritein : function(){ toggleThemeWritein : function(){
console.log('toggleThemeWritein');
this.setState({ this.setState({
showThemeWritein : !this.state.showThemeWritein, showThemeWritein : !this.state.showThemeWritein,
// lastThemePulldown : !this.state.showThemeWritein ? this.props.metadata.theme : this.state.lastThemePulldown, lastThemePulldown : this.state.showThemeWritein ? this.props.metadata.theme : this.state.lastThemePulldown,
// lastThemeWriteIn : !this.state.showThemeWritein ? this.state.lastThemePulldown : this.props.metadata.theme lastThemeWriteIn : this.state.showThemeWritein ? this.state.lastThemePulldown : this.props.metadata.theme
}); });
// if(this.state.showThemeWritein) this.props.metadata.theme = this.state.lastThemeWriteIn; console.log(this.state);
// else this.props.metadata.theme = this.state.lastThemePulldown; console.log(this.props.metadata);
if(!this.state.showThemeWritein) this.props.metadata.theme = this.state.lastThemeWriteIn;
else this.props.metadata.theme = this.state.lastThemePulldown;
this.props.onChange(this.props.metadata, 'theme');
}, },
renderThumbnail : function(){ renderThumbnail : function(){
@@ -130,9 +134,13 @@ const MetadataEditor = createClass({
}, },
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.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){
@@ -214,6 +222,7 @@ const MetadataEditor = createClass({
if(!global.enable_themes) return; if(!global.enable_themes) return;
const mergedThemes = _.merge(Themes, this.props.userThemes); 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)=>{
@@ -230,11 +239,11 @@ const MetadataEditor = createClass({
<img src={preview}/> <img src={preview}/>
</div> </div>
</div>; </div>;
}); }).filter(Boolean);
}; };
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: `!!! THEME MISSING !!! ID=${this.props.metadata.theme}` };
let dropdown; let dropdown;
@@ -250,13 +259,14 @@ 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>;
} }
return <div className='field themes'> return <div className='field themes'>
<label>theme</label> <label>theme</label>
{!this.state.showThemeWritein?dropdown:''} {!this.state.showThemeWritein?dropdown:''}
<button className='display' onClick={this.toggleThemeWritein}> <button className='display writeIn' onClick={this.toggleThemeWritein}>
<i className={`fas fa-caret-${this.state.showThemeWritein ? 'right' : 'left'}`} /> <i className={`fas fa-caret-${this.state.showThemeWritein ? 'right' : 'left'}`} />
</button> </button>
{this.renderThemeWritein()} {this.renderThemeWritein()}
@@ -268,7 +278,8 @@ const MetadataEditor = createClass({
return <input type='text' return <input type='text'
default='' default=''
placeholder='Enter share id' placeholder='Enter share id'
className='value' className='value'
defaultValue={this.state.lastThemeWriteIn}
onChange={(e)=>this.handleThemeWritein(e)} />; onChange={(e)=>this.handleThemeWritein(e)} />;
}, },

View File

@@ -88,6 +88,17 @@
} }
} }
&.themes{
.value {
overflow : visible;
text-overflow : auto;
}
button {
padding-left: 5px;
padding-right: 5px;
}
}
&.description { &.description {
flex : 1; flex : 1;
textarea.value { textarea.value {

View File

@@ -151,9 +151,10 @@ 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)=>({
brew : { brew : {
...prevState.brew, ...prevState.brew,