fix(card): use RELEARNING_STEPS for relearning card interval preview
This commit is contained in:
@@ -36,24 +36,24 @@ function calculateNewCardIntervals(): PreviewIntervals {
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
function calculateLearningIntervals(left: number): PreviewIntervals {
|
function calculateLearningIntervals(left: number, isRelearning: boolean): PreviewIntervals {
|
||||||
const steps = SM2_CONFIG.LEARNING_STEPS;
|
const steps = isRelearning ? SM2_CONFIG.RELEARNING_STEPS : SM2_CONFIG.LEARNING_STEPS;
|
||||||
const stepIndex = Math.floor(left % 1000);
|
const stepIndex = Math.floor(left % 1000);
|
||||||
|
|
||||||
const again = steps[0];
|
const again = steps[0] ?? 1;
|
||||||
|
|
||||||
let hard: number;
|
let hard: number;
|
||||||
if (stepIndex === 0 && steps.length >= 2) {
|
if (stepIndex === 0 && steps.length >= 2) {
|
||||||
hard = (steps[0] + steps[1]) / 2;
|
const step0 = steps[0] ?? 1;
|
||||||
} else if (stepIndex < steps.length - 1) {
|
const step1 = steps[1] ?? step0;
|
||||||
hard = steps[stepIndex];
|
hard = (step0 + step1) / 2;
|
||||||
} else {
|
} else {
|
||||||
hard = SM2_CONFIG.GRADUATING_INTERVAL_GOOD * 1440;
|
hard = steps[stepIndex] ?? steps[0] ?? 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
let good: number;
|
let good: number;
|
||||||
if (stepIndex < steps.length - 1) {
|
if (stepIndex < steps.length - 1) {
|
||||||
good = steps[stepIndex + 1];
|
good = steps[stepIndex + 1] ?? steps[0] ?? 1;
|
||||||
} else {
|
} else {
|
||||||
good = SM2_CONFIG.GRADUATING_INTERVAL_GOOD * 1440;
|
good = SM2_CONFIG.GRADUATING_INTERVAL_GOOD * 1440;
|
||||||
}
|
}
|
||||||
@@ -68,8 +68,9 @@ export function calculatePreviewIntervals(card: CardPreview): PreviewIntervals {
|
|||||||
case CardType.NEW:
|
case CardType.NEW:
|
||||||
return calculateNewCardIntervals();
|
return calculateNewCardIntervals();
|
||||||
case CardType.LEARNING:
|
case CardType.LEARNING:
|
||||||
|
return calculateLearningIntervals(card.left, false);
|
||||||
case CardType.RELEARNING:
|
case CardType.RELEARNING:
|
||||||
return calculateLearningIntervals(card.left);
|
return calculateLearningIntervals(card.left, true);
|
||||||
case CardType.REVIEW:
|
case CardType.REVIEW:
|
||||||
default:
|
default:
|
||||||
return calculateReviewIntervals(card.ivl, card.factor);
|
return calculateReviewIntervals(card.ivl, card.factor);
|
||||||
|
|||||||
Reference in New Issue
Block a user