diff --git "a/src/features/s\303\270knad/types.ts" "b/src/features/s\303\270knad/types.ts" index 5109a39b3..67160387e 100644 --- "a/src/features/s\303\270knad/types.ts" +++ "b/src/features/s\303\270knad/types.ts" @@ -28,6 +28,7 @@ export interface Utenlandsopphold { export interface EPSFormData { fnr: Nullable; + alder: Nullable; erUførFlyktning: Nullable; } diff --git "a/src/pages/s\303\270knad/steg/bo-og-opphold-i-norge/Bo-og-opphold-i-norge.tsx" "b/src/pages/s\303\270knad/steg/bo-og-opphold-i-norge/Bo-og-opphold-i-norge.tsx" index ab1416945..1a2ae0c7b 100644 --- "a/src/pages/s\303\270knad/steg/bo-og-opphold-i-norge/Bo-og-opphold-i-norge.tsx" +++ "b/src/pages/s\303\270knad/steg/bo-og-opphold-i-norge/Bo-og-opphold-i-norge.tsx" @@ -50,7 +50,15 @@ const epsFormDataSchema = yup typeof value === 'string' && value.length === 11 && fnrValidator.fnr(value).status === 'valid' ) .typeError('Ugyldig fødselsnummer'), - erUførFlyktning: yup.boolean().required().typeError('Feltet må fylles ut'), + alder: yup.number().nullable().defined(), + erUførFlyktning: yup + .boolean() + .when('alder', { + is: (val) => val < 67, + then: yup.boolean().required(), + otherwise: yup.boolean().nullable().defined(), + }) + .defined(), }) .defined(); @@ -381,6 +389,7 @@ const BoOgOppholdINorge = (props: { forrigeUrl: string; nesteUrl: string }) => { ? { fnr: null, erUførFlyktning: null, + alder: null, } : null, })); diff --git "a/src/pages/s\303\270knad/steg/bo-og-opphold-i-norge/EktefellePartnerSamboer.tsx" "b/src/pages/s\303\270knad/steg/bo-og-opphold-i-norge/EktefellePartnerSamboer.tsx" index 1e43920c0..b6cfb9590 100644 --- "a/src/pages/s\303\270knad/steg/bo-og-opphold-i-norge/EktefellePartnerSamboer.tsx" +++ "b/src/pages/s\303\270knad/steg/bo-og-opphold-i-norge/EktefellePartnerSamboer.tsx" @@ -2,7 +2,7 @@ import fnrValidator from '@navikt/fnrvalidator'; import { FormikErrors } from 'formik'; import AlertStripe from 'nav-frontend-alertstriper'; import { Input, Radio, RadioGruppe, SkjemaelementFeilmelding } from 'nav-frontend-skjema'; -import React, { useEffect, useState } from 'react'; +import React, { useEffect, useState, useMemo } from 'react'; import * as personApi from '~api/personApi'; import { Person } from '~api/personApi'; @@ -21,10 +21,14 @@ interface Props { feil?: FormikErrors; } const EktefellePartnerSamboer = (props: Props) => { - const epsFormData = props.value ?? { fnr: null, erUførFlyktning: null }; + const epsFormData: EPSFormData = props.value ?? { fnr: null, alder: null, erUførFlyktning: null }; const intl = useI18n({ messages }); + const erEpsUnder67 = useMemo(() => { + return epsFormData.alder && epsFormData.alder < 67; + }, [epsFormData.fnr, epsFormData.alder]); + return (
{ }} feil={props.feil?.fnr} autoComplete="off" + onAlderChange={(alder) => { + props.onChange({ + ...epsFormData, + alder: alder, + }); + }} />
- - ('erUførFlyktning')}`} - checked={Boolean(epsFormData.erUførFlyktning)} - onChange={() => - props.onChange({ - ...epsFormData, - erUførFlyktning: true, - }) - } - label="Ja" - name="erUfør" - /> - - props.onChange({ - ...epsFormData, - erUførFlyktning: false, - }) - } - label="Nei" - name="erUfør" - /> - + {erEpsUnder67 && ( + + ('erUførFlyktning')}`} + checked={Boolean(epsFormData.erUførFlyktning)} + onChange={() => + props.onChange({ + ...epsFormData, + erUførFlyktning: true, + }) + } + label="Ja" + name="erUfør" + /> + + props.onChange({ + ...epsFormData, + erUførFlyktning: false, + }) + } + label="Nei" + name="erUfør" + /> + + )}
{typeof props.feil === 'string' && ( - Feltene må fylles ut + + {intl.formatMessage({ id: 'ektefelleEllerSamboer.feil.felteneMåFyllesUt' })} + )}
); @@ -83,8 +97,9 @@ interface FnrInputProps { onFnrChange: (fnr: string) => void; feil?: React.ReactNode; autoComplete?: string; + onAlderChange: (alder: Nullable) => void; } -const FnrInput = ({ inputId, fnr, onFnrChange, feil, autoComplete }: FnrInputProps) => { +const FnrInput = ({ inputId, fnr, onFnrChange, feil, autoComplete, onAlderChange }: FnrInputProps) => { const [person, setPerson] = useState(null); const [harIkkeTilgang, setHarIkkeTilgang] = useState(false); const intl = useI18n({ messages }); @@ -97,6 +112,7 @@ const FnrInput = ({ inputId, fnr, onFnrChange, feil, autoComplete }: FnrInputPro } if (res.status === 'ok') { setPerson(res.data); + onAlderChange(res.data.alder); } } @@ -130,7 +146,9 @@ const FnrInput = ({ inputId, fnr, onFnrChange, feil, autoComplete }: FnrInputPro )} {harIkkeTilgang && (
- Du har ikke tilgang til å se informasjon om denne brukeren + + {intl.formatMessage({ id: 'ektefelleEllerSamboer.feil.ikkeTilgang' })} +
)} diff --git "a/src/pages/s\303\270knad/steg/bo-og-opphold-i-norge/bo-og-opphold-i-norge-nb.ts" "b/src/pages/s\303\270knad/steg/bo-og-opphold-i-norge/bo-og-opphold-i-norge-nb.ts" index 9edab3f37..635c727ed 100644 --- "a/src/pages/s\303\270knad/steg/bo-og-opphold-i-norge/bo-og-opphold-i-norge-nb.ts" +++ "b/src/pages/s\303\270knad/steg/bo-og-opphold-i-norge/bo-og-opphold-i-norge-nb.ts" @@ -1,4 +1,7 @@ export default { + 'ektefelleEllerSamboer.feil.ikkeTilgang': 'Du har ikke tilgang til å se informasjon om denne brukeren', + 'ektefelleEllerSamboer.feil.felteneMåFyllesUt': 'Feltene må fylles ut', + 'input.opphold-i-norge.label': 'Bor og oppholder du deg i Norge?', 'input.folkereg-adresse.label': 'Bor på folkereg adresse?', 'input.delerBoligMedPersonOver18.label': 'Deler du bolig med noen over 18 år?',