Rewrite empty check

This commit is contained in:
Abdo 2025-07-03 07:44:30 +03:00
parent 966801fbe7
commit 5a7832b16d
2 changed files with 22 additions and 8 deletions

View file

@ -253,8 +253,8 @@ class AddCards(QMainWindow):
self._close_callback = onOk self._close_callback = onOk
self.editor.web.eval("closeAddCards()") self.editor.web.eval("closeAddCards()")
def _close_if_user_wants_to_discard_changes(self, is_empty: bool) -> None: def _close_if_user_wants_to_discard_changes(self, prompt: bool) -> None:
if is_empty: if not prompt:
self._close_callback() self._close_callback()
return return

View file

@ -370,18 +370,31 @@ License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html
saveFieldNow(); saveFieldNow();
} }
// TODO this needs to accept a previousNote arg // Used for detecting changed sticky fields on close
async function fieldsAreBlank(): Promise<boolean> { let lastAddedNote: Note | null = null;
const result = await noteFieldsCheck(note!);
if (result.state === NoteFieldsCheckResponse_State.EMPTY) { async function shouldPromptBeforeClosing(): Promise<boolean> {
return true; const brPattern = /<br\s*\/?>/gi;
for (let c = 0; c < note.fields.length; c++) {
const field = note.fields[c].replace(brPattern, "").trim();
const notChangedValues = new Set(["", "<br>"]);
if (lastAddedNote && stickies[c]) {
const previousFieldValue = lastAddedNote.fields[c]
.replace(brPattern, "")
.trim();
notChangedValues.add(previousFieldValue);
}
if (!notChangedValues.has(field)) {
return true;
}
} }
return false; return false;
} }
async function closeAddCards() { async function closeAddCards() {
saveNow(); saveNow();
await closeAddCardsBackend({ val: await fieldsAreBlank() }); await closeAddCardsBackend({ val: await shouldPromptBeforeClosing() });
} }
export function saveOnPageHide() { export function saveOnPageHide() {
@ -443,6 +456,7 @@ License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html
note: note!, note: note!,
deckId, deckId,
}); });
lastAddedNote = note;
await loadNewNote(); await loadNewNote();
} }