Skip to content

Commit

Permalink
feat(questionnaire): add validation for Fitbit question type
Browse files Browse the repository at this point in the history
  • Loading branch information
ibrahimozkn committed Jan 16, 2025
1 parent e50a481 commit a909949
Showing 1 changed file with 18 additions and 1 deletion.
Original file line number Diff line number Diff line change
Expand Up @@ -379,6 +379,10 @@ class QuestionFormViewModel extends ManagedFormViewModel<QuestionFormData>
StudyFormValidationSet.draft: [maxRecordingDurationValid],
StudyFormValidationSet.publish: [maxRecordingDurationValid],
},
SurveyQuestionType.fitbit: {
StudyFormValidationSet.draft: [fitbitTypeRequired],
StudyFormValidationSet.publish: [fitbitTypeRequired],
},
};

@override
Expand All @@ -400,6 +404,20 @@ class QuestionFormViewModel extends ManagedFormViewModel<QuestionFormData>
];
}

FormControlValidation get fitbitTypeRequired => FormControlValidation(
control: fitbitResponseOptionsArray,
validators: [
CountWhereValidator<dynamic>(
(dynamic value) => value == true,
minCount: 1,
),
],
validationMessages: {
CountWhereValidator.kValidationMessageMinCount: (error) =>
"At least one Fitbit type must be selected.", //TODO: translations
},
);

FormControlValidation get questionTextRequired => FormControlValidation(
control: questionTextControl,
validators: [
Expand Down Expand Up @@ -558,7 +576,6 @@ class QuestionFormViewModel extends ManagedFormViewModel<QuestionFormData>
freeTextTypeControl.value = data.textType;
customRegexControl.value = data.textTypeExpression;
case SurveyQuestionType.fitbit:
//TODO: Some kind of error is throwing when saving survey, check it since its having parsing issues?
fitbitQuestionTypesControl.forEach((key, value) {
value.value = (data as FitbitQuestionFormData).types.contains(key);
});
Expand Down

0 comments on commit a909949

Please sign in to comment.