0
0
mirror of https://github.com/naturalcrit/homebrewery.git synced 2025-12-28 20:03:02 +00:00

Fix recent links when transferring to Google Brews

This commit is contained in:
Trevor Buckner
2020-10-19 15:48:44 -04:00
parent fcb3f9ca26
commit d05b819ff2
6 changed files with 70 additions and 28 deletions

View File

@@ -35,24 +35,32 @@ const RecentItems = createClass({
//== Add current brew to appropriate recent items list (depending on storageKey) ==//
if(this.props.storageKey == 'edit'){
let editId = this.props.brew.editId;
if(this.props.brew.googleId){
editId = `${this.props.brew.googleId}${this.props.brew.editId}`;
}
edited = _.filter(edited, (brew)=>{
return brew.id !== this.props.brew.editId;
return brew.id !== editId;
});
edited.unshift({
id : this.props.brew.editId,
id : editId,
title : this.props.brew.title,
url : `/edit/${this.props.brew.editId}`,
url : `/edit/${editId}`,
ts : Date.now()
});
}
if(this.props.storageKey == 'view'){
let shareId = this.props.brew.shareId;
if(this.props.brew.googleId){
shareId = `${this.props.brew.googleId}${this.props.brew.shareId}`;
}
viewed = _.filter(viewed, (brew)=>{
return brew.id !== this.props.brew.shareId;
return brew.id !== shareId;
});
viewed.unshift({
id : this.props.brew.shareId,
id : shareId,
title : this.props.brew.title,
url : `/share/${this.props.brew.shareId}`,
url : `/share/${shareId}`,
ts : Date.now()
});
}
@@ -70,6 +78,40 @@ const RecentItems = createClass({
});
},
componentDidUpdate : function(prevProps) {
if(prevProps.brew && this.props.brew.editId !== prevProps.brew.editId) {
if(this.props.storageKey == 'edit') {
let prevEditId = prevProps.brew.editId;
if(prevProps.brew.googleId){
prevEditId = `${prevProps.brew.googleId}${prevProps.brew.editId}`;
}
edited = _.filter(this.state.edit, (brew)=>{
return brew.id !== prevEditId;
});
let editId = this.props.brew.editId;
if(this.props.brew.googleId){
editId = `${this.props.brew.googleId}${this.props.brew.editId}`;
}
edited.unshift({
id : editId,
title : this.props.brew.title,
url : `/edit/${editId}`,
ts : Date.now()
});
}
//== Store the updated lists (up to 8 items each) ==//
edited = _.slice(edited, 0, 8);
localStorage.setItem(EDIT_KEY, JSON.stringify(edited));
this.setState({
edit : edited
});
}
},
handleDropdown : function(show){
this.setState({
showDropdown : show
@@ -140,4 +182,4 @@ module.exports = {
showView={true}
/>;
}
};
};

View File

@@ -311,7 +311,7 @@ const EditPage = createClass({
Share
</Nav.item>
<PrintLink shareId={this.processShareId()} />
<RecentNavItem brew={this.props.brew} storageKey='edit' />
<RecentNavItem brew={this.state.brew} storageKey='edit' />
<Account />
</Nav.section>
</Navbar>;