diff --git a/frontend/benefit/applicant/src/components/applications/forms/application/deMinimisAid/list/useDeminimisAidsList.ts b/frontend/benefit/applicant/src/components/applications/forms/application/deMinimisAid/list/useDeminimisAidsList.ts index 1bc521dd0e..c7b1c919b4 100644 --- a/frontend/benefit/applicant/src/components/applications/forms/application/deMinimisAid/list/useDeminimisAidsList.ts +++ b/frontend/benefit/applicant/src/components/applications/forms/application/deMinimisAid/list/useDeminimisAidsList.ts @@ -6,7 +6,6 @@ import sumBy from 'lodash/sumBy'; import { TFunction } from 'next-i18next'; import React from 'react'; import { Language } from 'shared/i18n/i18n'; -// import * as Yup from 'yup'; type ExtendedComponentProps = { t: TFunction; diff --git a/frontend/benefit/handler/public/locales/en/common.json b/frontend/benefit/handler/public/locales/en/common.json index 2d7eec0526..f023952405 100644 --- a/frontend/benefit/handler/public/locales/en/common.json +++ b/frontend/benefit/handler/public/locales/en/common.json @@ -337,6 +337,10 @@ "label": "Enimmäismäärä ylitetty", "content": "De minimis-tuen enimmäismäärä on ylitetty. Tuki voi olla enintään {{amount}} euroa, joka myönnetään yritykselle kuluvan vuoden ja kahden edellisen verovuoden kuluessa. Enimmäismäärässä huomioidaan kaikkien eri viranomaisten kyseisenä ajanjaksona de minimis -tukena myöntämä rahoitus." }, + "deMinimisUnfinished": { + "label": "Puuttuvia de minimis -tuen tietoja", + "content": "Täytä puuttuvat minimis -kentät ja paina 'Lisää' painiketta." + }, "salaryBenefit": { "label": "Palkkatuettu oppisopimus", "content": "Palkkatuettuun oppisopimukseen voi hakea joko työllistämisen tai palkan Helsinki-lisää" diff --git a/frontend/benefit/handler/public/locales/fi/common.json b/frontend/benefit/handler/public/locales/fi/common.json index 95432956a6..6ad8f5ff8b 100644 --- a/frontend/benefit/handler/public/locales/fi/common.json +++ b/frontend/benefit/handler/public/locales/fi/common.json @@ -337,6 +337,10 @@ "label": "Enimmäismäärä ylitetty", "content": "De minimis-tuen enimmäismäärä on ylitetty. Tuki voi olla enintään {{amount}} euroa, joka myönnetään yritykselle kuluvan vuoden ja kahden edellisen verovuoden kuluessa. Enimmäismäärässä huomioidaan kaikkien eri viranomaisten kyseisenä ajanjaksona de minimis -tukena myöntämä rahoitus." }, + "deMinimisUnfinished": { + "label": "Puuttuvia de minimis -tuen tietoja", + "content": "Täytä puuttuvat minimis -kentät ja paina 'Lisää' painiketta." + }, "salaryBenefit": { "label": "Palkkatuettu oppisopimus", "content": "Palkkatuettuun oppisopimukseen voi hakea joko työllistämisen tai palkan Helsinki-lisää" diff --git a/frontend/benefit/handler/public/locales/sv/common.json b/frontend/benefit/handler/public/locales/sv/common.json index 2d7eec0526..f023952405 100644 --- a/frontend/benefit/handler/public/locales/sv/common.json +++ b/frontend/benefit/handler/public/locales/sv/common.json @@ -337,6 +337,10 @@ "label": "Enimmäismäärä ylitetty", "content": "De minimis-tuen enimmäismäärä on ylitetty. Tuki voi olla enintään {{amount}} euroa, joka myönnetään yritykselle kuluvan vuoden ja kahden edellisen verovuoden kuluessa. Enimmäismäärässä huomioidaan kaikkien eri viranomaisten kyseisenä ajanjaksona de minimis -tukena myöntämä rahoitus." }, + "deMinimisUnfinished": { + "label": "Puuttuvia de minimis -tuen tietoja", + "content": "Täytä puuttuvat minimis -kentät ja paina 'Lisää' painiketta." + }, "salaryBenefit": { "label": "Palkkatuettu oppisopimus", "content": "Palkkatuettuun oppisopimukseen voi hakea joko työllistämisen tai palkan Helsinki-lisää" diff --git a/frontend/benefit/handler/src/components/applicationForm/formContent/companySection/deMinimisAid/DeMinimisAidForm.tsx b/frontend/benefit/handler/src/components/applicationForm/formContent/companySection/deMinimisAid/DeMinimisAidForm.tsx index a6379987d4..d07f8ea000 100644 --- a/frontend/benefit/handler/src/components/applicationForm/formContent/companySection/deMinimisAid/DeMinimisAidForm.tsx +++ b/frontend/benefit/handler/src/components/applicationForm/formContent/companySection/deMinimisAid/DeMinimisAidForm.tsx @@ -2,11 +2,12 @@ import { DE_MINIMIS_AID_GRANTED_AT_MAX_DATE, MAX_DEMINIMIS_AID_TOTAL_AMOUNT, } from 'benefit/handler/constants'; +import DeMinimisContext from 'benefit/handler/context/DeMinimisContext'; import { DE_MINIMIS_AID_KEYS } from 'benefit-shared/constants'; import { DeMinimisAid } from 'benefit-shared/types/application'; import { Button, DateInput, IconPlusCircle, TextInput } from 'hds-react'; import sumBy from 'lodash/sumBy'; -import React from 'react'; +import React, { useCallback, useEffect } from 'react'; import { $Grid, $GridCell, @@ -36,6 +37,36 @@ const DeMinimisAidForm: React.FC = ({ data }) => { } = useDeminimisAid(data); const theme = useTheme(); + const { setUnfinishedDeMinimisAidRow } = React.useContext(DeMinimisContext); + + const validateDeMinimisRow = (): boolean => + !( + formik.values.granter && + formik.values.amount && + formik.values.grantedAt + ) || + !formik.isValid || + sumBy(grants, 'amount') > MAX_DEMINIMIS_AID_TOTAL_AMOUNT; + + /** + * Only empty inputs are consired complete because row addition clears them. + */ + const isFormInputIncomplete: () => boolean = useCallback( + (): boolean => + formik.values.granter?.length > 0 || + formik.values.amount?.length > 0 || + formik.values.grantedAt?.length > 0, + [formik.values] + ); + + useEffect(() => { + if (isFormInputIncomplete()) { + setUnfinishedDeMinimisAidRow(true); + } else { + setUnfinishedDeMinimisAidRow(false); + } + }, [setUnfinishedDeMinimisAidRow, isFormInputIncomplete]); + return ( <$GridCell $colStart={1} @@ -120,15 +151,7 @@ const DeMinimisAidForm: React.FC = ({ data }) => { >