diff options
author | 2021-02-08 16:23:55 +0200 | |
---|---|---|
committer | 2021-02-08 16:23:55 +0200 | |
commit | 39fe1ece1366c70f2d139a7a8bec9eec2c41d1da (patch) | |
tree | 01cb2bc040efa5c1a9e0290e39f93a0ca3518149 /src | |
parent | Toggle visibility instead returning null when no error should be shown (diff) |
Use public state instead of event value for compability
Diffstat (limited to 'src')
-rw-r--r-- | src/components/InputTypes/index.tsx | 4 | ||||
-rw-r--r-- | src/components/Question.tsx | 22 |
2 files changed, 5 insertions, 21 deletions
diff --git a/src/components/InputTypes/index.tsx b/src/components/InputTypes/index.tsx index 04c992b..2b348e0 100644 --- a/src/components/InputTypes/index.tsx +++ b/src/components/InputTypes/index.tsx @@ -6,7 +6,7 @@ import Select from "./Select"; import ShortText from "./ShortText"; import TextArea from "./TextArea"; -import React, { ChangeEvent, FocusEvent } from "react"; +import React, { ChangeEvent } from "react"; import { QuestionType } from "../../api/question"; import { QuestionProp } from "../Question"; @@ -18,7 +18,7 @@ const require_options: Array<QuestionType> = [ QuestionType.Range ]; -export default function create_input({ question, public_state }: QuestionProp, handler: (event: ChangeEvent<HTMLInputElement | HTMLTextAreaElement>) => void, blurHandler: (event: FocusEvent<HTMLInputElement | HTMLTextAreaElement | HTMLDivElement>) => void): JSX.Element | JSX.Element[] { +export default function create_input({ question, public_state }: QuestionProp, handler: (event: ChangeEvent<HTMLInputElement | HTMLTextAreaElement>) => void, blurHandler: () => void): JSX.Element | JSX.Element[] { let result: JSX.Element | JSX.Element[]; // eslint-disable-next-line diff --git a/src/components/Question.tsx b/src/components/Question.tsx index 25ce04d..567da2c 100644 --- a/src/components/Question.tsx +++ b/src/components/Question.tsx @@ -1,6 +1,6 @@ /** @jsx jsx */ import { jsx, css } from "@emotion/react"; -import React, { ChangeEvent, FocusEvent } from "react"; +import React, { ChangeEvent } from "react"; import { Question, QuestionType } from "../api/question"; import { selectable } from "../commonStyles"; @@ -47,25 +47,9 @@ class RenderedQuestion extends React.Component<QuestionProp> { // This is here to allow dynamic selection between the general handler, and the textarea handler. handler(_: ChangeEvent<HTMLInputElement | HTMLTextAreaElement>): void {} // eslint-disable-line - blurHandler(event: FocusEvent<HTMLInputElement | HTMLTextAreaElement | HTMLDivElement>): void { + blurHandler(): void { if (this.props.question.required) { - let invalid = false; - switch (this.props.question.type) { - case QuestionType.ShortText: - case QuestionType.TextArea: - if (event.target.value === "") { - invalid = true; - } - break; - - case QuestionType.Select: - if (!this.props.public_state.get("value")) { - invalid = true; - } - break; - } - - if (invalid) { + if (!this.props.public_state.get("value")) { this.setPublicState("error", "Field must be filled."); this.setPublicState("valid", false); } else { |