Signup form bugfixes: required radio inputs & require input for some question types

This commit is contained in:
Aarni Halinen
2021-06-29 19:01:34 +03:00
parent 8c0b30b7c3
commit 5f28f5ad81
2 changed files with 12 additions and 1 deletions
@@ -85,6 +85,7 @@ class OptionsWidget extends React.Component<OptionsWidgetProps> {
placeholder="Write something informative"
value={questions[index].options}
onChange={this.handleTextOptionsChange(questions, index)}
required
/>
{this.requiredField()}
</>
@@ -117,8 +118,8 @@ class OptionsWidget extends React.Component<OptionsWidgetProps> {
placeholder="Yes;no;maybe"
value={joinedValue}
onChange={this.handleListOptionsChange(questions, index)}
required
/>
{this.requiredField()}
</>
);
}
@@ -133,6 +134,7 @@ class OptionsWidget extends React.Component<OptionsWidgetProps> {
placeholder="A;B;C"
value={joinedValue}
onChange={this.handleListOptionsChange(questions, index)}
required
/>
{this.requiredField()}
</>
+9
View File
@@ -116,6 +116,15 @@ export const buildFormSchema = (signUpForm: SignupForm) => {
export const buildValidationSchema = (questions: Question[]) => {
let schemaProps = {};
// Force every radiobutton to be required field
questions.forEach((q) => {
if (q.type === "radiobutton") {
// eslint-disable-next-line no-param-reassign
q.required = true;
}
});
const requiredIds = questions.filter((q) => q.required).map((q) => q.id);
const schemaPropsArray = questions.map(questionToValidationSchema);
schemaPropsArray.forEach((schemaProp) => {