diff --git a/README.md b/README.md index 97a098ffe..34fc55937 100644 --- a/README.md +++ b/README.md @@ -8,8 +8,8 @@ Frontend - søknad for enslig forsørger. 2. `npm run start` * Hvis man ønsker å kjøre med mock-api -1. `npm run start:mock` -2. `node mock/mock-server.js` +1. `node mock/mock-server.js` +2. `npm run start:mock` Med api må du sette cookie første gang: `http://localhost:8091/local/cookie?redirect=http://localhost:3000/familie/alene-med-barn/soknad&issuerId=tokenx&audience=familie-app` diff --git a/src/App.tsx b/src/App.tsx index 0904bf703..e2ea7fa28 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -30,7 +30,7 @@ const App = () => { EAlvorlighetsgrad | undefined >(undefined); const { settPerson } = usePersonContext(); - const { søknad, settSøknad, hentMellomlagretOvergangsstønad } = useSøknad(); + const { settSøknad, hentMellomlagretOvergangsstønad } = useSøknad(); const { settToggles, toggles } = useToggles(); const intl = useLokalIntlContext(); @@ -72,7 +72,10 @@ const App = () => { const oppdaterSøknadMedBarn = (person: IPerson, barneliste: IBarn[]) => { const barnMedLabels = oppdaterBarnMedLabel(barneliste, intl); - settSøknad({ ...søknad, person: { ...person, barn: barnMedLabels } }); + settSøknad((prevSøknad) => ({ + ...prevSøknad, + person: { ...person, barn: barnMedLabels }, + })); }; const fetchToggles = () => { diff --git a/src/barnetilsyn/BarnetilsynApp.tsx b/src/barnetilsyn/BarnetilsynApp.tsx index f22025fe7..77540bac6 100644 --- a/src/barnetilsyn/BarnetilsynApp.tsx +++ b/src/barnetilsyn/BarnetilsynApp.tsx @@ -18,6 +18,7 @@ import { ESkjemanavn } from '../utils/skjemanavn'; import { useLokalIntlContext } from '../context/LokalIntlContext'; import { Loader } from '@navikt/ds-react'; import { IBarn } from '../models/steg/barn'; +import { ToggleName } from '../models/søknad/toggles'; const BarnetilsynApp = () => { const [autentisert, settAutentisering] = useState(false); @@ -27,10 +28,12 @@ const BarnetilsynApp = () => { const [alvorlighetsgrad, settAlvorlighetsgrad] = useState(); const { settPerson } = usePersonContext(); - const { søknad, settSøknad, hentMellomlagretBarnetilsyn } = - useBarnetilsynSøknad(); - const { settToggles } = useToggles(); - + const { + settSøknad, + hentMellomlagretBarnetilsyn, + hentForrigeSøknadBarnetilsyn, + } = useBarnetilsynSøknad(); + const { toggles, settToggles } = useToggles(); const intl = useLokalIntlContext(); autentiseringsInterceptor(); @@ -69,8 +72,12 @@ const BarnetilsynApp = () => { const oppdaterSøknadMedBarn = (person: IPerson, barneliste: IBarn[]) => { const barnMedLabels = oppdaterBarnMedLabel(barneliste, intl); + settSøknad && - settSøknad({ ...søknad, person: { ...person, barn: barnMedLabels } }); + settSøknad((prevSøknad) => ({ + ...prevSøknad, + person: { ...person, barn: barnMedLabels }, + })); }; const fetchToggles = () => { @@ -86,10 +93,16 @@ const BarnetilsynApp = () => { hentMellomlagretBarnetilsyn(), ]) .then(() => settFetching(false)) - .catch(() => settFetching(false)); + .catch(() => settFetching(false)) // eslint-disable-next-line }, []); + useEffect(() => { + if (toggles[ToggleName.hentBarnetilsynSøknad]) { + hentForrigeSøknadBarnetilsyn() + } + }, [fetching]); + if (!fetching && autentisert) { if (!error) { return ( diff --git a/src/barnetilsyn/BarnetilsynContext.tsx b/src/barnetilsyn/BarnetilsynContext.tsx index 88db9c075..fce1bc24f 100644 --- a/src/barnetilsyn/BarnetilsynContext.tsx +++ b/src/barnetilsyn/BarnetilsynContext.tsx @@ -3,7 +3,7 @@ import createUseContext from 'constate'; import tomPerson from '../mock/initialState.json'; import { EBosituasjon } from '../models/steg/bosituasjon'; import { ISpørsmål, ISvar } from '../models/felles/spørsmålogsvar'; -import { ISøknad } from './models/søknad'; +import { ISøknad, ForrigeSøknad } from './models/søknad'; import { hentDokumentasjonTilFlersvarSpørsmål, oppdaterDokumentasjonTilEtSvarSpørsmål, @@ -13,6 +13,7 @@ import { IMellomlagretBarnetilsynSøknad } from './models/mellomlagretSøknad'; import Environment from '../Environment'; import { EArbeidssituasjon } from '../models/steg/aktivitet/aktivitet'; import { + hentDataFraForrigeBarnetilsynSøknad, hentMellomlagretSøknadFraDokument, mellomlagreSøknadTilDokument, nullstillMellomlagretSøknadTilDokument, @@ -91,6 +92,19 @@ const [BarnetilsynSøknadProvider, useBarnetilsynSøknad] = createUseContext( } }; + const hentForrigeSøknadBarnetilsyn = async (): Promise => { + return hentDataFraForrigeBarnetilsynSøknad().then( + (tidligereVersjon?: ForrigeSøknad) => { + if (tidligereVersjon) { + settSøknad((prevSøknad) => ({ + ...prevSøknad, + ...tidligereVersjon, + })); + } + } + ); + }; + const mellomlagreBarnetilsyn = (steg: string) => { const utfyltSøknad = { søknad: søknad, @@ -211,6 +225,7 @@ const [BarnetilsynSøknadProvider, useBarnetilsynSøknad] = createUseContext( hentMellomlagretBarnetilsyn, mellomlagreBarnetilsyn, brukMellomlagretBarnetilsyn, + hentForrigeSøknadBarnetilsyn, nullstillMellomlagretBarnetilsyn, nullstillSøknadBarnetilsyn, oppdaterBarnISøknaden, diff --git a/src/barnetilsyn/Forside.tsx b/src/barnetilsyn/Forside.tsx index a361edd46..35a16069d 100644 --- a/src/barnetilsyn/Forside.tsx +++ b/src/barnetilsyn/Forside.tsx @@ -1,4 +1,4 @@ -import React from 'react'; +import React, { useEffect } from 'react'; import { usePersonContext } from '../context/PersonContext'; import { useBarnetilsynSøknad } from './BarnetilsynContext'; import Environment from '../Environment'; @@ -42,11 +42,12 @@ const Forside: React.FC = () => { søknad, settSøknad, } = useBarnetilsynSøknad(); + const settBekreftelse = (bekreftelse: boolean) => { - settSøknad({ - ...søknad, + settSøknad((prevSøknad) => ({ + ...prevSøknad, harBekreftet: bekreftelse, - }); + })); }; const alder = FnrOgDnrTilAlder(person.søker.fnr); diff --git "a/src/barnetilsyn/models/s\303\270knad.ts" "b/src/barnetilsyn/models/s\303\270knad.ts" index 9c9f00947..109c955f5 100644 --- "a/src/barnetilsyn/models/s\303\270knad.ts" +++ "b/src/barnetilsyn/models/s\303\270knad.ts" @@ -24,3 +24,8 @@ export interface ISøknad { dokumentasjonsbehov: IDokumentasjon[]; harBekreftet: boolean; } + +export interface ForrigeSøknad { + sivilstatus: ISivilstatus; + medlemskap: IMedlemskap; +} diff --git a/src/barnetilsyn/steg/1-omdeg/OmDeg.tsx b/src/barnetilsyn/steg/1-omdeg/OmDeg.tsx index 6e3ced52c..e3d3e8e6d 100644 --- a/src/barnetilsyn/steg/1-omdeg/OmDeg.tsx +++ b/src/barnetilsyn/steg/1-omdeg/OmDeg.tsx @@ -1,8 +1,9 @@ import React, { FC } from 'react'; import { useLocation } from 'react-router-dom'; import { + erSivilstandSpørsmålBesvart, erStegFerdigUtfylt, - erSøknadsBegrunnelseBesvart, + erÅrsakEnsligBesvart, } from '../../../helpers/steg/omdeg'; import { useBarnetilsynSøknad } from '../../BarnetilsynContext'; import { IMedlemskap } from '../../../models/steg/omDeg/medlemskap'; @@ -20,7 +21,6 @@ import Show from '../../../utils/showIf'; import { logSidevisningBarnetilsyn } from '../../../utils/amplitude'; import { useMount } from '../../../utils/hooks'; import { ISøknad } from '../../models/søknad'; -import { erGyldigDato } from '../../../utils/dato'; import { kommerFraOppsummeringen } from '../../../utils/locationState'; import { useLokalIntlContext } from '../../../context/LokalIntlContext'; @@ -38,15 +38,17 @@ const OmDeg: FC = () => { settSøknad, settDokumentasjonsbehov, } = useBarnetilsynSøknad(); - - const { harSøktSeparasjon, datoSøktSeparasjon, datoFlyttetFraHverandre } = - søknad.sivilstatus; + const { sivilstatus, medlemskap } = søknad; + const { søker } = søknad.person; const settMedlemskap = (medlemskap: IMedlemskap) => { settSøknad((prevSoknad: ISøknad) => { return { ...prevSoknad, - medlemskap: medlemskap, + medlemskap: + Object.keys(medlemskap).length !== 0 + ? medlemskap + : prevSoknad.medlemskap, }; }); }; @@ -68,11 +70,10 @@ const OmDeg: FC = () => { ...prevSoknad, adresseopplysninger: undefined, søkerBorPåRegistrertAdresse: søkerBorPåRegistrertAdresse, - sivilstatus: {}, - medlemskap: {}, }; }); }; + const settHarMeldtAdresseendring = ( harMeldtAdresseendring: ISpørsmålBooleanFelt ) => { @@ -94,23 +95,17 @@ const OmDeg: FC = () => { }); }; - const erAlleSpørsmålBesvart = erStegFerdigUtfylt( - søknad.sivilstatus, - søknad.medlemskap - ); - const søkerBorPåRegistrertAdresseEllerHarMeldtAdresseendring = - søknad.person.søker.erStrengtFortrolig || + søker.erStrengtFortrolig || søknad.søkerBorPåRegistrertAdresse?.verdi === true || søknad.adresseopplysninger?.harMeldtAdresseendring?.verdi === true; - const harFyltUtSeparasjonSpørsmålet = - harSøktSeparasjon !== undefined - ? harSøktSeparasjon.verdi - ? erGyldigDato(datoSøktSeparasjon?.verdi) && - erGyldigDato(datoFlyttetFraHverandre?.verdi) - : true - : false; + const erAlleSpørsmålBesvart = erStegFerdigUtfylt( + sivilstatus, + søker.sivilstand, + medlemskap, + søkerBorPåRegistrertAdresseEllerHarMeldtAdresseendring + ); return ( { tilbakeTilOppsummeringPath={hentPathBarnetilsynOppsummering} > { - + diff --git a/src/helpers/steg/omdeg.ts b/src/helpers/steg/omdeg.ts index 0a50082fb..44fabeb85 100644 --- a/src/helpers/steg/omdeg.ts +++ b/src/helpers/steg/omdeg.ts @@ -8,6 +8,14 @@ import { IMedlemskap } from '../../models/steg/omDeg/medlemskap'; import { harFyltUtSamboerDetaljer } from '../../utils/person'; import { DatoBegrensning } from '../../components/dato/Datovelger'; import { erDatoGyldigOgInnaforBegrensninger } from '../../components/dato/utils'; +import { IDatoFelt } from '../../models/søknad/søknadsfelter'; +import { + erSøkerEnke, + erSøkerGift, + erSøkerSeparert, + erSøkerSkilt, + erSøkerUgift, +} from '../../utils/sivilstatus'; export const hentSivilstatus = (statuskode?: string) => { switch (statuskode) { @@ -39,7 +47,7 @@ export const hentSivilstatus = (statuskode?: string) => { } }; -export const erSøknadsBegrunnelseBesvart = (sivilstatus: ISivilstatus) => { +export const erÅrsakEnsligBesvart = (sivilstatus: ISivilstatus) => { const { datoForSamlivsbrudd, datoFlyttetFraHverandre, @@ -93,47 +101,92 @@ export const erPeriodeDatoerValgt = (periode: IPeriode) => { const erMedlemskapSpørsmålBesvart = (medlemskap: IMedlemskap): boolean => { const { søkerBosattINorgeSisteTreÅr, perioderBoddIUtlandet } = medlemskap; - const manglerNoenBegrunnelserForUtenlandsopphold = - perioderBoddIUtlandet?.some( - (utenlandsopphold) => - utenlandsopphold.begrunnelse.verdi === '' || - !utenlandsopphold.begrunnelse - ); - return søkerBosattINorgeSisteTreÅr?.verdi === false - ? manglerNoenBegrunnelserForUtenlandsopphold - ? false - : true - : søkerBosattINorgeSisteTreÅr?.verdi - ? true - : false; + if (perioderBoddIUtlandet !== null) { + const finnesUtenlandsperiodeUtenBegrunnelse = + perioderBoddIUtlandet?.some( + (utenlandsopphold) => + utenlandsopphold.begrunnelse.verdi === '' || + !utenlandsopphold.begrunnelse + ); + + return søkerBosattINorgeSisteTreÅr?.verdi === false + ? finnesUtenlandsperiodeUtenBegrunnelse + ? false + : true + : søkerBosattINorgeSisteTreÅr?.verdi + ? true + : false; + } else return false; }; -export const erStegFerdigUtfylt = ( - sivilstatus: ISivilstatus, - medlemskap: IMedlemskap +const erDatoSøktSeparasjonGyldig = ( + datoSøktSeparasjon: IDatoFelt | undefined ): boolean => { - const { harSøktSeparasjon, datoSøktSeparasjon, datoFlyttetFraHverandre } = - sivilstatus; - const datoFlyttetfraHverandreErUtfyltOgGyldig = - datoFlyttetFraHverandre?.verdi && - erDatoGyldigOgInnaforBegrensninger( - datoFlyttetFraHverandre?.verdi, - DatoBegrensning.AlleDatoer - ); - - const datoSøktSeparasjonerUtfyltOgGyldig = + return !!( datoSøktSeparasjon?.verdi && erDatoGyldigOgInnaforBegrensninger( datoSøktSeparasjon?.verdi, DatoBegrensning.TidligereDatoer + ) + ); +}; + +const erSpørsmålOmUformeltGiftBesvart = ( + sivilstatus: ISivilstatus +): boolean => { + return sivilstatus.erUformeltGift?.verdi !== undefined; +}; + +const erSpørsmålOmUformeltSeparertEllerSkiltBesvart = ( + sivilstatus: ISivilstatus +): boolean => { + return sivilstatus.erUformeltSeparertEllerSkilt?.verdi !== undefined; +}; + +const erSpørsmålOmSøktSeparasjonUtfylt = ( + sivilstatus: ISivilstatus +): boolean => { + const { harSøktSeparasjon, datoSøktSeparasjon } = sivilstatus; + + const datoSøktSeparasjonerUtfyltOgGyldig = + erDatoSøktSeparasjonGyldig(datoSøktSeparasjon); + + return ( + (harSøktSeparasjon?.verdi && datoSøktSeparasjonerUtfyltOgGyldig) || + harSøktSeparasjon?.verdi === false + ); +}; + +export const erSivilstandSpørsmålBesvart = ( + sivilstand: string, + sivilstatus: ISivilstatus +): boolean => { + if (erSøkerUgift(sivilstand)) { + return ( + erSpørsmålOmUformeltGiftBesvart(sivilstatus) && + erSpørsmålOmUformeltSeparertEllerSkiltBesvart(sivilstatus) ); + } else if (erSøkerSkilt(sivilstand)) { + return erSpørsmålOmUformeltGiftBesvart(sivilstatus); + } else if (erSøkerGift(sivilstand)) { + return erSpørsmålOmSøktSeparasjonUtfylt(sivilstatus); + } else if (erSøkerEnke(sivilstand) || erSøkerSeparert(sivilstand)) { + return true; + } + + return true; +}; - return ((harSøktSeparasjon?.verdi && - datoSøktSeparasjonerUtfyltOgGyldig && - datoFlyttetfraHverandreErUtfyltOgGyldig) || - harSøktSeparasjon?.verdi === false || - erSøknadsBegrunnelseBesvart(sivilstatus)) && +export const erStegFerdigUtfylt = ( + sivilstatus: ISivilstatus, + sivilstand: string, + medlemskap: IMedlemskap, + søkerBorPåRegistrertAdresseEllerHarMeldtAdresseendring: boolean +): boolean => { + return !!( + søkerBorPåRegistrertAdresseEllerHarMeldtAdresseendring && + erSivilstandSpørsmålBesvart(sivilstand, sivilstatus) && + erÅrsakEnsligBesvart(sivilstatus) && erMedlemskapSpørsmålBesvart(medlemskap) - ? true - : false; + ); }; diff --git "a/src/models/s\303\270knad/toggles.ts" "b/src/models/s\303\270knad/toggles.ts" index 7159a3eb3..3f88deeaa 100644 --- "a/src/models/s\303\270knad/toggles.ts" +++ "b/src/models/s\303\270knad/toggles.ts" @@ -5,6 +5,6 @@ export interface Toggles { export enum ToggleName { feilsituasjon = 'familie.ef.soknad.feilsituasjon', leggTilNynorsk = 'familie.ef.soknad.nynorsk', - validerBosituasjon = 'familie.ef.soknad.validerbosituasjon', + hentBarnetilsynSøknad = 'familie.ef.soknad.hent-barnetilsyn-soknad-til-gjenbruk', } diff --git "a/src/overgangsst\303\270nad/steg/1-omdeg/OmDeg.tsx" "b/src/overgangsst\303\270nad/steg/1-omdeg/OmDeg.tsx" index ca7e28487..4aff8fd71 100644 --- "a/src/overgangsst\303\270nad/steg/1-omdeg/OmDeg.tsx" +++ "b/src/overgangsst\303\270nad/steg/1-omdeg/OmDeg.tsx" @@ -7,7 +7,7 @@ import { useLocation } from 'react-router-dom'; import { logSidevisningOvergangsstonad } from '../../../utils/amplitude'; import { erStegFerdigUtfylt, - erSøknadsBegrunnelseBesvart, + erÅrsakEnsligBesvart, } from '../../../helpers/steg/omdeg'; import { IMedlemskap } from '../../../models/steg/omDeg/medlemskap'; import { ISøker } from '../../../models/søknad/person'; @@ -40,6 +40,8 @@ const OmDeg: FC = () => { const { harSøktSeparasjon, datoSøktSeparasjon, datoFlyttetFraHverandre } = søknad.sivilstatus; + const { søker } = søknad.person; + useMount(() => logSidevisningOvergangsstonad('OmDeg')); const settMedlemskap = (medlemskap: IMedlemskap) => { @@ -94,16 +96,19 @@ const OmDeg: FC = () => { }; }); }; - const erAlleSpørsmålBesvart = erStegFerdigUtfylt( - søknad.sivilstatus, - søknad.medlemskap - ); const søkerBorPåRegistrertAdresseEllerHarMeldtAdresseendring = - søknad.person.søker.erStrengtFortrolig || + søker.erStrengtFortrolig || søknad.søkerBorPåRegistrertAdresse?.verdi === true || søknad.adresseopplysninger?.harMeldtAdresseendring?.verdi === true; + const erAlleSpørsmålBesvart = erStegFerdigUtfylt( + søknad.sivilstatus, + søker.sivilstand, + søknad.medlemskap, + søkerBorPåRegistrertAdresseEllerHarMeldtAdresseendring + ); + const harFyltUtSeparasjonSpørsmålet = harSøktSeparasjon !== undefined ? harSøktSeparasjon.verdi @@ -112,8 +117,7 @@ const OmDeg: FC = () => { : false; const skalViseMedlemskapDialog = - harFyltUtSeparasjonSpørsmålet || - erSøknadsBegrunnelseBesvart(søknad.sivilstatus); + harFyltUtSeparasjonSpørsmålet || erÅrsakEnsligBesvart(søknad.sivilstatus); return ( { const { harSøktSeparasjon, datoSøktSeparasjon, datoFlyttetFraHverandre } = søknad.sivilstatus; + const { søker } = søknad.person; + useMount(() => logSidevisningSkolepenger('OmDeg')); const settMedlemskap = (medlemskap: IMedlemskap) => { @@ -95,16 +97,18 @@ const OmDeg: FC = () => { }); }; - const erAlleSpørsmålBesvart = erStegFerdigUtfylt( - søknad.sivilstatus, - søknad.medlemskap - ); - const søkerBorPåRegistrertAdresseEllerHarMeldtAdresseendring = - søknad.person.søker.erStrengtFortrolig || + søker.erStrengtFortrolig || søknad.søkerBorPåRegistrertAdresse?.verdi === true || søknad.adresseopplysninger?.harMeldtAdresseendring?.verdi === true; + const erAlleSpørsmålBesvart = erStegFerdigUtfylt( + søknad.sivilstatus, + søker.sivilstand, + søknad.medlemskap, + søkerBorPåRegistrertAdresseEllerHarMeldtAdresseendring + ); + const harFyltUtSeparasjonSpørsmålet = harSøktSeparasjon !== undefined ? harSøktSeparasjon.verdi @@ -123,7 +127,7 @@ const OmDeg: FC = () => { tilbakeTilOppsummeringPath={hentPathSkolepengerOppsummering} > { = ({ medlemskap, settMedlemskap }) => { )} {(søkerOppholderSegINorge?.verdi === true || - oppholdsland?.hasOwnProperty('verdi')) && ( + (søkerOppholderSegINorge?.verdi === false && + oppholdsland?.hasOwnProperty('verdi'))) && ( <> = ({ const { person } = usePersonContext(); const sivilstand = person.søker.sivilstand; - const { - harSøktSeparasjon, - erUformeltSeparertEllerSkilt, - erUformeltGift, - datoFlyttetFraHverandre, - datoSøktSeparasjon, - } = sivilstatus; - - const harSvartPåGiftUtenRegistrertSpørsmål = - sivilstatus.erUformeltGift?.svarid === ESvar.JA || - sivilstatus.erUformeltGift?.svarid === ESvar.NEI; + const { erUformeltGift, datoFlyttetFraHverandre, datoSøktSeparasjon } = + sivilstatus; const settSivilstatusFelt = (spørsmål: ISpørsmål, valgtSvar: ISvar) => { const spørsmålLabel = hentTekst(spørsmål.tekstid, intl); @@ -96,16 +82,6 @@ const Sivilstatus: React.FC = ({ }); }; - const harFyltUtSeparasjonSomGift = () => { - if (harSøktSeparasjon === undefined) return false; - - if (harSøktSeparasjon.verdi === true) { - return !!datoSøktSeparasjon?.verdi; - } else { - return true; - } - }; - return ( {erSøkerGift(sivilstand) && ( @@ -131,20 +107,15 @@ const Sivilstatus: React.FC = ({ /> )} - {(erSøkerUgift(sivilstand) && - erUformeltSeparertEllerSkilt?.hasOwnProperty('verdi')) || - (erSøkerGift(sivilstand) && harFyltUtSeparasjonSomGift()) || - erSøkerSeparert(sivilstand) || - (erSøkerSkilt(sivilstand) && harSvartPåGiftUtenRegistrertSpørsmål) || - erSøkerEnke(sivilstand) ? ( - - ) : null} + )} ); }; diff --git "a/src/s\303\270knad/steg/1-omdeg/sivilstatus/SivilstatusConfig.tsx" "b/src/s\303\270knad/steg/1-omdeg/sivilstatus/SivilstatusConfig.tsx" index cc87884fb..eddf61f82 100644 --- "a/src/s\303\270knad/steg/1-omdeg/sivilstatus/SivilstatusConfig.tsx" +++ "b/src/s\303\270knad/steg/1-omdeg/sivilstatus/SivilstatusConfig.tsx" @@ -8,8 +8,6 @@ import { JaSvar, NeiSvar } from '../../../../helpers/svar'; import { DokumentasjonsConfig } from '../../../DokumentasjonsConfig'; import { LokalIntlShape } from '../../../../language/typer'; -// DOKUMENTASJON CONFIG - const ErklæringSamlivsbrudd: IDokumentasjon = DokumentasjonsConfig.ErklæringSamlivsbrudd; @@ -22,9 +20,7 @@ const DokumentasjonUformeltSeparertEllerSkilt: IDokumentasjon = export const BekreftelseSeparasjonSøknad: IDokumentasjon = DokumentasjonsConfig.BekreftelseSeparasjonSøknad; -// SPØRSMÅL CONFIG - -export const SeparasjonSpørsmål = (intl: LokalIntlShape): ISpørsmål => ({ +export const harSøktSeparasjonSpørsmål = (intl: LokalIntlShape): ISpørsmål => ({ søknadid: ESivilstatusSøknadid.harSøktSeparasjon, tekstid: 'sivilstatus.spm.søktSeparasjon', flersvar: false, @@ -68,7 +64,7 @@ export const erUformeltSeparertEllerSkiltSpørsmål = ( ], }); -export const BegrunnelseSpørsmål = (intl: LokalIntlShape): ISpørsmål => ({ +export const begrunnelseSpørsmål = (intl: LokalIntlShape): ISpørsmål => ({ søknadid: ESivilstatusSøknadid.årsakEnslig, tekstid: 'sivilstatus.spm.begrunnelse', flersvar: false, diff --git "a/src/s\303\270knad/steg/1-omdeg/sivilstatus/S\303\270kerErGift.tsx" "b/src/s\303\270knad/steg/1-omdeg/sivilstatus/S\303\270kerErGift.tsx" index 337ebf087..56ee63d2f 100644 --- "a/src/s\303\270knad/steg/1-omdeg/sivilstatus/S\303\270kerErGift.tsx" +++ "b/src/s\303\270knad/steg/1-omdeg/sivilstatus/S\303\270kerErGift.tsx" @@ -3,7 +3,7 @@ import KomponentGruppe from '../../../../components/gruppe/KomponentGruppe'; import JaNeiSpørsmål from '../../../../components/spørsmål/JaNeiSpørsmål'; import LocaleTekst from '../../../../language/LocaleTekst'; import { ISpørsmål, ISvar } from '../../../../models/felles/spørsmålogsvar'; -import { SeparasjonSpørsmål } from './SivilstatusConfig'; +import { harSøktSeparasjonSpørsmål } from './SivilstatusConfig'; import SøkerHarSøktSeparasjon from './SøkerHarSøktSeparasjon'; import { ISivilstatus } from '../../../../models/steg/omDeg/sivilstatus'; import styled from 'styled-components'; @@ -25,7 +25,7 @@ const SøkerErGift: React.FC = ({ settDato, sivilstatus, }) => { - const separasjonsSpørsmål: ISpørsmål = SeparasjonSpørsmål( + const separasjonsSpørsmål: ISpørsmål = harSøktSeparasjonSpørsmål( useLokalIntlContext() ); const { harSøktSeparasjon } = sivilstatus; diff --git "a/src/s\303\270knad/steg/1-omdeg/sivilstatus/begrunnelse/DatoForSamlivsbrudd.tsx" "b/src/s\303\270knad/steg/1-omdeg/sivilstatus/begrunnelse/DatoForSamlivsbrudd.tsx" index 4fa0a8566..d45b5d3bf 100644 --- "a/src/s\303\270knad/steg/1-omdeg/sivilstatus/begrunnelse/DatoForSamlivsbrudd.tsx" +++ "b/src/s\303\270knad/steg/1-omdeg/sivilstatus/begrunnelse/DatoForSamlivsbrudd.tsx" @@ -1,12 +1,12 @@ import React from 'react'; -import LocaleTekst from '../../../../../language/LocaleTekst'; -import KomponentGruppe from '../../../../../components/gruppe/KomponentGruppe'; -import { IDatoFelt } from '../../../../../models/søknad/søknadsfelter'; -import AlertStripeDokumentasjon from '../../../../../components/AlertstripeDokumentasjon'; import { Datovelger, DatoBegrensning, } from '../../../../../components/dato/Datovelger'; +import LocaleTekst from '../../../../../language/LocaleTekst'; +import KomponentGruppe from '../../../../../components/gruppe/KomponentGruppe'; +import { IDatoFelt } from '../../../../../models/søknad/søknadsfelter'; +import AlertStripeDokumentasjon from '../../../../../components/AlertstripeDokumentasjon'; interface Props { settDato: (date: string, objektnøkkel: string, tekstid: string) => void; @@ -23,10 +23,8 @@ const DatoForSamlivsbrudd: React.FC = ({ <> - settDato(e, 'datoForSamlivsbrudd', datovelgerLabel) - } - valgtDato={datoForSamlivsbrudd ? datoForSamlivsbrudd.verdi : ''} + settDato={(e) => settDato(e, 'datoForSamlivsbrudd', datovelgerLabel)} + valgtDato={datoForSamlivsbrudd ? datoForSamlivsbrudd?.verdi : ''} tekstid={datovelgerLabel} datobegrensning={DatoBegrensning.TidligereDatoer} /> diff --git "a/src/s\303\270knad/steg/1-omdeg/sivilstatus/begrunnelse/S\303\270knadsBegrunnelse.tsx" "b/src/s\303\270knad/steg/1-omdeg/sivilstatus/begrunnelse/\303\205rsakEnslig.tsx" similarity index 97% rename from "src/s\303\270knad/steg/1-omdeg/sivilstatus/begrunnelse/S\303\270knadsBegrunnelse.tsx" rename to "src/s\303\270knad/steg/1-omdeg/sivilstatus/begrunnelse/\303\205rsakEnslig.tsx" index a1f8ab946..1975f4bf8 100644 --- "a/src/s\303\270knad/steg/1-omdeg/sivilstatus/begrunnelse/S\303\270knadsBegrunnelse.tsx" +++ "b/src/s\303\270knad/steg/1-omdeg/sivilstatus/begrunnelse/\303\205rsakEnslig.tsx" @@ -1,11 +1,10 @@ import React, { FC, useEffect, useState } from 'react'; - import DatoForSamlivsbrudd from './DatoForSamlivsbrudd'; import EndringISamvær from './EndringISamvær'; import KomponentGruppe from '../../../../../components/gruppe/KomponentGruppe'; import MultiSvarSpørsmål from '../../../../../components/spørsmål/MultiSvarSpørsmål'; import NårFlyttetDereFraHverandre from './NårFlyttetDereFraHverandre'; -import { BegrunnelseSpørsmål } from '../SivilstatusConfig'; +import { begrunnelseSpørsmål } from '../SivilstatusConfig'; import FeltGruppe from '../../../../../components/gruppe/FeltGruppe'; import IdentEllerFødselsdatoGruppe from '../../../../../components/gruppe/IdentEllerFødselsdatoGruppe'; import { @@ -41,7 +40,7 @@ interface Props { ) => void; } -const Søknadsbegrunnelse: FC = ({ +const ÅrsakEnslig: FC = ({ sivilstatus, settSivilstatus, settDato, @@ -49,7 +48,7 @@ const Søknadsbegrunnelse: FC = ({ settMedlemskap, }) => { const intl = useLokalIntlContext(); - const spørsmål: ISpørsmål = BegrunnelseSpørsmål(intl); + const spørsmål: ISpørsmål = begrunnelseSpørsmål(intl); const { årsakEnslig, @@ -79,7 +78,7 @@ const Søknadsbegrunnelse: FC = ({ tidligereSamboerDetaljer: samboerInfo, }); // eslint-disable-next-line - }, [samboerInfo]); + }, [samboerInfo, datoFlyttetFraHverandre]); useEffect(() => { erGyldigIdent && @@ -276,4 +275,4 @@ const Søknadsbegrunnelse: FC = ({ ); }; -export default Søknadsbegrunnelse; +export default ÅrsakEnslig; diff --git a/src/utils/sivilstatus.ts b/src/utils/sivilstatus.ts index 7422895b6..22ff1c24a 100644 --- a/src/utils/sivilstatus.ts +++ b/src/utils/sivilstatus.ts @@ -1,42 +1,62 @@ import { ESivilstand, ISivilstatus } from '../models/steg/omDeg/sivilstatus'; import { ISpørsmål } from '../models/felles/spørsmålogsvar'; +export const sivilstandGift = [ + ESivilstand.GIFT, + ESivilstand.REPA, + ESivilstand.REGISTRERT_PARTNER, +]; + +export const sivilstandUgift = [ + ESivilstand.UGIF, + ESivilstand.UGIFT, + ESivilstand.UOPPGITT, +]; +export const sivilstandEnke = [ + ESivilstand.ENKE, + ESivilstand.GJPA, + ESivilstand.ENKE_ELLER_ENKEMANN, + ESivilstand.GJENLEVENDE_PARTNER, +]; +export const sivilstandSeparert = [ + ESivilstand.SEPA, + ESivilstand.SEPR, + ESivilstand.SEPARERT, + ESivilstand.SEPARERT_PARTNER, +]; +export const sivilstandSkilt = [ + ESivilstand.SKIL, + ESivilstand.SKPA, + ESivilstand.SKILT, + ESivilstand.SKILT_PARTNER, +]; + export const erSøkerGift = (sivilstand?: string) => - sivilstand === ESivilstand.GIFT || - sivilstand === ESivilstand.REPA || - sivilstand === ESivilstand.REGISTRERT_PARTNER; + sivilstandGift.some((s) => s === sivilstand); -export const erSøkerUgift = (sivilstand?: string) => - sivilstand === ESivilstand.UGIF || - sivilstand === ESivilstand.UGIFT || - sivilstand === ESivilstand.UOPPGITT || - sivilstand === null || - sivilstand === 'NULL'; +export const erSøkerUgift = (sivilstand?: string): boolean => { + return ( + sivilstandUgift.some((s) => s === sivilstand) || + sivilstand === null || + sivilstand === 'NULL' + ); +}; export const erSøkerEnke = (sivilstand?: string) => - sivilstand === ESivilstand.ENKE || - sivilstand === ESivilstand.GJPA || - sivilstand === ESivilstand.ENKE_ELLER_ENKEMANN || - sivilstand === ESivilstand.GJENLEVENDE_PARTNER; + sivilstandEnke.some((s) => s === sivilstand); export const erSøkerSeparert = (sivilstand?: string) => - sivilstand === ESivilstand.SEPA || - sivilstand === ESivilstand.SEPR || - sivilstand === ESivilstand.SEPARERT || - sivilstand === ESivilstand.SEPARERT_PARTNER; + sivilstandSeparert.some((s) => s === sivilstand); export const erSøkerSkilt = (sivilstand?: string) => - sivilstand === ESivilstand.SKIL || - sivilstand === ESivilstand.SKPA || - sivilstand === ESivilstand.SKILT || - sivilstand === ESivilstand.SKILT_PARTNER; + sivilstandSkilt.some((s) => s === sivilstand); export const hentValgtSvar = ( spørsmål: ISpørsmål, sivilstatus: ISivilstatus ) => { for (const [key, value] of Object.entries(sivilstatus)) { - if (key === spørsmål.søknadid && value !== undefined) { + if (key === spørsmål.søknadid && value !== undefined && value !== null) { return value.verdi; } } diff --git "a/src/utils/s\303\270knad.ts" "b/src/utils/s\303\270knad.ts" index d2a2e64dc..fd4ec9aad 100644 --- "a/src/utils/s\303\270knad.ts" +++ "b/src/utils/s\303\270knad.ts" @@ -11,15 +11,19 @@ import { } from '../helpers/labels'; import { IBarn } from '../models/steg/barn'; import { LokalIntlShape } from '../language/typer'; +import { ForrigeSøknad } from '../barnetilsyn/models/søknad'; + +const axiosConfig = { + withCredentials: true, + headers: { + 'Content-Type': 'application/json', + accept: 'application/json', + }, +}; export const hentPersonData = () => { return axios - .get(`${Environment().apiProxyUrl}/api/oppslag/sokerinfo`, { - headers: { - 'Content-Type': 'application/json;charset=utf-8', - }, - withCredentials: true, - }) + .get(`${Environment().apiProxyUrl}/api/oppslag/sokerinfo`, axiosConfig) .then((response) => { return response && response.data; }); @@ -27,12 +31,7 @@ export const hentPersonData = () => { export const hentPersonDataArbeidssoker = () => { return axios - .get(`${Environment().apiProxyUrl}/api/oppslag/sokerminimum`, { - headers: { - 'Content-Type': 'application/json;charset=utf-8', - }, - withCredentials: true, - }) + .get(`${Environment().apiProxyUrl}/api/oppslag/sokerminimum`, axiosConfig) .then((response: { data: any }) => { return response && response.data; }); @@ -42,13 +41,7 @@ export const hentMellomlagretSøknadFraDokument = ( stønadstype: MellomlagredeStønadstyper ): Promise => { return axios - .get(`${Environment().mellomlagerProxyUrl + stønadstype}`, { - withCredentials: true, - headers: { - 'Content-Type': 'application/json', - accept: 'application/json', - }, - }) + .get(`${Environment().mellomlagerProxyUrl + stønadstype}`, axiosConfig) .then((response: { data?: T }) => { return response.data; }); @@ -61,26 +54,26 @@ export const mellomlagreSøknadTilDokument = ( return axios.post( `${Environment().mellomlagerProxyUrl + stønadstype}`, søknad, - { - withCredentials: true, - headers: { - 'Content-Type': 'application/json', - accept: 'application/json', - }, - } + axiosConfig ); }; +export const hentDataFraForrigeBarnetilsynSøknad = + async (): Promise => { + const response = await axios.get( + `${Environment().apiProxyUrl + '/api/soknadbarnetilsyn/forrige'}`, + axiosConfig + ); + return response.data; + }; + export const nullstillMellomlagretSøknadTilDokument = ( stønadstype: MellomlagredeStønadstyper ): Promise => { - return axios.delete(`${Environment().mellomlagerProxyUrl + stønadstype}`, { - withCredentials: true, - headers: { - 'Content-Type': 'application/json', - accept: 'application/json', - }, - }); + return axios.delete( + `${Environment().mellomlagerProxyUrl + stønadstype}`, + axiosConfig + ); }; export const hentTekst = (id: string, intl: LokalIntlShape) => {