diff --git a/frontend/public/locales/en/common.json b/frontend/public/locales/en/common.json index 65bb63eabaaf06d3ae8459a9ca0235ed2ef8dee9..40684e8e73052b57550fa757076ecbbb9c0bde8c 100644 --- a/frontend/public/locales/en/common.json +++ b/frontend/public/locales/en/common.json @@ -131,6 +131,7 @@ "nationalIdNumberRequired": "Norwegian national ID number required", "roleTypeRequired": "Role type is required", "roleEndRequired": "Role end date is required", + "invalidEndDate": "Chosen role must have an earlier end date", "emailRequired": "E-mail is required", "consentRequired": "This consent is required", "invalidMobilePhoneNumber": "Invalid phone number", diff --git a/frontend/public/locales/nb/common.json b/frontend/public/locales/nb/common.json index 908dd470185b6a23432f655911cc459a747d323d..38363b4a5cbdbed42072ad2c934097ee521e5f4b 100644 --- a/frontend/public/locales/nb/common.json +++ b/frontend/public/locales/nb/common.json @@ -131,6 +131,7 @@ "nationalIdNumberRequired": "Fødselsnummer/D-nummer er obligatorisk", "roleTypeRequired": "Rolletype er obligatorisk", "roleEndRequired": "Sluttdato for rolle er obligatorisk", + "invalidEndDate": "Valgt rolle må ha en tidligere sluttdato", "emailRequired": "E-post er obligatorisk", "consentRequired": "Dette samtykket er obligatorisk", "invalidMobilePhoneNumber": "Ugyldig telefonnummer", diff --git a/frontend/public/locales/nn/common.json b/frontend/public/locales/nn/common.json index 2119651fbcc34bf065c8fafcf8d398369df63c0a..e1669b95a47a6271577507a777c978e79e0745ae 100644 --- a/frontend/public/locales/nn/common.json +++ b/frontend/public/locales/nn/common.json @@ -131,6 +131,7 @@ "nationalIdNumberRequired": "Fødselsnummer/D-nummer er påkrevd", "roleTypeRequired": "Rolletype er påkrevd", "roleEndRequired": "Sluttdato for rolle er påkrevd", + "invalidEndDate": "Vald rolle må ha ein tidlegare sluttdato", "emailRequired": "E-post er påkrevd", "consentRequired": "Dette samtykket er påkrevd", "invalidMobilePhoneNumber": "Ugyldig telefonnummer", diff --git a/frontend/src/routes/sponsor/guest/newGuestRole/index.tsx b/frontend/src/routes/sponsor/guest/newGuestRole/index.tsx index 7b158bd04aa6799974f60347a5098c7c5e79f016..f9671a6949817948f40270253c1959bfb17d3a97 100644 --- a/frontend/src/routes/sponsor/guest/newGuestRole/index.tsx +++ b/frontend/src/routes/sponsor/guest/newGuestRole/index.tsx @@ -305,6 +305,7 @@ function NewGuestRole({ guest, reloadGuestInfo }: NewGuestRoleProps) { control={control} rules={{ required: true, + validate: () => Number(getValues('end_date')) <= Number(maxDate), }} render={({ field }) => ( <DatePicker @@ -328,6 +329,11 @@ function NewGuestRole({ guest, reloadGuestInfo }: NewGuestRoleProps) { {t('validation.roleEndRequired')} </Box> )} + {errors.end_date && errors.end_date.type === 'validate' && ( + <Box sx={{ typography: 'caption', color: 'error.main' }}> + {t('validation.invalidEndDate')} + </Box> + )} {displayContactAtUnit && ( <TextField id="contact" diff --git a/frontend/src/routes/sponsor/register/stepPersonForm.tsx b/frontend/src/routes/sponsor/register/stepPersonForm.tsx index 49fc572c791f3003b33e38d172e66c2edd4150e3..e9c8f5a15160262a9647743ed9b7edac23fcd90c 100644 --- a/frontend/src/routes/sponsor/register/stepPersonForm.tsx +++ b/frontend/src/routes/sponsor/register/stepPersonForm.tsx @@ -315,7 +315,11 @@ const StepPersonForm = forwardRef( <Controller name="role_end" control={control} - rules={{ required: true }} + rules={{ + required: true, + validate: () => + Number(getValues('role_end')) <= Number(todayPlusMaxDays), + }} render={({ field }) => ( <DatePicker mask="____-__-__" @@ -331,11 +335,16 @@ const StepPersonForm = forwardRef( /> )} /> - {!!errors.role_end && ( + {!!errors.role_end && errors.role_end.type === 'required' && ( <Box sx={{ typography: 'caption', color: 'red' }}> {t('validation.roleEndRequired')} </Box> )} + {!!errors.role_end && errors.role_end.type === 'validate' && ( + <Box sx={{ typography: 'caption', color: 'red' }}> + {t('validation.invalidEndDate')} + </Box> + )} {displayContactAtUnit && ( <TextField