Skip to content

Commit 7842462

Browse files
authored
Changes handling of verified questions in assessment survey. (#85)
Questions marked as verified should be removed from question pool completely. Fixes: - selecting answer not changing presented question - question counter in survey header - unnecessary back button if first question verified
1 parent 24c16b7 commit 7842462

1 file changed

Lines changed: 14 additions & 3 deletions

File tree

apps/web-app/src/app/features/assessment/state/use-assessment-survey-questions.ts

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -32,15 +32,14 @@ function isQuestionToShow(assessment: UserAssessment, question: QuestionWithCate
3232
}
3333
};
3434

35-
const markedToAsk = (assessment.verifiedCategories[question.question.id]?.status ?? UserAssessmentVerification.Ask) === UserAssessmentVerification.Ask;
3635
const hasQuestionText = () => question.question[questionForm] !== undefined;
3736
const valid = () => !question.question.validWhen || question.question.validWhen(context);
3837
const eligibleForAssessor = context.assessor.roles?.length > 0 ? () => !question.question.eligibleForAssessor || question.question.eligibleForAssessor(context) : () => true;
3938
if (!context.assessor.roles || context.assessor.roles?.length === 0) {
4039
console.warn(`Assessor without roles. All questions will be mark as eligible to display.`);
4140
}
4241

43-
return markedToAsk && hasQuestionText() && valid() && eligibleForAssessor();
42+
return hasQuestionText() && valid() && eligibleForAssessor();
4443
}
4544

4645

@@ -57,7 +56,19 @@ export const useAssessmentSurveyQuestions = (assessment: UserAssessment,
5756
accessorProfile: UserProfile,
5857
demo = false
5958
): AssessmentSurveyHook => {
60-
const questions = useAssessmentQuestions(demo);
59+
const allQuestions = useAssessmentQuestions(demo);
60+
const questions = useMemo(
61+
() => {
62+
if (assessment) {
63+
const markedToAsk = (questionId: string) => (assessment.verifiedCategories[questionId]?.status ?? UserAssessmentVerification.Ask) === UserAssessmentVerification.Ask;
64+
return allQuestions.filter(q => markedToAsk(q.question.id));
65+
} else {
66+
return [];
67+
}
68+
},
69+
[assessment, allQuestions]
70+
);
71+
6172
const question: QuestionWithCategory | undefined = useMemo(
6273
() => {
6374
if (assessment && questions && accessorProfile) {

0 commit comments

Comments
 (0)