From 4ceb5dc16bcd37ccdba4fca15127ac80d0660d58 Mon Sep 17 00:00:00 2001 From: Kevin Ansfield Date: Wed, 13 Dec 2023 17:45:23 +0000 Subject: [PATCH] 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 --- ghost/admin/app/controllers/lexical-editor.js | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/ghost/admin/app/controllers/lexical-editor.js b/ghost/admin/app/controllers/lexical-editor.js index 57740474be..b169899ab7 100644 --- a/ghost/admin/app/controllers/lexical-editor.js +++ b/ghost/admin/app/controllers/lexical-editor.js @@ -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