import {fetchPost} from "../util/fetch";
export const flashcard = {
element: undefined as Element,
genHTML: () => {
let responsiveHTML = `
${window.siyuan.languages.reviewMode}
${window.siyuan.languages.reviewModeTip}
`;
/// #if MOBILE
responsiveHTML = `${responsiveHTML}
${window.siyuan.languages.flashcardNewCardLimit}
${window.siyuan.languages.flashcardNewCardLimitTip}
${window.siyuan.languages.flashcardReviewCardLimit}
${window.siyuan.languages.flashcardReviewCardLimitTip}
${window.siyuan.languages.flashcardFSRSParamRequestRetention}
${window.siyuan.languages.flashcardFSRSParamRequestRetentionTip}
${window.siyuan.languages.flashcardFSRSParamMaximumInterval}
${window.siyuan.languages.flashcardFSRSParamMaximumIntervalTip}
${window.siyuan.languages.flashcardFSRSParamWeights}
${window.siyuan.languages.flashcardFSRSParamWeightsTip}
`;
/// #else
responsiveHTML = `${responsiveHTML}
`;
/// #endif
return responsiveHTML;
},
bindEvent: () => {
flashcard.element.querySelectorAll("input, select.b3-select").forEach((item) => {
item.addEventListener("change", () => {
fetchPost("/api/setting/setFlashcard", {
reviewMode: parseInt((flashcard.element.querySelector("#reviewMode") as HTMLSelectElement).value),
newCardLimit: parseInt((flashcard.element.querySelector("#newCardLimit") as HTMLInputElement).value),
reviewCardLimit: parseInt((flashcard.element.querySelector("#reviewCardLimit") as HTMLInputElement).value),
mark: (flashcard.element.querySelector("#mark") as HTMLInputElement).checked,
list: (flashcard.element.querySelector("#list") as HTMLInputElement).checked,
superBlock: (flashcard.element.querySelector("#superBlock") as HTMLInputElement).checked,
heading: (flashcard.element.querySelector("#heading") as HTMLInputElement).checked,
deck: (flashcard.element.querySelector("#deck") as HTMLInputElement).checked,
requestRetention: parseFloat((flashcard.element.querySelector("#requestRetention") as HTMLInputElement).value),
maximumInterval: parseInt((flashcard.element.querySelector("#maximumInterval") as HTMLInputElement).value),
weights: (flashcard.element.querySelector("#weights") as HTMLInputElement).value,
}, response => {
window.siyuan.config.flashcard = response.data;
});
});
});
},
};