Fixed error when deleting post (#19369)

closes https://github.com/TryGhost/Product/issues/4230

- deleting a post could cause React components to trigger save tasks during teardown which then threw errors because they attempt to set properties on a deleted model instance
- added checks to the `beforeSaveTask()` to abort if the post object has been deleted
This commit is contained in:
Kevin Ansfield 2023-12-13 17:45:23 +00:00 committed by GitHub
parent b74a611fbd
commit 4ceb5dc16b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -415,7 +415,11 @@ export default class LexicalEditorController extends Controller {
@action
handleFeatureImageCaptionBlur() {
if (this.post?.isDraft) {
if (!this.post || this.post.isDestroyed || this.post.isDestroying) {
return;
}
if (this.post.isDraft) {
this.autosaveTask.perform();
}
}
@ -615,6 +619,10 @@ export default class LexicalEditorController extends Controller {
@task
*beforeSaveTask(options = {}) {
if (this.post?.isDestroyed || this.post?.isDestroying) {
return;
}
// ensure we remove any blank cards when performing a full save
if (!options.backgroundSave) {
// TODO: not yet implemented in react editor