From 39fe1ece1366c70f2d139a7a8bec9eec2c41d1da Mon Sep 17 00:00:00 2001 From: ks129 <45097959+ks129@users.noreply.github.com> Date: Mon, 8 Feb 2021 16:23:55 +0200 Subject: Use public state instead of event value for compability --- src/components/InputTypes/index.tsx | 4 ++-- src/components/Question.tsx | 22 +++------------------- 2 files changed, 5 insertions(+), 21 deletions(-) (limited to 'src') 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.Range ]; -export default function create_input({ question, public_state }: QuestionProp, handler: (event: ChangeEvent) => void, blurHandler: (event: FocusEvent) => void): JSX.Element | JSX.Element[] { +export default function create_input({ question, public_state }: QuestionProp, handler: (event: ChangeEvent) => 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 { // This is here to allow dynamic selection between the general handler, and the textarea handler. handler(_: ChangeEvent): void {} // eslint-disable-line - blurHandler(event: FocusEvent): 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 { -- cgit v1.2.3