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)
+ );
+}