mirror of
https://github.com/naturalcrit/homebrewery.git
synced 2026-01-16 19:02:40 +00:00
EditPage: Fix potentially inconsistent React state updates
This commit is contained in:
@@ -62,9 +62,9 @@ const EditPage = createClass({
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
this.setState({
|
this.setState((prevState) => ({
|
||||||
htmlErrors : Markdown.validate(this.state.brew.text)
|
htmlErrors : Markdown.validate(prevState.brew.text)
|
||||||
});
|
}));
|
||||||
|
|
||||||
document.addEventListener('keydown', this.handleControlKeys);
|
document.addEventListener('keydown', this.handleControlKeys);
|
||||||
},
|
},
|
||||||
@@ -91,10 +91,10 @@ const EditPage = createClass({
|
|||||||
},
|
},
|
||||||
|
|
||||||
handleMetadataChange : function(metadata){
|
handleMetadataChange : function(metadata){
|
||||||
this.setState({
|
this.setState((prevState)=>({
|
||||||
brew : _.merge({}, this.state.brew, metadata),
|
brew : _.merge({}, prevState.brew, metadata),
|
||||||
isPending : true,
|
isPending : true,
|
||||||
}, ()=>{
|
}), ()=>{
|
||||||
this.trySave();
|
this.trySave();
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -106,11 +106,11 @@ const EditPage = createClass({
|
|||||||
let htmlErrors = this.state.htmlErrors;
|
let htmlErrors = this.state.htmlErrors;
|
||||||
if(htmlErrors.length) htmlErrors = Markdown.validate(text);
|
if(htmlErrors.length) htmlErrors = Markdown.validate(text);
|
||||||
|
|
||||||
this.setState({
|
this.setState((prevState)=>({
|
||||||
brew : _.merge({}, this.state.brew, { text: text }),
|
brew : _.merge({}, prevState.brew, { text: text }),
|
||||||
isPending : true,
|
isPending : true,
|
||||||
htmlErrors : htmlErrors
|
htmlErrors : htmlErrors
|
||||||
});
|
}));
|
||||||
|
|
||||||
this.trySave();
|
this.trySave();
|
||||||
},
|
},
|
||||||
@@ -136,11 +136,11 @@ const EditPage = createClass({
|
|||||||
save : function(){
|
save : function(){
|
||||||
if(this.debounceSave && this.debounceSave.cancel) this.debounceSave.cancel();
|
if(this.debounceSave && this.debounceSave.cancel) this.debounceSave.cancel();
|
||||||
|
|
||||||
this.setState({
|
this.setState((prevState) => ({
|
||||||
isSaving : true,
|
isSaving : true,
|
||||||
errors : null,
|
errors : null,
|
||||||
htmlErrors : Markdown.validate(this.state.brew.text)
|
htmlErrors : Markdown.validate(prevState.brew.text)
|
||||||
});
|
}));
|
||||||
|
|
||||||
request
|
request
|
||||||
.put(`/api/update/${this.props.brew.editId}`)
|
.put(`/api/update/${this.props.brew.editId}`)
|
||||||
|
|||||||
Reference in New Issue
Block a user