From dae8fea9f7e24a3f2c883965e5d0c82f83289365 Mon Sep 17 00:00:00 2001 From: Vitalii Kiiko Date: Mon, 13 Apr 2026 12:30:28 +0200 Subject: [PATCH] - fixed freezing form; --- .../FormField/components/Datepicker/index.js | 42 +++++++++++++------ .../components/DatepickerRange/index.js | 11 +++-- .../FormField/components/NumberInput/index.js | 4 +- src/pages/BandoApplication/index.js | 1 + src/pages/DocumentsBeneficiary/index.js | 10 +++-- .../components/EvaluationExtraFiles/index.js | 8 ++-- 6 files changed, 51 insertions(+), 25 deletions(-) diff --git a/src/components/FormField/components/Datepicker/index.js b/src/components/FormField/components/Datepicker/index.js index f4164c5..29ba317 100644 --- a/src/components/FormField/components/Datepicker/index.js +++ b/src/components/FormField/components/Datepicker/index.js @@ -1,10 +1,30 @@ -import React from 'react'; +import React, { useMemo } from 'react'; import { classNames } from 'primereact/utils'; import { Controller } from 'react-hook-form'; import { is, isEmpty } from 'ramda'; import { Calendar } from 'primereact/calendar'; +const DatepickerField = ({ field, fieldState, disabled, timeOnly, minDate, maxDate }) => { + const dateValue = useMemo( + () => is(String, field.value) && !isEmpty(field.value) ? new Date(field.value) : field.value, + [field.value] + ); + return ( + field.onChange(e.value)} + dateFormat="dd/mm/yy" + hourFormat="24" + timeOnly={timeOnly} + showIcon + minDate={minDate} + maxDate={maxDate} + className={classNames({ 'p-invalid': fieldState.invalid })}/> + ); +}; + const Datepicker = ({ fieldName, label, @@ -28,17 +48,15 @@ const Datepicker = ({ control={control} defaultValue={defaultValue} rules={config} - render={({ field, fieldState }) => ( field.onChange(e.value)} - dateFormat="dd/mm/yy" - hourFormat="24" - timeOnly={timeOnly} - showIcon - minDate={minDate} - maxDate={maxDate} - className={classNames({ 'p-invalid': fieldState.invalid })}/> + render={({ field, fieldState }) => ( + )}/> {infoText ? {infoText} : null} ) diff --git a/src/components/FormField/components/DatepickerRange/index.js b/src/components/FormField/components/DatepickerRange/index.js index 5c9fa75..aab496e 100644 --- a/src/components/FormField/components/DatepickerRange/index.js +++ b/src/components/FormField/components/DatepickerRange/index.js @@ -1,4 +1,4 @@ -import React from 'react'; +import React, { useMemo } from 'react'; import { classNames } from 'primereact/utils'; import { isNil } from 'ramda'; @@ -18,9 +18,12 @@ const DatepickerRange = ({ maxDate = null, disabled = false }) => { - const datesDefaultValue = !isNil(defaultValue) && defaultValue.length - ? defaultValue.map(v => new Date(v)) - : []; + const datesDefaultValue = useMemo( + () => !isNil(defaultValue) && defaultValue.length + ? defaultValue.map(v => new Date(v)) + : [], + [defaultValue] + ); return ( <>