|
1 | 1 | import { ChevronUpIcon, ChevronDownIcon } from '@navikt/aksel-icons';
|
2 | 2 | import { Alert, Button, LinkPanel, Popover } from '@navikt/ds-react';
|
3 |
| -import { isEmpty } from 'fp-ts/lib/Array'; |
| 3 | +import { partition, isEmpty } from 'fp-ts/Array'; |
4 | 4 | import { useState } from 'react';
|
5 | 5 | import { useOutletContext } from 'react-router-dom';
|
6 | 6 |
|
@@ -78,14 +78,46 @@ const Sakintro = () => {
|
78 | 78 | const åpneRevurderinger = props.sak.revurderinger.filter(erRevurderingÅpen);
|
79 | 79 | const åpneReguleringer = props.sak.reguleringer.filter(erReguleringÅpen);
|
80 | 80 | const åpneKlager = props.sak.klager.filter(erKlageÅpen);
|
| 81 | + |
81 | 82 | const åpneSøknader = props.sak.søknader
|
82 | 83 | .filter((søknad) => {
|
83 |
| - const søknadsbehandling = props.sak.behandlinger.find((b) => b.søknad.id === søknad.id); |
84 |
| - return erSøknadÅpen(søknad) && (!søknadsbehandling || erSøknadsbehandlingÅpen(søknadsbehandling)); |
| 84 | + const søknadsbehandlinger = props.sak.behandlinger.filter((b) => b.søknad.id === søknad.id); |
| 85 | + const parts = partition(erSøknadsbehandlingÅpen)(søknadsbehandlinger); |
| 86 | + |
| 87 | + const harÅpenSøknad = erSøknadÅpen(søknad); |
| 88 | + const harÅpenSøknadsbehandling = parts.right.length > 0; |
| 89 | + const harIkkeÅpenSøknadsbehandling = parts.right.length === 0; |
| 90 | + const harAvslåttSøknadsbehandling = parts.left.length > 0; |
| 91 | + const harIkkeAvslåttSøknadsbehandling = parts.left.length === 0; |
| 92 | + const harIkkeSøknadsbehandling = harIkkeAvslåttSøknadsbehandling && harIkkeÅpenSøknadsbehandling; |
| 93 | + |
| 94 | + const harSøknadMenIngenBehandling = harÅpenSøknad && harIkkeSøknadsbehandling; |
| 95 | + const harSøknadMedEnBehandling = harÅpenSøknad && (harÅpenSøknadsbehandling || harAvslåttSøknadsbehandling); |
| 96 | + const harSøknadMedFlereBehandlinger = |
| 97 | + harÅpenSøknad && harÅpenSøknadsbehandling && harAvslåttSøknadsbehandling; |
| 98 | + |
| 99 | + if (harSøknadMenIngenBehandling) { |
| 100 | + return true; |
| 101 | + } else if (harSøknadMedEnBehandling) { |
| 102 | + if (harÅpenSøknadsbehandling) { |
| 103 | + return true; |
| 104 | + } else if (harAvslåttSøknadsbehandling) { |
| 105 | + return false; |
| 106 | + } |
| 107 | + } else if (harSøknadMedFlereBehandlinger) { |
| 108 | + return true; |
| 109 | + } |
| 110 | + |
| 111 | + return false; |
85 | 112 | })
|
86 |
| - .map((åpenSøknad) => { |
87 |
| - const søknadsbehandling = props.sak.behandlinger.find((b) => b.søknad.id === åpenSøknad.id); |
88 |
| - return { søknad: åpenSøknad, søknadsbehandling: søknadsbehandling }; |
| 113 | + .flatMap((åpenSøknad) => { |
| 114 | + const søknadsbehandlinger = props.sak.behandlinger.filter((b) => b.søknad.id === åpenSøknad.id); |
| 115 | + |
| 116 | + const åpneSøknadsbehandlinger = søknadsbehandlinger.filter(erSøknadsbehandlingÅpen); |
| 117 | + |
| 118 | + return åpneSøknadsbehandlinger.length > 0 |
| 119 | + ? åpneSøknadsbehandlinger.map((b) => ({ søknad: åpenSøknad, søknadsbehandling: b })) |
| 120 | + : { søknad: åpenSøknad }; |
89 | 121 | });
|
90 | 122 |
|
91 | 123 | const åpneTilbakekrevingsbehandlinger = props.sak.tilbakekrevinger.filter(erTilbakekrevingsbehandlingÅpen);
|
|
0 commit comments