From f43cac180e7956846898910e2ac60df7d53ff5cf Mon Sep 17 00:00:00 2001 From: panda-byte Date: Fri, 6 Oct 2023 00:18:13 +0200 Subject: [PATCH 1/3] Add 'repeatUntilCorrect' to user settings --- app/features/settings/SettingsForm.js | 6 ++++++ app/features/user/selectors.js | 4 +++- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/app/features/settings/SettingsForm.js b/app/features/settings/SettingsForm.js index 7d864306..bfa4d49e 100644 --- a/app/features/settings/SettingsForm.js +++ b/app/features/settings/SettingsForm.js @@ -97,6 +97,12 @@ export function SettingsForm({ minWk, maxWk, handleSubmit, submitting, submitSuc normalize={infoLevelNameToNum} note="Incorrect lessons are always high detail." /> +

Auto Advance

Object.keys(x).length), ], - (nextReviewDate, lessonsCount, reviewsCount, reviewEntitiesCount) => !nextReviewDate && lessonsCount && !reviewsCount && !reviewEntitiesCount + (nextReviewDate, lessonsCount, reviewsCount, reviewEntitiesCount) => + !nextReviewDate && lessonsCount && !reviewsCount && !reviewEntitiesCount ); export const selectLastWkSyncDate = createSelector( From 9ae699396ea608a806e14bf7fe912539d32d4905 Mon Sep 17 00:00:00 2001 From: panda-byte Date: Fri, 6 Oct 2023 00:44:01 +0200 Subject: [PATCH 2/3] Only rotate session in review mode if 'repeatUntilCorrect' is not set --- app/features/quiz/QuizSession/QuizAnswer/logic.js | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/app/features/quiz/QuizSession/QuizAnswer/logic.js b/app/features/quiz/QuizSession/QuizAnswer/logic.js index 566092dd..464a7b10 100644 --- a/app/features/quiz/QuizSession/QuizAnswer/logic.js +++ b/app/features/quiz/QuizSession/QuizAnswer/logic.js @@ -297,6 +297,7 @@ export const recordAnswerLogic = createLogic({ const isFinalQuestion = selectIsFinalQuestion(getState()); const { isCorrect } = selectAnswer(getState()); const previouslyIncorrect = selectCurrentPreviouslyIncorrect(getState()); + const { repeatUntilCorrect } = selectUserSettings(getState()); stopAutoAdvance(); // only add to correct/incorrect totals on first attempt @@ -316,7 +317,7 @@ export const recordAnswerLogic = createLogic({ setTimeout(() => history.push(`/${category}`), 1000); } dispatch(quiz.session.current.replace()); - } else { + } else if (!repeatUntilCorrect) { dispatch(quiz.session.current.rotate()); } @@ -391,7 +392,9 @@ export const autoAdvanceLogic = createLogic({ type: quiz.question.advance, warnTimeout: 11000, process({ getState }, dispatch, done) { - const { autoAdvanceOnSuccessDelayMilliseconds } = selectUserSettings(getState()); + const { autoAdvanceOnSuccessDelayMilliseconds, repeatUntilCorrect } = selectUserSettings( + getState() + ); const answerIgnored = selectAnswerIgnored(getState()); if (answerIgnored) { @@ -403,7 +406,9 @@ export const autoAdvanceLogic = createLogic({ setTimeout(() => { dispatch(quiz.answer.reset()); dispatch(quiz.info.reset()); - dispatch(quiz.session.current.rotate()); + if (!repeatUntilCorrect) { + dispatch(quiz.session.current.rotate()); + } done(); }, msDelay); } else { From b9e5df6f3ca475605240080b8b00044af441cb4d Mon Sep 17 00:00:00 2001 From: PandaByte <41342515+panda-byte@users.noreply.github.com> Date: Mon, 9 Oct 2023 23:23:51 +0200 Subject: [PATCH 3/3] Make user setting description clearer as suggest by @DJTB Co-authored-by: Duncan Bay --- app/features/settings/SettingsForm.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/features/settings/SettingsForm.js b/app/features/settings/SettingsForm.js index bfa4d49e..8730dc61 100644 --- a/app/features/settings/SettingsForm.js +++ b/app/features/settings/SettingsForm.js @@ -99,7 +99,7 @@ export function SettingsForm({ minWk, maxWk, handleSubmit, submitting, submitSuc />