diff --git a/app/src/card/makeCard.ts b/app/src/card/makeCard.ts index 127780652..14d89c604 100644 --- a/app/src/card/makeCard.ts +++ b/app/src/card/makeCard.ts @@ -174,17 +174,29 @@ export const makeCard = (nodeElement: Element[]) => { }; export const quickMakeCard = (nodeElement: Element[]) => { + let isRemove = true; const ids: string[] = []; nodeElement.forEach(item => { if (item.getAttribute("data-type") === "NodeThematicBreak") { return; } + item.classList.remove("protyle-wysiwyg--select"); ids.push(item.getAttribute("data-node-id")); + if ((item.getAttribute("custom-riff-decks") || "").indexOf(Constants.QUICK_DECK_ID) === -1) { + isRemove = false; + } }); - fetchPost("/api/riff/addRiffCards", { - deckID: Constants.QUICK_DECK_ID, - blockIDs: ids - }); + if (isRemove) { + fetchPost("/api/riff/removeRiffCards", { + deckID: Constants.QUICK_DECK_ID, + blockIDs: ids + }); + } else { + fetchPost("/api/riff/addRiffCards", { + deckID: Constants.QUICK_DECK_ID, + blockIDs: ids + }); + } }; diff --git a/app/src/protyle/wysiwyg/keydown.ts b/app/src/protyle/wysiwyg/keydown.ts index 5ae6fec60..a42d3789f 100644 --- a/app/src/protyle/wysiwyg/keydown.ts +++ b/app/src/protyle/wysiwyg/keydown.ts @@ -999,25 +999,10 @@ export const keydown = (protyle: IProtyle, editorElement: HTMLElement) => { if (!hasClosestByClassName(nodeElement, "protyle-wysiwyg--select")) { nodeElement.classList.add("protyle-wysiwyg--select"); } - let isRemove = true; - const removeIds: string[] = []; protyle.wysiwyg.element.querySelectorAll(".protyle-wysiwyg--select").forEach(item => { selectElement.push(item); - item.classList.remove("protyle-wysiwyg--select"); - removeIds.push(item.getAttribute("data-node-id")); - if ((item.getAttribute("custom-riff-decks") || "").indexOf(Constants.QUICK_DECK_ID) === -1) { - isRemove = false; - } }); - - if (isRemove) { - fetchPost("/api/riff/removeRiffCards", { - deckID: Constants.QUICK_DECK_ID, - blockIDs: removeIds - }); - } else { - quickMakeCard(selectElement); - } + quickMakeCard(selectElement); event.preventDefault(); event.stopPropagation(); return true;