From 3850cb42bd8121002538d72522cc38590a133a44 Mon Sep 17 00:00:00 2001 From: olav Date: Thu, 17 Mar 2022 09:55:57 +0100 Subject: [PATCH] refactor: fix crash on empty target date (#798) * refactor: fix crash on empty target date * refactor: remove date input clear button --- .../DateSingleValue/DateSingleValue.tsx | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/frontend/src/component/common/ConstraintAccordion/ConstraintAccordionEdit/ConstraintAccordionEditBody/DateSingleValue/DateSingleValue.tsx b/frontend/src/component/common/ConstraintAccordion/ConstraintAccordionEdit/ConstraintAccordionEditBody/DateSingleValue/DateSingleValue.tsx index ec23d744bd..1fd8b86531 100644 --- a/frontend/src/component/common/ConstraintAccordion/ConstraintAccordionEdit/ConstraintAccordionEditBody/DateSingleValue/DateSingleValue.tsx +++ b/frontend/src/component/common/ConstraintAccordion/ConstraintAccordionEdit/ConstraintAccordionEditBody/DateSingleValue/DateSingleValue.tsx @@ -1,5 +1,5 @@ import { ConstraintFormHeader } from '../ConstraintFormHeader/ConstraintFormHeader'; -import { format } from 'date-fns'; +import { format, isValid } from 'date-fns'; import Input from 'component/common/Input/Input'; interface IDateSingleValueProps { setValue: (value: string) => void; @@ -31,14 +31,25 @@ export const DateSingleValue = ({ value={parseDateValue(value)} onChange={e => { setError(''); - setValue(new Date(e.target.value).toISOString()); + const parsedDate = parseValidDate(e.target.value); + const dateString = parsedDate?.toISOString(); + dateString && setValue(dateString); }} InputLabelProps={{ shrink: true, }} error={Boolean(error)} errorText={error} + required /> ); }; + +const parseValidDate = (value: string): Date | undefined => { + const parsed = new Date(value); + + if (isValid(parsed)) { + return parsed; + } +};