import React, { forwardRef, useEffect, useImperativeHandle } from 'react'; import { __ } from '@wordpress/i18n'; import { useNavigate } from 'react-router-dom'; import { useForm } from 'react-hook-form'; import { is, isEmpty, isNil } from 'ramda'; // components import FormField from '../../../../components/FormField'; import FormFieldRepeater from '../../../../components/FormFieldRepeater'; import FormFieldRepeaterCriteria from '../../../../components/FormFieldRepeaterCriteria'; import BandoEditFormActions from '../BandoEditFormActions'; import UnsavedChangesDetector from '../../../../components/UnsavedChangesDetector'; const BandoEditFormStep2 = forwardRef(function ({ initialData, getFormErrors }, ref) { const navigate = useNavigate(); const { control, handleSubmit, formState: { errors, isValid }, setValue, register, trigger, getValues, clearErrors } = useForm({defaultValues: initialData, mode: 'onChange'}); const values = getValues(); const onSubmit = (formData) => { if (!isNil(formData.dates) && formData.dates.length) { formData.dates = formData.dates.map(v => is(String, v) ? v : v.toISOString()); } console.log('onSubmit', formData); }; // TODO temp data const exampleOfCriteriaOptions = [ { id: 15, value: 'Innovatività del progetto', score: 9 }, { id: 16, value: 'Impatto sulla competitività dell\'azienda', score: 3 }, { id: 17, value: 'Sostenibilità economico-finanziaria', score: 5 } ]; const exampleOfChecklistOptions = [ { id: 15, value: 'Innovatività del progetto' } ]; // end of temp data const openPreview = () => { navigate('/bandi/preview/11'); } const openPreviewEvaluation = () => { navigate('/bandi/preview-evaluation/11'); } useImperativeHandle( ref, () => { return { isFormValid: () => { return isValid; }, getErrors: () => { return errors; }, getValues: () => { return getValues(); } } }, [errors, isValid]); useEffect(() => { trigger().then(() => clearErrors()); }, []); return (
{__('Criteri di valutazione', 'gepafin')}* {__('(almeno 1 criterio di valutazione)', 'gepafin')}} config={{ validate: { minOneItem: v => !isEmpty(v) || __('Almeno 1 criterio di valutazione', 'gepafin'), noEmptyValue: v => v .filter(o => isEmpty(o.value) || isEmpty(o.score)).length === 0 || __('Non lasciare il valore vuoto', 'gepafin') } }}/> {__('Checklist valutazione Pre-Istruttoria', 'gepafin')}* {__('(almeno 1 elemento)', 'gepafin')}} config={{ validate: { minOneItem: v => !isEmpty(v) || __('Almeno 1 elemento', 'gepafin'), noEmptyValue: v => v .filter(o => isEmpty(o.value)).length === 0 || __('Non lasciare il valore vuoto', 'gepafin') } }} />
{__('Azioni', 'gepafin')}
) }) export default BandoEditFormStep2;