fix: immediately remove debounced save

This commit is contained in:
shuai
2023-02-22 16:14:28 +08:00
parent b03269b383
commit 3fe58c784a
3 changed files with 20 additions and 32 deletions
+11 -12
View File
@@ -103,6 +103,7 @@ const Ask = () => {
);
const removeDraft = () => {
saveDraft.save.cancel();
saveDraft.remove();
setHasDraft(false);
};
@@ -149,20 +150,18 @@ const Ask = () => {
}
return;
}
// save draft
saveDraft.save({
params: {
title: title.value,
tags: tags.value,
content: content.value,
answer: answer.value,
},
callback: () => setHasDraft(true),
});
// write
if (title.value || tags.value.length > 0 || content.value || answer.value) {
// save draft
saveDraft.save({
params: {
title: title.value,
tags: tags.value,
content: content.value,
answer: answer.value,
},
callback: () => setHasDraft(true),
});
setContentChanged(true);
} else {
removeDraft();
@@ -45,6 +45,8 @@ const Index: FC<Props> = ({ visible = false, data, callback }) => {
});
const removeDraft = () => {
// immediately remove debounced save
saveDraft.save.cancel();
saveDraft.remove();
setHasDraft(false);
};
@@ -67,13 +69,13 @@ const Index: FC<Props> = ({ visible = false, data, callback }) => {
useEffect(() => {
const { content } = formData;
// save Draft
saveDraft.save({
questionId: data?.qid,
content: content.value,
});
if (content.value) {
// save Draft
saveDraft.save({
questionId: data?.qid,
content: content.value,
});
setHasDraft(true);
} else {
removeDraft();
+1 -14
View File
@@ -45,29 +45,16 @@ class SaveDraft {
}
if (this.type === 'question') {
const { params, callback } = data as QuestionDraft;
if (
!params.title &&
!params.content &&
!params.tags.length &&
!params.answer
) {
this.remove();
return;
}
this.storeDraft(params, callback);
}
if (this.type === 'answer') {
const { content, questionId, callback } = data as AnswerDraft;
if (!questionId) {
if (!questionId || !content) {
return;
}
if (!content) {
this.remove();
return;
}
this.storeDraft({ content, questionId }, callback);
}
}, 3000);