diff --git a/package-lock.json b/package-lock.json index c1121c61..fd58990d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -14,7 +14,7 @@ "@grafana/faro-web-sdk": "1.3.5", "@grafana/faro-web-tracing": "1.3.5", "@navikt/aksel-icons": "5.13.0", - "@navikt/arbeidssokerregisteret-utils": "0.10.0", + "@navikt/arbeidssokerregisteret-utils": "0.12.0", "@navikt/ds-react": "5.13.0", "classnames": "2.5.1", "core-js": "3.35.0", @@ -3142,9 +3142,9 @@ "integrity": "sha512-8kM6PoCDQ3woYvBipO14p59PUHiwrdMDkfGsKvqCVrQG6AJfMGDEM/ly3mt3laK69tjgYi6/vgNVNZKzcPbDnQ==" }, "node_modules/@navikt/arbeidssokerregisteret-utils": { - "version": "0.10.0", - "resolved": "https://npm.pkg.github.com/download/@navikt/arbeidssokerregisteret-utils/0.10.0/abadf8e49b24d5299060a396a915fbcf86ebc23f", - "integrity": "sha512-PRBzTAN3kTPvMbVTgat4J4U5ac9z7AzHogMwkyrX+nDq1fWqrn/XhWngX8YZbZEx8ijclAZujitApjFriqFUJw==", + "version": "0.12.0", + "resolved": "https://npm.pkg.github.com/download/@navikt/arbeidssokerregisteret-utils/0.12.0/76364ae01a6bf66263dd73498f60342855d3d7f5", + "integrity": "sha512-/CQnxScdn8PdHE0MSzUXPCUTmWdemMdz6vrC+ZKeY3S90nOjmeGBpY0WbIiOcnxGClWAuccvFkLRBspk0D2qrw==", "license": "ISC", "engines": { "node": ">=20.11.0" diff --git a/package.json b/package.json index 4d9619fe..08ad54ec 100644 --- a/package.json +++ b/package.json @@ -26,7 +26,7 @@ "@grafana/faro-web-tracing": "1.3.5", "@navikt/aksel-icons": "5.13.0", "@navikt/ds-react": "5.13.0", - "@navikt/arbeidssokerregisteret-utils": "0.10.0", + "@navikt/arbeidssokerregisteret-utils": "0.12.0", "classnames": "2.5.1", "core-js": "3.35.0", "intersection-observer": "0.12.2", diff --git a/src/komponenter/innsyn/opplysninger-om-arbeidssoker-komponent.tsx b/src/komponenter/innsyn/opplysninger-om-arbeidssoker-komponent.tsx index 0fe894ae..f62915a1 100644 --- a/src/komponenter/innsyn/opplysninger-om-arbeidssoker-komponent.tsx +++ b/src/komponenter/innsyn/opplysninger-om-arbeidssoker-komponent.tsx @@ -6,15 +6,19 @@ import { Utdanningsnivaa, } from '@navikt/arbeidssokerregisteret-utils'; import { BodyShort } from '@navikt/ds-react'; -import spacing from '../../spacing.module.css'; -import flexStyles from '../../flex.module.css'; -import lagHentTekstForSprak from '../../lib/lag-hent-tekst-for-sprak'; + import { useSprakValg } from '../../contexts/sprak'; + +import lagHentTekstForSprak from '../../lib/lag-hent-tekst-for-sprak'; import prettyPrintDato from '../../utils/pretty-print-dato'; import Feedback from '../feedback/feedback'; import Oppfolging from './oppfolging'; -type OpplysningProps = { sporsmal: string; svar: Svar }; +import spacing from '../../spacing.module.css'; +import flexStyles from '../../flex.module.css'; + +type OpplysningProps = { sporsmal: string; svar: Svar | string }; + const Opplysning = (props: OpplysningProps) => { const tekst = lagHentTekstForSprak(SPORSMAL_TEKSTER, useSprakValg().sprak); const { sporsmal, svar } = props; diff --git a/src/komponenter/min-situasjon/min-situasjon.tsx b/src/komponenter/min-situasjon/min-situasjon.tsx index a90dd9c8..5c82d1d8 100644 --- a/src/komponenter/min-situasjon/min-situasjon.tsx +++ b/src/komponenter/min-situasjon/min-situasjon.tsx @@ -1,16 +1,20 @@ import { Box, Detail, Heading } from '@navikt/ds-react'; -import { useFeatureToggleData } from '../../contexts/feature-toggles'; +import { useFeatureToggleData, FeatureToggles } from '../../contexts/feature-toggles'; import { useAmplitudeData } from '../hent-initial-data/amplitude-provider'; import { useBesvarelse } from '../../contexts/besvarelse'; import { useArbeidssokerPerioder } from '../../contexts/arbeidssoker'; +import { useArbeidssokerperioder } from '../../contexts/arbeidssokerperioder'; +import { useOpplysningerOmArbeidssoker } from '../../contexts/opplysninger-om-arbeidssoker'; import { InnloggingsNiva, useAutentiseringData } from '../../contexts/autentisering'; import Sammendrag from './sammendrag'; import InnsynLesMer from '../innsyn/innsyn-les-mer'; import beregnArbeidssokerperioder from '../../lib/beregn-arbeidssokerperioder'; import EndreSituasjon from '../endre-situasjon/min-situasjon'; +import EndreSituasjonNyttApi from '../endre-situasjon-nytt-api/min-situasjon'; import { visBesvarelser } from '../../lib/vis-besvarelse'; +import { visBesvarelserNyttApi } from '../../lib/vis-besvarelse-nytt-api'; import spacingStyles from '../../spacing.module.css'; import { svarMap } from '../../models/sporsmal-og-svar'; import useErStandardInnsats from '../../hooks/use-er-standard-innsats'; @@ -21,9 +25,12 @@ import useSkalBrukeTabs from '../../hooks/use-skal-bruke-tabs'; function MinSituasjon() { const arbeidssokerperiodeData = useArbeidssokerPerioder(); + const arbeidssoekerPerioder = useArbeidssokerperioder().arbeidssokerperioder; + const opplysningerOmArbeidssoeker = useOpplysningerOmArbeidssoker().opplysningerOmArbeidssoker; const { amplitudeData } = useAmplitudeData(); const autentiseringData = useAutentiseringData(); const featuretoggleData = useFeatureToggleData(); + const brukOpplysningerApi = featuretoggleData[FeatureToggles.BRUK_OPPLYSNINGER_API] || false; const registreringData = useBrukerregistreringData(); const brukerInfoData = useBrukerInfoData(); @@ -39,6 +46,18 @@ function MinSituasjon() { const kanViseKomponent = autentiseringData.securityLevel === InnloggingsNiva.LEVEL_4 && harRegistreringData; const skalVisesITabs = useSkalBrukeTabs(); + const visEndreSituasjonNyttApi = brukOpplysningerApi + ? visBesvarelserNyttApi({ + brukerInfoData, + oppfolgingData, + featuretoggleData, + besvarelseData: besvarelse, + arbeidssoekerPerioder, + opplysningerOmArbeidssoeker, + erStandardInnsats, + }) + : false; + const visEndreSituasjon = visBesvarelser({ brukerInfoData, oppfolgingData, @@ -51,6 +70,10 @@ function MinSituasjon() { if (!kanViseKomponent) return null; + if (visEndreSituasjonNyttApi) { + return ; + } + if (visEndreSituasjon) { return ; } diff --git a/src/lib/vis-besvarelse-nytt-api.ts b/src/lib/vis-besvarelse-nytt-api.ts new file mode 100644 index 00000000..c454eeaf --- /dev/null +++ b/src/lib/vis-besvarelse-nytt-api.ts @@ -0,0 +1,70 @@ +import { + hentSisteArbeidssokerPeriode, + hentSisteOpplysningerOmArbeidssoker, + ArbeidssokerperioderResponse, + OpplysningerOmArbeidssokerResponse, +} from '@navikt/arbeidssokerregisteret-utils'; + +import * as Brukerregistrering from '../hooks/use-brukerregistrering-data'; +import * as Oppfolging from '../hooks/use-oppfolging-data'; +import * as BrukerInfo from '../hooks/use-brukerinfo-data'; +import * as FeatureToggles from '../contexts/feature-toggles'; +import { BesvarelseResponse } from '../contexts/besvarelse'; + +const DATO_FOR_LANSERING = new Date('2023-02-01'); + +export function visBesvarelserNyttApi({ + brukerInfoData, + oppfolgingData, + featuretoggleData, + besvarelseData, + arbeidssoekerPerioder, + opplysningerOmArbeidssoeker, + erStandardInnsats, +}: { + brukerInfoData: BrukerInfo.Data; + oppfolgingData: Oppfolging.Data; + featuretoggleData: FeatureToggles.FeatureToggleData; + besvarelseData: BesvarelseResponse | null; + arbeidssoekerPerioder: ArbeidssokerperioderResponse; + opplysningerOmArbeidssoeker: OpplysningerOmArbeidssokerResponse; + erStandardInnsats: boolean | undefined; +}): boolean { + const brukEndringAvSituasjon = featuretoggleData[FeatureToggles.FeatureToggles.BRUK_ENDRING_AV_SITUASJON] || false; + const brukOpplysningerApi = featuretoggleData[FeatureToggles.FeatureToggles.BRUK_OPPLYSNINGER_API] || false; + const toggleErAktiv = brukEndringAvSituasjon && brukOpplysningerApi; + const erAAP = brukerInfoData.rettighetsgruppe === 'AAP'; + const sisteArbeidssoekerPeriode = hentSisteArbeidssokerPeriode(arbeidssoekerPerioder); + const datoForRegistrering = sisteArbeidssoekerPeriode + ? new Date(sisteArbeidssoekerPeriode.startet.tidspunkt) + : new Date('2019-07-01'); + const sisteOpplysninger = hentSisteOpplysningerOmArbeidssoker(opplysningerOmArbeidssoeker); + + const erPermittert = + (sisteOpplysninger && + sisteOpplysninger.jobbsituasjon && + sisteOpplysninger.jobbsituasjon[0].beskrivelse === Brukerregistrering.DinSituasjonSvar.ER_PERMITTERT) || + false; + + const aldersgruppeUtenForsterketInnsats = brukerInfoData.alder >= 30 && brukerInfoData.alder <= 59; + + const harEndretBesvarelse = besvarelseData && besvarelseData.erBesvarelsenEndret; + + const erRegistrertEtterLansering = datoForRegistrering > DATO_FOR_LANSERING; + + const harAktivArbeidssokerperiode = sisteArbeidssoekerPeriode + ? sisteArbeidssoekerPeriode.avsluttet === null + : false; + + return ( + (harEndretBesvarelse && toggleErAktiv && harAktivArbeidssokerperiode) || + (toggleErAktiv && + harAktivArbeidssokerperiode && + erRegistrertEtterLansering && + erPermittert && + aldersgruppeUtenForsterketInnsats && + !erAAP && + Boolean(erStandardInnsats) && + !oppfolgingData.kanReaktiveres) + ); +}