Fix notetype/deck of original note not being set

This commit is contained in:
Abdo 2025-10-19 06:57:23 +03:00
parent 5e9428cd26
commit 0ed12f5c63
2 changed files with 35 additions and 16 deletions

View file

@ -66,7 +66,6 @@ License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html
const item = items.find((item) => item.id === itemId); const item = items.find((item) => item.id === itemId);
if (item) { if (item) {
selectedItem = item; selectedItem = item;
onChange?.(item);
} }
} }

View file

@ -991,27 +991,50 @@ License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html
copyFromNote, copyFromNote,
stickyFieldsFrom, stickyFieldsFrom,
}: LoadNoteArgs) { }: LoadNoteArgs) {
// Convert values coming from Python
if(nid) nid = BigInt(nid);
if(notetypeId) notetypeId = BigInt(notetypeId);
if(deckId) deckId = BigInt(deckId);
if(originalNoteId) originalNoteId = BigInt(originalNoteId);
if(reviewerCardId) reviewerCardId = BigInt(reviewerCardId);
let homeDeckId = 0n; let homeDeckId = 0n;
if (reviewerCardId) { if (reviewerCardId) {
reviewerCard = await getCard({ cid: reviewerCardId }); reviewerCard = await getCard({ cid: reviewerCardId });
homeDeckId = reviewerCard.originalDeckId || reviewerCard.deckId; homeDeckId = reviewerCard.originalDeckId || reviewerCard.deckId;
} }
if (initial && mode === "add") { let originalNote: Note | null = null;
let selectedNotetypeId: bigint | null = null;
let selectedDeckId: bigint | null = null;
if (mode === "add") {
if (originalNoteId) {
originalNote = await getNote({
nid: originalNoteId,
});
selectedNotetypeId = originalNote.notetypeId;
selectedDeckId = (await defaultDeckForNotetype({ ntid: originalNote.notetypeId })).did;
}
else if (initial) {
const chooserDefaults = await defaultsForAdding({ const chooserDefaults = await defaultsForAdding({
homeDeckOfCurrentReviewCard: homeDeckId, homeDeckOfCurrentReviewCard: homeDeckId,
}); });
if (!deckId) { selectedDeckId = chooserDefaults.deckId;
deckId = chooserDefaults.deckId; selectedNotetypeId = chooserDefaults.notetypeId;
} }
if (!notetypeId) {
notetypeId = chooserDefaults.notetypeId;
} }
deckChooser.select(BigInt(deckId)); if (deckId) {
notetypeChooser.select(BigInt(notetypeId)); selectedDeckId = BigInt(deckId);
}
if (notetypeId) {
selectedNotetypeId = BigInt(notetypeId);
}
if(mode === "add") {
deckChooser.select(selectedDeckId!);
notetypeChooser.select(selectedNotetypeId!);
} }
const notetype = await getNotetype({ const notetype = await getNotetype({
ntid: notetypeId!, ntid: selectedNotetypeId!,
}); });
const fieldNames = ( const fieldNames = (
await getFieldNames({ await getFieldNames({
@ -1038,10 +1061,7 @@ License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html
return; return;
} }
} }
if (originalNoteId) { if (originalNote) {
const originalNote = await getNote({
nid: originalNoteId,
});
note!.fields = originalNote.fields; note!.fields = originalNote.fields;
note!.tags = originalNote.tags; note!.tags = originalNote.tags;
} }