Skip to content

Commit

Permalink
Implementerer rett funksjonalitet for inntektsmelding
Browse files Browse the repository at this point in the history
  • Loading branch information
ebelegu committed May 14, 2024
1 parent 160c20d commit cac6580
Show file tree
Hide file tree
Showing 2 changed files with 54 additions and 17 deletions.
67 changes: 52 additions & 15 deletions src/Pages/Saksoversikt/Saksfilter/Saksfilter.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ import {
Sakstype,
SakstypeOverordnet,
} from '../../../api/graphql-types';
import { sorted } from '../../../utils/util';
import { capitalize, sorted, splittListe } from '../../../utils/util';
import { Set } from 'immutable';
import { OrganisasjonerOgTilgangerContext } from '../../OrganisasjonerOgTilgangerProvider';
import amplitude from '../../../utils/amplitude';
Expand Down Expand Up @@ -112,40 +112,77 @@ const InntektsmeldingGruppe = (
filter: Filter,
setFilter: (filter: Filter) => void
) => {
const valgte = filter.sakstyper.filter((sakstype) => sakstype.includes('Inntektsmelding'));
const andreSakstyper = filter.sakstyper.filter(
(sakstype) => !sakstype.includes('Inntektsmelding')
const alleInntektsmeldingstypeNavn = inntektsmeldingSakstyper.map(({ navn }) => navn);

const inntektsmeldingAlleValgtAvBruker = filter.sakstyper.includes('INNTEKTSMELDING_GRUPPE');
const andreInntektsmeldingerValgt = filter.sakstyper.some(
(sakstype) => sakstype.includes('Inntektsmelding') && sakstype !== 'INNTEKTSMELDING_GRUPPE'
);

let [valgteInntektsmeldingtyper, andreSakstyper] = splittListe(filter.sakstyper, (navn) =>
navn.includes('Inntektsmelding')
);

if (inntektsmeldingAlleValgtAvBruker) {
valgteInntektsmeldingtyper = ['INNTEKTSMELDING_GRUPPE'];
} else if (andreInntektsmeldingerValgt) {
valgteInntektsmeldingtyper = [...valgteInntektsmeldingtyper, 'INNTEKTSMELDING_GRUPPE'];
}

const handleChange = (valgteInntektsmeldingSakstyper: string[]) => {
if (!valgteInntektsmeldingSakstyper.includes('Inntektsmelding alle')) {
if (!valgteInntektsmeldingSakstyper.includes('INNTEKTSMELDING_GRUPPE')) {
//Bruker velger bort INNTEKTSMELDING_GRUPPE
setFilter({ ...filter, sakstyper: andreSakstyper });
return;
}
setFilter({ ...filter, sakstyper: [...andreSakstyper, ...valgteInntektsmeldingSakstyper] });
if (
valgteInntektsmeldingSakstyper.length === 1 &&
valgteInntektsmeldingSakstyper.includes('INNTEKTSMELDING_GRUPPE')
) {
setFilter({
...filter,
sakstyper: [
...andreSakstyper,
...alleInntektsmeldingstypeNavn,
'INNTEKTSMELDING_GRUPPE',
],
});
return;
}

setFilter({
...filter,
sakstyper: [
...andreSakstyper,
...valgteInntektsmeldingSakstyper.filter(
(navn) => navn !== 'INNTEKTSMELDING_GRUPPE'
),
],
});
};

return (
<CheckboxGroup
legend={null}
hideLegend
value={valgte}
value={valgteInntektsmeldingtyper}
onChange={(valgte) => handleChange(valgte)}
>
<Checkbox
key="Inntektsmelding alle"
value="Inntektsmelding alle"
onClick={(e) => amplitudeFilterKlikk('sakstype', 'Inntektsmelding alle', e.target)}
key="INNTEKTSMELDING_GRUPPE"
value="INNTEKTSMELDING_GRUPPE"
onClick={(e) =>
amplitudeFilterKlikk('sakstype', 'INNTEKTSMELDING_GRUPPE', e.target)
}
>
<BodyShort>
{antall === undefined ? 'Inntektsmelding' : `Inntektsmelding (${antall})`}
</BodyShort>
</Checkbox>
{valgte.length < 1
{valgteInntektsmeldingtyper.length < 1
? null
: sorted(inntektsmeldingSakstyper, ({ navn }) => navn).map(({ navn, antall }) => {
const [forbokstav, ...resten] = navn.replace('Inntektsmelding ', '');
const visningsNavn = [forbokstav.toUpperCase(), ...resten].join('');
const visningsNavn = capitalize(navn.replace('Inntektsmelding ', ''));
return (
<Checkbox
className={'inntektsmelding-sakstype'}
Expand Down Expand Up @@ -200,7 +237,7 @@ export const Saksfilter = ({
const sakstyper = [
...sakstyperUtenInntektsmelding,
{
navn: 'Inntektsmelding alle',
navn: 'INNTEKTSMELDING_GRUPPE',
antall: inntektsmeldingSakstyper.reduce((acc, { antall }) => acc + (antall ?? 0), 0),
},
];
Expand Down Expand Up @@ -241,7 +278,7 @@ export const Saksfilter = ({
}}
>
{sorted(sakstyper, (sakstype) => sakstype.navn).map(({ navn, antall }) => {
if (navn === 'Inntektsmelding alle') {
if (navn === 'INNTEKTSMELDING_GRUPPE') {
return InntektsmeldingGruppe(
antall,
inntektsmeldingSakstyper,
Expand Down
4 changes: 2 additions & 2 deletions src/Pages/Saksoversikt/useSaker.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -137,10 +137,10 @@ const beregnVirksomhetsnummer = (
* TAG-2253 - Inkluder inntektsmelding i sakstyper hvis Inntektsmelding sykepenger er valgt
* Fjernes når det ikke lengre finnes saker med "Inntektsmelding" som merkelapp
*/
function inkluderInntektsmelding(sakstyper: string[]) {
const inkluderInntektsmelding = (sakstyper: string[]) => {
const inntektsmeldingSykepengerValgt = sakstyper.includes('Inntektsmelding sykepenger');
return [...sakstyper, ...(inntektsmeldingSykepengerValgt ? ['Inntektsmelding'] : [])];
}
};

export function useSaker(
pageSize: number,
Expand Down

0 comments on commit cac6580

Please sign in to comment.