Skip to content
This repository has been archived by the owner on Jun 7, 2024. It is now read-only.

Commit

Permalink
<OpplysningerOmArbeidssokerKomponent>
Browse files Browse the repository at this point in the history
- bruker opplysningerOmArbeidssoker fra nytt api
  • Loading branch information
jstnhlj committed Feb 15, 2024
1 parent c27f29f commit 65f149d
Show file tree
Hide file tree
Showing 7 changed files with 206 additions and 61 deletions.
8 changes: 4 additions & 4 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -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.2.0",
"@navikt/arbeidssokerregisteret-utils": "0.8.0",
"classnames": "2.5.1",
"core-js": "3.35.0",
"intersection-observer": "0.12.2",
Expand Down
25 changes: 17 additions & 8 deletions src/komponenter/innsyn/innsyn-les-mer.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,8 @@ import beregnArbeidssokerperioder from '../../lib/beregn-arbeidssokerperioder';
import Opplysninger from './registreringsopplysninger';
import PeriodeOpplysninger from './periodeopplysninger';
import { useBrukerregistreringData } from '../../hooks/use-brukerregistrering-data';
import { useOpplysningerOmArbeidssoker } from '../../contexts/opplysninger-om-arbeidssoker';
import OpplysningerOmArbeidssokerKomponent from './opplysninger-om-arbeidssoker-komponent';

const TEKSTER = {
nb: {
Expand Down Expand Up @@ -40,6 +42,9 @@ const InnsynLesMer = () => {
const kanVisePeriodeOpplysningerKomponent =
autentiseringData.securityLevel === InnloggingsNiva.LEVEL_4 && visPeriodeOpplysninger;

const { opplysningerOmArbeidssoker } = useOpplysningerOmArbeidssoker();
const visOpplysningerOmArbeidssoker = Boolean(opplysningerOmArbeidssoker[0]);

const handleClickOpenRegistreringsopplysninger = () => {
if (!clickedInnsyn) {
loggAktivitet({ aktivitet: 'Ser opplysninger fra registreringen', ...amplitudeData });
Expand All @@ -56,14 +61,18 @@ const InnsynLesMer = () => {

return kanViseRegistreringsOpplysningerKomponent ? (
<ReadMore size="medium" header={tekst('header')} onClick={handleClickOpenRegistreringsopplysninger}>
<Opplysninger
opprettetDato={opprettetDato}
manueltRegistrertAv={manueltRegistrertAv}
besvarelse={besvarelse}
teksterForBesvarelse={teksterForBesvarelse}
amplitudeData={amplitudeData}
sisteStilling={sisteStilling}
/>
{visOpplysningerOmArbeidssoker ? (
<OpplysningerOmArbeidssokerKomponent opplysninger={opplysningerOmArbeidssoker[0]} />
) : (
<Opplysninger
opprettetDato={opprettetDato}
manueltRegistrertAv={manueltRegistrertAv}
besvarelse={besvarelse}
teksterForBesvarelse={teksterForBesvarelse}
amplitudeData={amplitudeData}
sisteStilling={sisteStilling}
/>
)}
</ReadMore>
) : kanVisePeriodeOpplysningerKomponent ? (
<ReadMore size="medium" header={tekst('header')} onClick={handleClickOpenPeriodeopplysninger}>
Expand Down
40 changes: 40 additions & 0 deletions src/komponenter/innsyn/oppfolging.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
import lagHentTekstForSprak from '../../lib/lag-hent-tekst-for-sprak';
import { useSprakValg } from '../../contexts/sprak';
import { useBehovForVeiledning } from '../../contexts/behov-for-veiledning';
import spacing from '../../spacing.module.css';
import flexStyles from '../../flex.module.css';

const TEKSTER = {
nb: {
'oppfolging.STANDARD_INNSATS': 'Jeg ønsker å klare meg selv',
'oppfolging.SITUASJONSBESTEMT_INNSATS': 'Jeg ønsker oppfølging fra NAV',
'oppfolging.IKKE_BESVART': 'Ikke besvart',
},
en: {
'oppfolging.STANDARD_INNSATS': 'Jeg ønsker å klare meg selv',
'oppfolging.SITUASJONSBESTEMT_INNSATS': 'Jeg ønsker oppfølging fra NAV',
'oppfolging.IKKE_BESVART': 'Ikke besvart',
},
};

const Oppfolging = () => {
const tekst = lagHentTekstForSprak(TEKSTER, useSprakValg().sprak);
const { behovForVeiledning } = useBehovForVeiledning();

return (
<div className={`${spacing.blokkS}`}>
<div className={`${flexStyles.flex}`}>
<strong className={spacing.mr05}>Hva slags veiledning ønsker du?</strong>
</div>
<div>
<div className={`${flexStyles.flex} ${flexStyles.alignCenter} ${flexStyles.wrap}`}>
<div className={`${spacing.mr05} ${spacing.mb05}`}>
{tekst(`oppfolging.${behovForVeiledning?.oppfolging || 'IKKE_BESVART'}`)}
</div>
</div>
</div>
</div>
);
};

export default Oppfolging;
38 changes: 1 addition & 37 deletions src/komponenter/innsyn/opplysninger-fra-besvarelsen.tsx
Original file line number Diff line number Diff line change
@@ -1,10 +1,6 @@
import { BodyShort, Link } from '@navikt/ds-react';

import { useSprakValg } from '../../contexts/sprak';
import { useBehovForVeiledning } from '../../contexts/behov-for-veiledning';

import Feedback from '../feedback/feedback';
import lagHentTekstForSprak from '../../lib/lag-hent-tekst-for-sprak';
import { Besvarelse, BesvarelseResponse, DinSituasjonTilleggsdata } from '../../contexts/besvarelse';
import prettyPrintDato from '../../utils/pretty-print-dato';
import { sporsmalMap, svarMap } from '../../models/sporsmal-og-svar';
Expand All @@ -13,19 +9,7 @@ import TilleggsData from './tilleggsdata';

import spacing from '../../spacing.module.css';
import flexStyles from '../../flex.module.css';

const TEKSTER = {
nb: {
'oppfolging.STANDARD_INNSATS': 'Jeg ønsker å klare meg selv',
'oppfolging.SITUASJONSBESTEMT_INNSATS': 'Jeg ønsker oppfølging fra NAV',
'oppfolging.IKKE_BESVART': 'Ikke besvart',
},
en: {
'oppfolging.STANDARD_INNSATS': 'Jeg ønsker å klare meg selv',
'oppfolging.SITUASJONSBESTEMT_INNSATS': 'Jeg ønsker oppfølging fra NAV',
'oppfolging.IKKE_BESVART': 'Ikke besvart',
},
};
import Oppfolging from './oppfolging';

const Opplysning = (props: any) => {
const { sporsmal, svar, verdi, datapunkt, tilleggsData } = props;
Expand Down Expand Up @@ -63,26 +47,6 @@ const DinSituasjon = (props: any) => {
);
};

const Oppfolging = () => {
const tekst = lagHentTekstForSprak(TEKSTER, useSprakValg().sprak);
const { behovForVeiledning } = useBehovForVeiledning();

return (
<div className={`${spacing.blokkS}`}>
<div className={`${flexStyles.flex}`}>
<strong className={spacing.mr05}>Hva slags veiledning ønsker du?</strong>
</div>
<div>
<div className={`${flexStyles.flex} ${flexStyles.alignCenter} ${flexStyles.wrap}`}>
<div className={`${spacing.mr05} ${spacing.mb05}`}>
{tekst(`oppfolging.${behovForVeiledning?.oppfolging || 'IKKE_BESVART'}`)}
</div>
</div>
</div>
</div>
);
};

interface Svar {
sporsmal: string;
svar: string | null;
Expand Down
132 changes: 132 additions & 0 deletions src/komponenter/innsyn/opplysninger-om-arbeidssoker-komponent.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,132 @@
import {
OpplysningerOmArbeidssoker,
SPORSMAL_TEKSTER,
SporsmalId,
Svar,
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 prettyPrintDato from '../../utils/pretty-print-dato';
import Feedback from '../feedback/feedback';
import Oppfolging from './oppfolging';

type OpplysningProps = { sporsmal: string; svar: Svar };
const Opplysning = (props: OpplysningProps) => {
const tekst = lagHentTekstForSprak(SPORSMAL_TEKSTER, useSprakValg().sprak);
const { sporsmal, svar } = props;

return (
<div className={spacing.blokkS}>
<BodyShort>
<strong>{tekst(sporsmal)}</strong>
<br />
{tekst(svar as string) ?? svar}
</BodyShort>
</div>
);
};

function mapNuskodeTilUtdannignsnivaa(nus: string) {
switch (nus) {
case '0':
return Utdanningsnivaa.INGEN_UTDANNING;
case '2':
return Utdanningsnivaa.GRUNNSKOLE;
case '3':
return Utdanningsnivaa.VIDEREGAENDE_GRUNNUTDANNING;
case '4':
return Utdanningsnivaa.VIDEREGAENDE_FAGBREV_SVENNEBREV;
case '6':
return Utdanningsnivaa.HOYERE_UTDANNING_1_TIL_4;
case '7':
return Utdanningsnivaa.HOYERE_UTDANNING_5_ELLER_MER;
default:
return Utdanningsnivaa.INGEN_SVAR;
}
}

function getSisteStillingSvar(opplysninger: OpplysningerOmArbeidssoker) {
if (opplysninger.arbeidserfaring.harHattArbeid !== 'JA') {
return 'Ingen yrkeserfaring';
}

const detaljer = opplysninger.jobbsituasjon[0]?.detaljer;
return detaljer?.stilling || 'Ikke oppgitt';
}

function mapOpplysninger(opplysninger: OpplysningerOmArbeidssoker): OpplysningProps[] {
const result: OpplysningProps[] = [
{
sporsmal: SporsmalId.dinSituasjon,
svar: opplysninger.jobbsituasjon[0].beskrivelse,
},
{
sporsmal: SporsmalId.sisteStilling,
svar: getSisteStillingSvar(opplysninger),
},
{
sporsmal: SporsmalId.utdanning,
svar: mapNuskodeTilUtdannignsnivaa(opplysninger.utdanning.nus),
},
{
sporsmal: SporsmalId.utdanningBestatt,
svar: opplysninger.utdanning.bestaatt,
},
{
sporsmal: SporsmalId.utdanningGodkjent,
svar: opplysninger.utdanning.godkjent,
},
{
sporsmal: SporsmalId.helseHinder,
svar: opplysninger.helse.helseTilstandHindrerArbeid,
},
];

return result;
}

type Props = {
opplysninger: OpplysningerOmArbeidssoker;
};
function OpplysningerOmArbeidssokerKomponent(props: Props) {
const { opplysninger } = props;
const opprettetDato = opplysninger.sendtInnAv.tidspunkt;
const erRegistrertAvSluttbruker = opplysninger.sendtInnAv.utfoertAv.type === 'SLUTTBRUKER';
const besvarelser = mapOpplysninger(opplysninger);

return (
<div className={`${flexStyles.flex} ${flexStyles.flexColumn}`}>
<div className={spacing.blokkS}>
<BodyShort>
Du kan endre opplysningene du ga ved å kontakte NAV.
<br />
Veilederen din bruker opplysningene for å vurdere hvor mye veiledning du trenger.
</BodyShort>
</div>
<div className={`${spacing.blokkS}`}>
<div className={`${flexStyles.flex}`}>
<strong className={spacing.mr05}>Registrering</strong>
</div>
<div>
<div className={`${flexStyles.flex} ${flexStyles.alignCenter} ${flexStyles.wrap}`}>
<div className={`${spacing.mr05} ${spacing.mb05}`}>
{erRegistrertAvSluttbruker ? 'Du' : 'NAV'} registrerte deg som arbeidssøker{' '}
{prettyPrintDato(opprettetDato)}
</div>
</div>
</div>
</div>
<Oppfolging />
{besvarelser.map((item, index) => (
<Opplysning {...item} key={index} />
))}
<Feedback id={'svar-fra-registreringen'} />
</div>
);
}

export default OpplysningerOmArbeidssokerKomponent;
22 changes: 11 additions & 11 deletions src/mocks/opplysninger-om-arbeidssoker-mock.ts
Original file line number Diff line number Diff line change
@@ -1,33 +1,33 @@
const opplysningerOmArbeidssoker = [
{
opplysningerOmArbeidssoekerId: '3fa85f64-5717-4562-b3fc-2c963f66afa6',
periodeId: '3fa85f64-5717-4562-b3fc-2c963f66afa6',
opplysningerOmArbeidssoekerId: '8d8e8ff8-15f2-40e7-aed8-2ed2e8aa92ad',
periodeId: 'd71f3453-8a13-4091-b85a-2a39e00b2c62',
sendtInnAv: {
tidspunkt: '2021-09-29T11:22:33.444Z',
tidspunkt: '2024-02-13T07:31:35Z',
utfoertAv: {
type: 'UKJENT_VERDI',
type: 'SLUTTBRUKER',
},
kilde: 'string',
aarsak: 'string',
kilde: 'veilarbregistrering',
aarsak: 'manuell_insert',
},
utdanning: {
lengde: 'UKJENT_VERDI',
nus: '4',
bestaatt: 'JA',
godkjent: 'JA',
},
helse: {
helseTilstandHindrerArbeid: 'JA',
helseTilstandHindrerArbeid: 'NEI',
},
arbeidserfaring: {
harHattArbeid: 'JA',
},
annet: {
andreForholdHindrerArbeid: 'JA',
andreForholdHindrerArbeid: 'NEI',
},
jobbsituasjon: [
{
beskrivelse: 'UKJENT_VERDI',
detaljer: 'string',
beskrivelse: 'AKKURAT_FULLFORT_UTDANNING',
detaljer: {},
},
],
},
Expand Down

0 comments on commit 65f149d

Please sign in to comment.