Skip to content

Commit bcd43f3

Browse files
authored
Chore: fjern constate for FagsakContext og rydd litt rundt context (#3623)
* rename korriger vedtak context * flytt hook for korriger vedtak til samme mappe som komponenter * rename hook for korriger etterbetaling * flytt hook og valideringsfil til samme mappe som komponent * rename valideringsfil * flytt registrer dødsfall-kode inn i samme mappe som personinformasjon siden det kun er der den brukes * rename hook for registrer dødsfall skjema * flytt hook for registrer dødsfall-dato inn til samme mappe som komponent * flytt informasjonsbolk inn til samme mappe som eneste komponent som bruker den * flytt TidslinjeVisualisering til sider/tidslinjer siden det er en egen side * legg inn Internstatistikk.tsx i mappe så alle sider har lik struktur * flytt internstatistikk-kode fra fagsak-context og inn i egen hook * trekk funksjon for å hente fagsaker på person ut i egen api-hook så OppgaverContext ikke trenger tilgang til FagsakContext * legg FagsakProvider kun rundt fagsak-innhold * oppdater FagsakContext fra constate til plain react * flytt FagsakContext fra context-mappe til sider/fagsak * legg FagsakProvider rundt manuell journalføring * rename minimalFagsak -> minimalFagsakRessurs og settMinimalFagsak -> settMinimalFagsakRessurs * lagre minimal fagsak i fagsak-context * bruk minimal fagsak som er pakket ut direkte fra fagsak context * skriv enkel test for FagsakContext * reverter å bruke fagsak context for å holde på fagsak-state i journalføring
1 parent 4ea68f2 commit bcd43f3

File tree

48 files changed

+374
-229
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

48 files changed

+374
-229
lines changed

Diff for: package.json

+1
Original file line numberDiff line numberDiff line change
@@ -83,6 +83,7 @@
8383
"@babel/preset-typescript": "^7.26.0",
8484
"@eslint/js": "^9.21.0",
8585
"@pmmmwh/react-refresh-webpack-plugin": "^0.5.5",
86+
"@testing-library/jest-dom": "^6.6.3",
8687
"@testing-library/react": "^15.0.2",
8788
"@types/classnames": "^2.3.1",
8889
"@types/deep-equal": "^1.0.1",

Diff for: src/frontend/Container.tsx

+22-31
Original file line numberDiff line numberDiff line change
@@ -4,20 +4,19 @@ import { BrowserRouter as Router, Navigate, Route, Routes } from 'react-router';
44
import styled from 'styled-components';
55

66
import { useApp } from './context/AppContext';
7-
import { FagsakProvider } from './context/Fagsak/FagsakContext';
87
import { Oppgaver } from './context/OppgaverContext';
98
import { TidslinjeProvider } from './context/TidslinjeContext';
109
import { HeaderMedSøk } from './komponenter/HeaderMedSøk/HeaderMedSøk';
1110
import AppInfoModal from './komponenter/Modal/AppInfoModal';
1211
import UgyldigSesjon from './komponenter/Modal/SesjonUtløpt';
1312
import SystemetLaster from './komponenter/SystemetLaster/SystemetLaster';
14-
import TidslinjeVisualisering from './komponenter/TidslinjeVisualisering/TidslinjeVisualisering';
1513
import Toasts from './komponenter/Toast/Toasts';
1614
import FagsakContainer from './sider/Fagsak/FagsakContainer';
1715
import { Infotrygd } from './sider/Infotrygd/Infotrygd';
18-
import Internstatistikk from './sider/Internstatistikk';
16+
import Internstatistikk from './sider/internstatistikk/Internstatistikk';
1917
import ManuellJournalfør from './sider/ManuellJournalfør/ManuellJournalfør';
2018
import { Samhandler } from './sider/Samhandler/Samhandler';
19+
import TidslinjeVisualisering from './sider/tidslinjer/TidslinjeVisualisering';
2120

2221
const Main = styled.main<{ $systemetLaster: boolean }>`
2322
position: fixed;
@@ -51,34 +50,26 @@ const Container: React.FC = () => {
5150
brukerNavn={innloggetSaksbehandler?.displayName}
5251
brukerEnhet={innloggetSaksbehandler?.enhet}
5352
/>
54-
<FagsakProvider>
55-
<Routes>
56-
<Route
57-
path="/fagsak/:fagsakId/*"
58-
element={<FagsakContainer />}
59-
/>
60-
<Route
61-
path="/oppgaver/journalfor/:oppgaveId"
62-
element={<ManuellJournalfør />}
63-
/>
64-
<Route
65-
path="/tidslinjer/:behandlingId"
66-
element={
67-
<TidslinjeProvider>
68-
<TidslinjeVisualisering />
69-
</TidslinjeProvider>
70-
}
71-
/>
72-
<Route
73-
path="/internstatistikk"
74-
element={<Internstatistikk />}
75-
/>
76-
<Route path="/infotrygd" element={<Infotrygd />} />
77-
<Route path="/samhandler" element={<Samhandler />} />
78-
<Route path="/oppgaver" element={<Oppgaver />} />
79-
<Route path="/" element={<Navigate to="/oppgaver" />} />
80-
</Routes>
81-
</FagsakProvider>
53+
<Routes>
54+
<Route path="/fagsak/:fagsakId/*" element={<FagsakContainer />} />
55+
<Route
56+
path="/oppgaver/journalfor/:oppgaveId"
57+
element={<ManuellJournalfør />}
58+
/>
59+
<Route
60+
path="/tidslinjer/:behandlingId"
61+
element={
62+
<TidslinjeProvider>
63+
<TidslinjeVisualisering />
64+
</TidslinjeProvider>
65+
}
66+
/>
67+
<Route path="/internstatistikk" element={<Internstatistikk />} />
68+
<Route path="/infotrygd" element={<Infotrygd />} />
69+
<Route path="/samhandler" element={<Samhandler />} />
70+
<Route path="/oppgaver" element={<Oppgaver />} />
71+
<Route path="/" element={<Navigate to="/oppgaver" />} />
72+
</Routes>
8273
</Main>
8374
</>
8475
)

Diff for: src/frontend/api/useFagsakApi.ts

+24
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
import { useHttp } from '@navikt/familie-http';
2+
import type { Ressurs } from '@navikt/familie-typer';
3+
4+
import type { IMinimalFagsak } from '../typer/fagsak';
5+
6+
export const useFagsakApi = () => {
7+
const { request } = useHttp();
8+
9+
const hentFagsakerForPerson = async (personId: string) => {
10+
return request<{ personIdent: string }, IMinimalFagsak[]>({
11+
method: 'POST',
12+
url: `/familie-ba-sak/api/fagsaker/hent-fagsaker-paa-person`,
13+
data: {
14+
personIdent: personId,
15+
},
16+
}).then((fagsaker: Ressurs<IMinimalFagsak[]>) => {
17+
return fagsaker;
18+
});
19+
};
20+
21+
return {
22+
hentFagsakerForPerson,
23+
};
24+
};

Diff for: src/frontend/context/DokumentutsendingContext.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -7,14 +7,14 @@ import type { Avhengigheter, FeltState } from '@navikt/familie-skjema';
77
import { feil, ok, useFelt, useSkjema, Valideringsstatus } from '@navikt/familie-skjema';
88
import { RessursStatus } from '@navikt/familie-typer';
99

10-
import { useFagsakContext } from './Fagsak/FagsakContext';
1110
import useDokument from '../hooks/useDokument';
1211
import {
1312
Informasjonsbrev,
1413
opplysningsdokumenter,
1514
} from '../sider/Fagsak/Behandling/Høyremeny/Hendelsesoversikt/BrevModul/typer';
1615
import type { ISelectOptionMedBrevtekst } from '../sider/Fagsak/Behandling/Høyremeny/Hendelsesoversikt/BrevModul/typer';
1716
import { hentEnkeltInformasjonsbrevRequest } from '../sider/Fagsak/Dokumentutsending/Informasjonsbrev/enkeltInformasjonsbrevUtils';
17+
import { useFagsakContext } from '../sider/Fagsak/FagsakContext';
1818
import { Mottaker } from '../sider/Fagsak/Personlinje/Behandlingsmeny/LeggTilEllerFjernBrevmottakere/useBrevmottakerSkjema';
1919
import type { IManueltBrevRequestPåFagsak } from '../typer/dokument';
2020
import { Distribusjonskanal } from '../typer/dokument';

Diff for: src/frontend/context/OppgaverContext.tsx

+2-2
Original file line numberDiff line numberDiff line change
@@ -16,9 +16,9 @@ import {
1616
} from '@navikt/familie-typer';
1717

1818
import { useApp } from './AppContext';
19-
import { useFagsakContext } from './Fagsak/FagsakContext';
2019
import { type IOppgaveRad, Sorteringsnøkkel, sorterEtterNøkkel } from './OppgaverContextUtils';
2120
import { mapIOppgaverTilOppgaveRad } from './OppgaverContextUtils';
21+
import { useFagsakApi } from '../api/useFagsakApi';
2222
import { AlertType, ToastTyper } from '../komponenter/Toast/typer';
2323
import Oppgavebenk from '../sider/Oppgavebenk/Oppgavebenk';
2424
import type { IOppgaveFelt, IOppgaveFelter } from '../sider/Oppgavebenk/oppgavefelter';
@@ -188,7 +188,7 @@ const [OppgaverProvider, useOppgaver] = createUseContext(() => {
188188
settOppgaveFelter(initialOppgaveFelter(innloggetSaksbehandler));
189189
};
190190

191-
const { hentFagsakerForPerson } = useFagsakContext();
191+
const { hentFagsakerForPerson } = useFagsakApi();
192192

193193
const gåTilFagsakEllerVisFeilmelding = async (personident: string): Promise<void> => {
194194
const fagsaker = await hentFagsakerForPerson(personident);

Diff for: src/frontend/context/SøknadContext.ts

+4-4
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,9 @@ import type { Ressurs } from '@navikt/familie-typer';
99
import { RessursStatus } from '@navikt/familie-typer';
1010

1111
import { useBehandling } from './behandlingContext/BehandlingContext';
12-
import { useFagsakContext } from './Fagsak/FagsakContext';
1312
import useDeepEffect from '../hooks/useDeepEffect';
1413
import useSakOgBehandlingParams from '../hooks/useSakOgBehandlingParams';
14+
import { useFagsakContext } from '../sider/Fagsak/FagsakContext';
1515
import type { IBehandling } from '../typer/behandling';
1616
import { BehandlingUnderkategori } from '../typer/behandlingstema';
1717
import type { IForelderBarnRelasjon } from '../typer/person';
@@ -34,12 +34,12 @@ const [SøknadProvider, useSøknad] = createUseContext(
3434
} = useBehandling();
3535
const { fagsakId } = useSakOgBehandlingParams();
3636
const navigate = useNavigate();
37-
const { bruker, minimalFagsak } = useFagsakContext();
37+
const { bruker, minimalFagsakRessurs } = useFagsakContext();
3838
const [visBekreftModal, settVisBekreftModal] = React.useState<boolean>(false);
3939

4040
const barnMedLøpendeUtbetaling =
41-
minimalFagsak.status === RessursStatus.SUKSESS
42-
? hentBarnMedLøpendeUtbetaling(minimalFagsak.data)
41+
minimalFagsakRessurs.status === RessursStatus.SUKSESS
42+
? hentBarnMedLøpendeUtbetaling(minimalFagsakRessurs.data)
4343
: new Set();
4444

4545
const { skjema, nullstillSkjema, onSubmit, hentFeilTilOppsummering } = useSkjema<

Diff for: src/frontend/context/behandlingContext/BehandlingContext.ts

+7-7
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ import {
1919
KontrollertStatus,
2020
sider,
2121
} from '../../sider/Fagsak/Behandling/Sider/sider';
22+
import { useFagsakContext } from '../../sider/Fagsak/FagsakContext';
2223
import type { BehandlingSteg, IBehandling } from '../../typer/behandling';
2324
import {
2425
BehandlerRolle,
@@ -33,15 +34,14 @@ import { Målform } from '../../typer/søknad';
3334
import { MIDLERTIDIG_BEHANDLENDE_ENHET_ID } from '../../utils/behandling';
3435
import { hentSideHref } from '../../utils/miljø';
3536
import { useApp } from '../AppContext';
36-
import { useFagsakContext } from '../Fagsak/FagsakContext';
3737

3838
interface Props {
3939
behandling: IBehandling;
4040
}
4141

4242
const [BehandlingProvider, useBehandling] = createUseContext(({ behandling }: Props) => {
4343
const { fagsakId } = useSakOgBehandlingParams();
44-
const { minimalFagsak } = useFagsakContext();
44+
const { minimalFagsakRessurs } = useFagsakContext();
4545
const { settBehandlingRessurs } = useHentOgSettBehandling();
4646
const [åpenHøyremeny, settÅpenHøyremeny] = useState(true);
4747
const [åpenVenstremeny, settÅpenVenstremeny] = useState(true);
@@ -199,15 +199,15 @@ const [BehandlingProvider, useBehandling] = createUseContext(({ behandling }: Pr
199199
const erBehandlingAvsluttet = behandling.status === BehandlingStatus.AVSLUTTET;
200200

201201
const gjelderInstitusjon =
202-
minimalFagsak.status === RessursStatus.SUKSESS &&
203-
minimalFagsak.data.fagsakType === FagsakType.INSTITUSJON;
202+
minimalFagsakRessurs.status === RessursStatus.SUKSESS &&
203+
minimalFagsakRessurs.data.fagsakType === FagsakType.INSTITUSJON;
204204

205205
const gjelderEnsligMindreårig =
206-
minimalFagsak.status === RessursStatus.SUKSESS &&
207-
minimalFagsak.data.fagsakType === FagsakType.BARN_ENSLIG_MINDREÅRIG;
206+
minimalFagsakRessurs.status === RessursStatus.SUKSESS &&
207+
minimalFagsakRessurs.data.fagsakType === FagsakType.BARN_ENSLIG_MINDREÅRIG;
208208

209209
const samhandlerOrgnr = gjelderInstitusjon
210-
? minimalFagsak.data.institusjon?.orgNummer
210+
? minimalFagsakRessurs.data.institusjon?.orgNummer
211211
: undefined;
212212

213213
return {

Diff for: src/frontend/context/behandlingContext/HentOgSettBehandlingContext.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -8,11 +8,11 @@ import { useHttp } from '@navikt/familie-http';
88
import { byggFeiletRessurs, byggTomRessurs, type Ressurs } from '@navikt/familie-typer';
99

1010
import useSakOgBehandlingParams from '../../hooks/useSakOgBehandlingParams';
11+
import { useFagsakContext } from '../../sider/Fagsak/FagsakContext';
1112
import type { IBehandling } from '../../typer/behandling';
1213
import type { IMinimalFagsak } from '../../typer/fagsak';
1314
import { obfuskerBehandling } from '../../utils/obfuskerData';
1415
import { useApp } from '../AppContext';
15-
import { useFagsakContext } from '../Fagsak/FagsakContext';
1616

1717
interface Props {
1818
fagsak: IMinimalFagsak;

Diff for: src/frontend/komponenter/Brevmottaker/BrevmottakerListe.tsx

+2-5
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
11
import React from 'react';
22

3-
import { hentDataFraRessurs } from '@navikt/familie-typer';
4-
5-
import { useFagsakContext } from '../../context/Fagsak/FagsakContext';
3+
import { useFagsakContext } from '../../sider/Fagsak/FagsakContext';
64
import type { SkjemaBrevmottaker } from '../../sider/Fagsak/Personlinje/Behandlingsmeny/LeggTilEllerFjernBrevmottakere/useBrevmottakerSkjema';
75
import { Mottaker } from '../../sider/Fagsak/Personlinje/Behandlingsmeny/LeggTilEllerFjernBrevmottakere/useBrevmottakerSkjema';
86
import { FagsakType } from '../../typer/fagsak';
@@ -15,8 +13,7 @@ interface IProps {
1513
}
1614

1715
const BrevmottakerListe: React.FC<IProps> = ({ bruker, brevmottakere }) => {
18-
const { minimalFagsak: minimalFagsakRessurs } = useFagsakContext();
19-
const minimalFagsak = hentDataFraRessurs(minimalFagsakRessurs);
16+
const { minimalFagsak } = useFagsakContext();
2017
const institusjon = minimalFagsak?.institusjon;
2118
const fagsakType = minimalFagsak?.fagsakType;
2219

Diff for: src/frontend/komponenter/PersonInformasjon/PersonInformasjon.tsx

+1-1
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ import type { IGrunnlagPerson } from '../../typer/person';
1010
import { personTypeMap } from '../../typer/person';
1111
import { formaterIdent, hentAlder } from '../../utils/formatter';
1212
import DødsfallTag from '../DødsfallTag';
13-
import RegistrerDødsfallDato from '../RegistrerDødsfallDato/RegistrerDødsfallDato';
13+
import RegistrerDødsfallDato from './RegistrerDødsfallDato';
1414

1515
interface IProps {
1616
person: IGrunnlagPerson;

Diff for: src/frontend/komponenter/RegistrerDødsfallDato/RegistrerDødsfallDatoModal.tsx renamed to src/frontend/komponenter/PersonInformasjon/RegistrerDødsfallDatoModal.tsx

+2-2
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import * as React from 'react';
33
import { Button, Fieldset, Modal, Textarea } from '@navikt/ds-react';
44
import { RessursStatus } from '@navikt/familie-typer';
55

6-
import { useRegistrerDødsfallDatoSkjemaContext } from '../../context/RegistrerDødsfallDato/RegistrerDødsfallDatoSkjemaContext';
6+
import { useRegistrerDødsfallDatoSkjema } from './useRegistrerDødsfallDatoSkjema';
77
import type { IGrunnlagPerson } from '../../typer/person';
88
import Datovelger from '../Datovelger/Datovelger';
99

@@ -15,7 +15,7 @@ interface IProps {
1515

1616
const RegistrerDødsfallDatoModal = ({ lukkModal, person, erLesevisning }: IProps) => {
1717
const { skjema, valideringErOk, registrerManuellDødsfall, restFeil } =
18-
useRegistrerDødsfallDatoSkjemaContext({
18+
useRegistrerDødsfallDatoSkjema({
1919
lukkModal,
2020
person,
2121
});

Diff for: src/frontend/context/RegistrerDødsfallDato/RegistrerDødsfallDatoSkjemaContext.ts renamed to src/frontend/komponenter/PersonInformasjon/useRegistrerDødsfallDatoSkjema.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,12 @@ import { feil, ok, useFelt, useSkjema, Valideringsstatus } from '@navikt/familie
55
import type { Ressurs } from '@navikt/familie-typer';
66
import { byggHenterRessurs, RessursStatus } from '@navikt/familie-typer';
77

8+
import { useBehandling } from '../../context/behandlingContext/BehandlingContext';
89
import type { IBehandling } from '../../typer/behandling';
910
import type { IManuellDødsfall } from '../../typer/dødsfall';
1011
import type { IGrunnlagPerson } from '../../typer/person';
1112
import { dateTilIsoDatoString, validerGyldigDato } from '../../utils/dato';
1213
import { isEmpty } from '../../utils/eøsValidators';
13-
import { useBehandling } from '../behandlingContext/BehandlingContext';
1414

1515
interface IProps {
1616
lukkModal: () => void;
@@ -22,7 +22,7 @@ const erBegrunnelseFyltUt = (felt: FeltState<string>): FeltState<string> =>
2222
? ok(felt)
2323
: feil(felt, 'Begrunnelse for manuell registrering av dødsfall er påkrevd.');
2424

25-
export const useRegistrerDødsfallDatoSkjemaContext = ({ person, lukkModal }: IProps) => {
25+
export const useRegistrerDødsfallDatoSkjema = ({ person, lukkModal }: IProps) => {
2626
const { behandling, settÅpenBehandling } = useBehandling();
2727
const [restFeil, settRestFeil] = useState<string | undefined>(undefined);
2828

Diff for: src/frontend/sider/Fagsak/Behandling/Høyremeny/Behandlingskort.tsx

+3-4
Original file line numberDiff line numberDiff line change
@@ -10,10 +10,8 @@ import {
1010
ATextDanger,
1111
ATextDefault,
1212
} from '@navikt/ds-tokens/dist/tokens';
13-
import { hentDataFraRessurs } from '@navikt/familie-typer';
1413

15-
import { useFagsakContext } from '../../../../context/Fagsak/FagsakContext';
16-
import Informasjonsbolk from '../../../../komponenter/Informasjonsbolk/Informasjonsbolk';
14+
import Informasjonsbolk from './Informasjonsbolk';
1715
import type { IBehandling } from '../../../../typer/behandling';
1816
import {
1917
BehandlingResultat,
@@ -24,6 +22,7 @@ import {
2422
erBehandlingHenlagt,
2523
} from '../../../../typer/behandling';
2624
import { Datoformat, isoStringTilFormatertString } from '../../../../utils/dato';
25+
import { useFagsakContext } from '../../FagsakContext';
2726
import { sakstype } from '../../Saksoversikt/Saksoversikt';
2827

2928
interface IBehandlingskortProps {
@@ -77,7 +76,7 @@ const StyledHeading = styled(Heading)`
7776
`;
7877

7978
const Behandlingskort: React.FC<IBehandlingskortProps> = ({ åpenBehandling }) => {
80-
const minimalFagsak = hentDataFraRessurs(useFagsakContext().minimalFagsak);
79+
const { minimalFagsak } = useFagsakContext();
8180
const behandlinger = minimalFagsak?.behandlinger ?? [];
8281

8382
const antallBehandlinger = behandlinger.length;

Diff for: src/frontend/sider/Fagsak/Behandling/Høyremeny/Hendelsesoversikt/BrevModul/useBrevModul.ts

+2-5
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,10 @@ import React, { useEffect } from 'react';
22

33
import type { Avhengigheter, FeltState } from '@navikt/familie-skjema';
44
import { feil, ok, useFelt, useSkjema, Valideringsstatus } from '@navikt/familie-skjema';
5-
import { hentDataFraRessurs } from '@navikt/familie-typer';
65

76
import type { ISelectOptionMedBrevtekst } from './typer';
87
import { Brevmal } from './typer';
98
import { useBehandling } from '../../../../../../context/behandlingContext/BehandlingContext';
10-
import { useFagsakContext } from '../../../../../../context/Fagsak/FagsakContext';
119
import type { IBehandling } from '../../../../../../typer/behandling';
1210
import { BehandlingKategori } from '../../../../../../typer/behandlingstema';
1311
import type { IManueltBrevRequestPåBehandling } from '../../../../../../typer/dokument';
@@ -30,19 +28,18 @@ import {
3028
genererIdBasertPåAndreFritekstKulepunkter,
3129
lagInitiellFritekst,
3230
} from '../../../../../../utils/fritekstfelter';
31+
import { useFagsakContext } from '../../../../FagsakContext';
3332

3433
export const useBrevModul = () => {
3534
const { behandling } = useBehandling();
36-
const { minimalFagsak: minimalFagsakRessurs } = useFagsakContext();
35+
const { minimalFagsak } = useFagsakContext();
3736

3837
const maksAntallKulepunkter = 20;
3938
const makslengdeFritekstHvertKulepunkt = 220;
4039
const maksLengdeFritekstAvsnitt = 1000;
4140

4241
const [visFritekstAvsnittTekstboks, settVisFritekstAvsnittTekstboks] = React.useState(false);
4342

44-
const minimalFagsak = hentDataFraRessurs(minimalFagsakRessurs);
45-
4643
const behandlingKategori = behandling?.kategori;
4744

4845
const personer = behandling?.personer ?? [];

0 commit comments

Comments
 (0)