Skip to content

Commit 6b04cc4

Browse files
authored
Merge pull request #4247 from navikt/feature/kdi-institusjonsopphold-frontend
Feature/kdi institusjonsopphold frontend
2 parents 6ae6b3f + 590779a commit 6b04cc4

33 files changed

Lines changed: 1232 additions & 55 deletions

apps/dolly-frontend/src/main/js/src/api/index.ts

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,22 @@ export const multiFetcherInst = (miljoUrlListe, headers = null, path = null) =>
3535
),
3636
)
3737

38+
export const postFetcher = (url, body) =>
39+
axios
40+
.post(url, body, { headers: { 'Content-Type': 'application/json' } })
41+
.then((res) => {
42+
if (res.status === 404) {
43+
return null
44+
}
45+
return res.data
46+
})
47+
.catch((reason) => {
48+
if (reason.code === 'ECONNABORTED' || reason.message?.includes('timeout')) {
49+
throw new Error(`Tjenesten tok for lang tid å svare: ${url}`)
50+
}
51+
throw new Error(`Henting av data fra ${url} feilet.`)
52+
})
53+
3854
export const multiFetcherArena = (miljoUrlListe, headers = null) =>
3955
Promise.all(
4056
miljoUrlListe?.map((obj) =>

apps/dolly-frontend/src/main/js/src/components/bestilling/sammendrag/bestillingsdata/Bestillingsdata.tsx

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,7 @@ import { AlderspensjonNyUttaksgrad } from '@/components/fagsystem/alderspensjon/
5858
import { SigrunstubSummertSkattegrunnlag } from '@/components/fagsystem/sigrunstubSummertSkattegrunnlag/bestilling/SigrunstubSummertSkattegrunnlag'
5959
import { ErrorBoundary } from '@/components/ui/appError/ErrorBoundary'
6060
import { KelvinAap } from '@/components/fagsystem/kelvin/bestilling/KelvinAap'
61+
import { KdiBestilling } from '@/components/fagsystem/kdi/bestilling/KdiBestilling'
6162

6263
type BestillingsdataTypes = {
6364
bestilling: any
@@ -138,6 +139,7 @@ export const Bestillingsdata = ({ bestilling, erGruppevisning = false }: Bestill
138139
kontaktinformasjonForDoedsboListe={bestilling.pdldata?.person?.kontaktinformasjonForDoedsbo}
139140
/>
140141
<Inst inst={bestilling.instdata} />
142+
<KdiBestilling kdi={bestilling.instdataKdi} />
141143
<Krrstub krrstub={bestilling.krrstub} />
142144
<Medl medl={bestilling.medl} />
143145
<Udistub udistub={bestilling.udistub} />

apps/dolly-frontend/src/main/js/src/components/bestillingsveileder/stegVelger/steg/steg1/paneler/Institusjonsopphold.tsx

Lines changed: 47 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -9,48 +9,77 @@ import {
99
} from '@/components/bestillingsveileder/BestillingsveilederContext'
1010
import { useContext } from 'react'
1111
import { getTimeoutAttr } from '@/components/bestillingsveileder/utils/timeoutTitle'
12+
import {
13+
initialKdi,
14+
initialKdiTesting,
15+
instdataKdiAttributt,
16+
} from '@/components/fagsystem/kdi/initialValues'
1217

1318
export const InstitusjonsoppholdPanel = ({ stateModifier, formValues }: any) => {
1419
const sm = stateModifier(InstitusjonsoppholdPanel.initialValues)
1520
const opts: any = useContext(BestillingsveilederContext) as BestillingsveilederContextType
1621
const instTimeout = getTimeoutAttr('INST', opts)
22+
const kdiTimeout = getTimeoutAttr('INST_KDI', opts)
23+
1724
return (
1825
<Panel
1926
heading={InstitusjonsoppholdPanel.heading}
2027
checkAttributeArray={sm.batchAdd as any}
2128
uncheckAttributeArray={sm.batchRemove as any}
2229
iconType="institusjon"
23-
startOpen={harValgtAttributt(formValues, [instAttributt])}
30+
startOpen={harValgtAttributt(formValues, [instAttributt, instdataKdiAttributt])}
2431
>
2532
<AttributtKategori attr={sm.attrs}>
2633
<Attributt
2734
attr={sm.attrs.instdata}
2835
disabled={instTimeout.disabled}
2936
title={instTimeout.title}
3037
/>
38+
<Attributt
39+
attr={sm.attrs.instdataKdi}
40+
disabled={kdiTimeout.disabled}
41+
title={kdiTimeout.title}
42+
/>
3143
</AttributtKategori>
3244
</Panel>
3345
)
3446
}
3547

3648
InstitusjonsoppholdPanel.heading = 'Institusjonsopphold'
3749

38-
InstitusjonsoppholdPanel.initialValues = ({ set, del, has }: any) => ({
39-
instdata: {
40-
label: 'Har institusjonsopphold',
41-
checked: has('instdata'),
42-
add() {
43-
set('instdata', [
44-
{
45-
institusjonstype: runningE2ETest() ? 'AS' : '',
46-
startdato: runningE2ETest() ? new Date() : '',
47-
forventetSluttdato: '',
48-
sluttdato: '',
49-
},
50-
])
50+
InstitusjonsoppholdPanel.initialValues = ({ set, opts, del, has }: any) => {
51+
const eksisterendeKdiData = opts?.personFoerLeggTil?.instdataKdi
52+
53+
return {
54+
instdata: {
55+
label: 'Institusjonsopphold',
56+
checked: has('instdata'),
57+
add() {
58+
set('instdata', [
59+
{
60+
institusjonstype: runningE2ETest() ? 'AS' : '',
61+
startdato: runningE2ETest() ? new Date() : '',
62+
forventetSluttdato: '',
63+
sluttdato: '',
64+
},
65+
])
66+
},
67+
remove() {
68+
del('instdata')
69+
},
5170
},
52-
remove() {
53-
del('instdata')
71+
instdataKdi: {
72+
label: 'KDI-meldinger',
73+
checked: has('instdataKdi'),
74+
add() {
75+
set(
76+
'instdataKdi',
77+
runningE2ETest() ? initialKdiTesting : (eksisterendeKdiData ?? initialKdi),
78+
)
79+
},
80+
remove() {
81+
del('instdataKdi')
82+
},
5483
},
55-
},
56-
})
84+
}
85+
}

apps/dolly-frontend/src/main/js/src/components/bestillingsveileder/stegVelger/steg/steg2/DollyIdentValidation.tsx

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ import { validation as sykdomValidation } from '@/components/fagsystem/sykdom/fo
2828
import { validation as pdlfValidation } from '@/components/fagsystem/pdlf/form/validation/validation'
2929
import BankkontoForm from '@/components/fagsystem/bankkonto/form/Form'
3030
import { KelvinAapForm } from '@/components/fagsystem/kelvin/form/Form'
31+
import { KdiForm } from '@/components/fagsystem/kdi/form/Form'
3132

3233
export const DollyIdentValidation = Yup.object({
3334
antall: ifPresent(
@@ -53,6 +54,7 @@ export const DollyIdentValidation = Yup.object({
5354
...YrkesskaderForm.validation,
5455
...BrregstubForm.validation,
5556
...InstForm.validation,
57+
...KdiForm.validation,
5658
...KrrstubForm.validation,
5759
...MedlForm.validation,
5860
...KelvinAapForm.validation,

apps/dolly-frontend/src/main/js/src/components/bestillingsveileder/stegVelger/steg/steg2/Steg2.tsx

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,7 @@ import {
4848
} from '@/components/fagsystem/alderspensjon/form/AlderspensjonNyUttaksgradForm'
4949
import BankkontoForm from '@/components/fagsystem/bankkonto/form/Form'
5050
import { KelvinAapForm } from '@/components/fagsystem/kelvin/form/Form'
51+
import { KdiForm } from '@/components/fagsystem/kdi/form/Form'
5152

5253
const HistarkForm = lazy(() => import('@/components/fagsystem/histark/form/HistarkForm'))
5354
const DokarkivForm = lazy(() => import('@/components/fagsystem/dokarkiv/form/DokarkivForm'))
@@ -113,6 +114,7 @@ const Steg2: React.FC = () => {
113114
{getValues('bankkonto') && <BankkontoForm />}
114115
{getValues('brregstub') && <BrregstubForm />}
115116
{getValues('instdata') && <InstForm />}
117+
{getValues('instdataKdi') && <KdiForm />}
116118
{getValues('krrstub') && <KrrstubForm />}
117119
{getValues('medl') && <MedlForm />}
118120
{getValues('udistub') && <UdistubForm />}

apps/dolly-frontend/src/main/js/src/components/bestillingsveileder/stegVelger/steg/steg3/Steg3.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ const Steg3 = ({ loadingBestilling }: { loadingBestilling: boolean }) => {
4646
(values.pensjonforvalter && values.sykemelding)
4747
) {
4848
return ['q1', 'q2']
49-
} else if (values.pensjonforvalter) {
49+
} else if (values.pensjonforvalter || values.instdataKdi) {
5050
return ['q2']
5151
} else if (values.sykemelding) {
5252
return ['q1']

apps/dolly-frontend/src/main/js/src/components/bestillingsveileder/utils.tsx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,7 @@ export const rootPaths = [
6969
'pensjonforvalter',
7070
'inntektstub',
7171
'instdata',
72+
'instdataKdi',
7273
'krrstub',
7374
'kelvinAap',
7475
'arenaforvalter',

apps/dolly-frontend/src/main/js/src/components/bestillingsveileder/utils/timeoutTitle.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ const names: Record<string, string> = {
1111
YRKESSKADE: 'Yrkesskade',
1212
BRREG: 'Brreg',
1313
INST: 'Institusjonsopphold',
14+
INST_KDI: 'KDI',
1415
ARBEIDSPLASSENCV: 'Nav CV',
1516
}
1617

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
import { ErrorBoundary } from '@/components/ui/appError/ErrorBoundary'
2+
import React from 'react'
3+
import { DollyFieldArray } from '@/components/ui/form/fieldArray/DollyFieldArray'
4+
import { BestillingTitle } from '@/components/bestillingsveileder/stegVelger/steg/steg3/Bestillingsvisning'
5+
import { KdiMelding } from '@/components/fagsystem/kdi/visning/KdiVisning'
6+
import { publiseringstidspunktTid } from '@/components/fagsystem/kdi/form/Form'
7+
import { KdiMeldingProps, KdiProps } from '@/components/fagsystem/kdi/form/partials/types'
8+
9+
export const KdiBestilling = ({ kdi }: { kdi: KdiProps }) => {
10+
if (!kdi) {
11+
return null
12+
}
13+
14+
const annullering = kdi.annullering
15+
16+
const meldinger = Object.entries(kdi)
17+
.flatMap(([type, values]) => values?.map((melding) => ({ ...melding, type })))
18+
?.filter((melding) => melding && melding.type !== 'annullering')
19+
?.sort(
20+
(a, b) =>
21+
publiseringstidspunktTid(a.publiseringstidspunkt) -
22+
publiseringstidspunktTid(b.publiseringstidspunkt),
23+
)
24+
25+
return (
26+
<div className="bestilling-visning">
27+
<ErrorBoundary>
28+
<BestillingTitle>KDI-meldinger</BestillingTitle>
29+
<DollyFieldArray data={meldinger} nested>
30+
{(melding: KdiMeldingProps, idx: number) => (
31+
<KdiMelding melding={melding} id={idx} annulleringListe={annullering} />
32+
)}
33+
</DollyFieldArray>
34+
</ErrorBoundary>
35+
</div>
36+
)
37+
}

0 commit comments

Comments
 (0)