Skip to content

Commit 3ee021b

Browse files
committed
Håndtere sak uten behandlinger som vises
1 parent 4b144d5 commit 3ee021b

File tree

11 files changed

+96
-123
lines changed

11 files changed

+96
-123
lines changed

apps/dine-pleiepenger/api-mock-server/api-mock-server.js

+1
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ const søknader = require('./mockdata/soknader.json');
66
// const saker = require('./mockdata/saker-søknad-og-endring-ubehandlet.json');
77
// const saker = require('./mockdata/saker-med-to-vedtak.json');
88
// const saker = require('./mockdata/saker-uten-søknad-men-behandling.json');
9+
// const saker = require('./mockdata/saker-feiler.json');
910
const saker = require('./mockdata/saker.json');
1011

1112
server.use(express.json());
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
[
2+
{
3+
"pleietrengende": {
4+
"identitetsnummer": "11511767808",
5+
"fødselsdato": "2017-11-11",
6+
"fornavn": "INITIATIVRIK",
7+
"mellomnavn": null,
8+
"etternavn": "BRIS",
9+
"aktørId": "2952714620922"
10+
},
11+
"sak": {
12+
"saksnummer": "1DQB6Z8",
13+
"saksbehandlingsFrist": null,
14+
"fagsakYtelseType": { "kode": "PSB", "kodeverk": "FAGSAK_YTELSE" },
15+
"ytelseType": "PSB",
16+
"behandlinger": []
17+
}
18+
}
19+
]

apps/dine-pleiepenger/src/components/kontakt-oss/KontaktOss.stories.tsx

-20
This file was deleted.

apps/dine-pleiepenger/src/components/kontakt-oss/KontaktOss.tsx

-70
This file was deleted.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
import { Link } from '@navikt/ds-react';
2+
import React from 'react';
3+
import { ExternalLink } from '@navikt/ds-icons';
4+
import { browserEnv } from '../../utils/env';
5+
6+
interface Props {
7+
tekst: string;
8+
}
9+
10+
const SkrivTilOssLenke: React.FunctionComponent<Props> = ({ tekst }) => (
11+
<Link href={browserEnv.NEXT_PUBLIC_SKRIV_TIL_OSS}>
12+
{tekst} <ExternalLink className="ml-1" role="presentation" />
13+
</Link>
14+
);
15+
16+
export default SkrivTilOssLenke;

apps/dine-pleiepenger/src/components/status-i-sak/StatusISak.tsx

+17-2
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { BodyShort, Box, Heading, Link, Switch, VStack } from '@navikt/ds-react';
1+
import { Alert, BodyLong, BodyShort, Box, Heading, Link, Switch, VStack } from '@navikt/ds-react';
22
import React, { useState } from 'react';
33
import { ChevronRightIcon } from '@navikt/aksel-icons';
44
import { default as NextLink } from 'next/link';
@@ -7,7 +7,8 @@ import { formatSøknadshendelseTidspunkt, getAlleHendelserISak } from '../../uti
77
import { Process } from '../process';
88
import ProcessStep from '../process/ProcessStep';
99
import { getProcessStepsFraSøknadshendelser } from './statusISakUtils';
10-
import { useMessages } from '../../i18n';
10+
import { Msg, useMessages } from '../../i18n';
11+
import SkrivTilOssLenke from '../lenker/SkrivTilOssLenke';
1112

1213
interface Props {
1314
sak: Sak;
@@ -21,6 +22,20 @@ const StatusISak: React.FunctionComponent<Props> = ({ sak, visAlleHendelser, tit
2122
const hendelser = getAlleHendelserISak(sak);
2223
const processSteps = getProcessStepsFraSøknadshendelser(text, hendelser);
2324

25+
if (processSteps.length === 0) {
26+
return (
27+
<Alert variant="info">
28+
<Msg
29+
id="statusISak.ingenHendelser"
30+
values={{
31+
p: (txt) => <BodyLong>{txt}</BodyLong>,
32+
lenke: <SkrivTilOssLenke tekst={text('statusISak.ingenHendelser.skrivTilOssLenkeTekst')} />,
33+
}}
34+
/>
35+
</Alert>
36+
);
37+
}
38+
2439
if (reverseDirection) {
2540
processSteps.reverse();
2641
}

apps/dine-pleiepenger/src/components/status-i-sak/statusISakUtils.tsx

+4
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,10 @@ export const getProcessStepsFraSøknadshendelser = (text: TextFn, hendelser: Sø
4141
/** Aksjonspunkt skal ikke vises enda */
4242
const hendelserSomSkalVises = hendelser.filter((h) => h.type !== SøknadshendelseType.AKSJONSPUNKT);
4343

44+
if (hendelserSomSkalVises.length === 0) {
45+
return [];
46+
}
47+
4448
const antall = hendelserSomSkalVises.length;
4549
const erFerdigBehandlet = hendelserSomSkalVises[antall - 1].type === SøknadshendelseType.FERDIG_BEHANDLET;
4650

apps/dine-pleiepenger/src/components/velg-sak-page/VelgSakPage.tsx

+25-22
Original file line numberDiff line numberDiff line change
@@ -28,28 +28,31 @@ const VelgSakPage: React.FunctionComponent<Props> = ({ saker }) => {
2828
</Heading>
2929

3030
<VStack gap="5" className="max-w-2xl mb-10">
31-
{saker.map((sak) => (
32-
<LinkPanel
33-
as={Link}
34-
border={false}
35-
href={`/sak/${sak.sak.saksnummer}`}
36-
key={sak.sak.saksnummer}>
37-
<LinkPanel.Title className="w-full">
38-
<Heading as="span" size="small">
39-
{personaliaUtils.navn(sak.pleietrengende)}
40-
</Heading>
41-
</LinkPanel.Title>
42-
<LinkPanel.Description>
43-
<p>
44-
<Msg
45-
id="velgSak.barn.fdato"
46-
values={{ dato: dateFormatter.full(sak.pleietrengende.fødselsdato) }}
47-
/>
48-
</p>
49-
<StatusTag {...getBehandlingsstatusISak(sak.sak)} />
50-
</LinkPanel.Description>
51-
</LinkPanel>
52-
))}
31+
{saker.map((sak) => {
32+
const status = getBehandlingsstatusISak(sak.sak);
33+
return (
34+
<LinkPanel
35+
as={Link}
36+
border={false}
37+
href={`/sak/${sak.sak.saksnummer}`}
38+
key={sak.sak.saksnummer}>
39+
<LinkPanel.Title className="w-full">
40+
<Heading as="span" size="small">
41+
{personaliaUtils.navn(sak.pleietrengende)}
42+
</Heading>
43+
</LinkPanel.Title>
44+
<LinkPanel.Description>
45+
<p>
46+
<Msg
47+
id="velgSak.barn.fdato"
48+
values={{ dato: dateFormatter.full(sak.pleietrengende.fødselsdato) }}
49+
/>
50+
</p>
51+
{status ? <StatusTag {...status} /> : null}
52+
</LinkPanel.Description>
53+
</LinkPanel>
54+
);
55+
})}
5356
</VStack>
5457
</Box>
5558
</DefaultPageLayout>

apps/dine-pleiepenger/src/i18n/nb.ts

+3
Original file line numberDiff line numberDiff line change
@@ -116,6 +116,9 @@ export const nb = {
116116
'statusISak.forventetSvar.endring.tittel': 'Endringen er ferdig behandlet',
117117
'statusISak.forventetSvar.endring.info':
118118
'Endringsmeldingen vil oppdatere saken og du vil få ett nytt vedtaksbrev når endringene er ferdig behandlet.',
119+
'statusISak.ingenHendelser':
120+
'<p>Hei, vi kan enn så lenge ikke vise noen detaljert informasjon om saken din enda</p><p>Hvis du lurer på noe angående saken din, kan du ta kontakt via {lenke}.</p>',
121+
'statusISak.ingenHendelser.skrivTilOssLenkeTekst': 'Skriv til oss',
119122

120123
'venteårsakMelding.legeerklæring.tittel': 'Vi mangler legeerklæring',
121124
'venteårsakMelding.legeerklæring.lastOppHer': 'Last opp legeerklæring her',

apps/dine-pleiepenger/src/pages/sak/SakPage.tsx

+3-3
Original file line numberDiff line numberDiff line change
@@ -47,20 +47,20 @@ const SakPage: React.FunctionComponent<Props> = ({ sak, pleietrengende, saksbeha
4747
<SakPageHeader
4848
navn={navn}
4949
saksnr={sak.saksnummer}
50-
titleTag={<StatusTag {...getBehandlingsstatusISak(sak)} />}
50+
titleTag={statusISak ? <StatusTag {...statusISak} /> : null}
5151
/>
5252
}>
5353
<Head>
5454
<title>Din pleiepengesak - {navn}</title>
5555
</Head>
5656
<VStack gap="12">
57-
{statusISak.venteårsak && statusISak.status !== Behandlingsstatus.AVSLUTTET ? (
57+
{statusISak?.venteårsak && statusISak.status !== Behandlingsstatus.AVSLUTTET ? (
5858
<VenteårsakMelding venteårsak={statusISak.venteårsak} />
5959
) : null}
6060
<Box className="md:flex md:gap-6">
6161
<div className="md:grow mb-10 md:mb-0">{<StatusISak sak={sak} tittel="Dette skjer i saken" />}</div>
6262
<div className="md:mb-none shrink-0 md:w-72">
63-
{statusISak.status === Behandlingsstatus.AVSLUTTET ? null : (
63+
{statusISak === undefined || statusISak.status === Behandlingsstatus.AVSLUTTET ? null : (
6464
<VStack gap="5">
6565
<Saksbehandlingstid
6666
frist={sak.saksbehandlingsFrist}

apps/dine-pleiepenger/src/utils/sakUtils.ts

+8-6
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ dayjs.extend(utc);
1919
dayjs.extend(timezone);
2020
dayjs.locale('nb');
2121

22-
const getSisteBehandlingISak = (sak: Sak): Behandling => {
22+
const getSisteBehandlingISak = (sak: Sak): Behandling | undefined => {
2323
return sortBy(sak.behandlinger, (b) => b.opprettetDato)[0];
2424
};
2525

@@ -48,12 +48,14 @@ export const getBehandlingerISakSorted = (sak: Sak): Behandling[] => {
4848
return sortBehandlinger(sak.behandlinger);
4949
};
5050

51-
export const getBehandlingsstatusISak = (sak: Sak): BehandlingsstatusISak => {
51+
export const getBehandlingsstatusISak = (sak: Sak): BehandlingsstatusISak | undefined => {
5252
const behandling = getSisteBehandlingISak(sak);
53-
return {
54-
status: behandling.status,
55-
venteårsak: behandling.aksjonspunkter?.length > 0 ? behandling.aksjonspunkter[0]?.venteårsak : undefined,
56-
};
53+
return behandling
54+
? {
55+
status: behandling.status,
56+
venteårsak: behandling.aksjonspunkter?.length > 0 ? behandling.aksjonspunkter[0]?.venteårsak : undefined,
57+
}
58+
: undefined;
5759
};
5860

5961
const mapSøknadTilSøknadshendelse = (søknad: Søknad): Søknadshendelse => {

0 commit comments

Comments
 (0)