Skip to content
This repository has been archived by the owner on Jun 7, 2024. It is now read-only.

Commit

Permalink
f legger til henting av arbeidssøkerperioder fra nytt register api
Browse files Browse the repository at this point in the history
  • Loading branch information
zrrrzzt committed Jan 24, 2024
1 parent 3f1671a commit 44703f1
Show file tree
Hide file tree
Showing 6 changed files with 123 additions and 10 deletions.
78 changes: 78 additions & 0 deletions src/contexts/arbeidssokerperioder.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,78 @@
import { createContext, ReactNode, useContext, useEffect, useState } from 'react';

import { useFeatureToggleData, FeatureToggles } from './feature-toggles';

import { fetchToJson } from '../ducks/api-utils';
import { ARBEIDSOKERPERIODER_URL, requestConfig } from '../ducks/api';

export type ArbeidssokerperiodeUtfoertAv = {
type: string;
};

export type ArbeidssokerperiodeMetadata = {
tidspunkt: string;
utfoertAv: ArbeidssokerperiodeUtfoertAv;
kilde: string;
aarsak: string;
};

export type ArbeidssokerPeriode = {
perioderId: string;
startet: ArbeidssokerperiodeMetadata;
avsluttet: ArbeidssokerperiodeMetadata;
};

export type ArbeidssokerperioderResponse = ArbeidssokerPeriode[] | [];

interface ArbeidssokerperioderProviderType {
arbeidssokerperioder: ArbeidssokerperioderResponse;
}

export const ArbeidssokerperioderContext = createContext<ArbeidssokerperioderProviderType>({
arbeidssokerperioder: [],
});

function ArbeidssokerperioderProvider(props: { children: ReactNode }) {
const featureToggles = useFeatureToggleData();
const [arbeidssokerperioder, settArbeidssokerperioder] = useState<ArbeidssokerperioderResponse>([]);

const erToggletPa = featureToggles[FeatureToggles.BRUK_OPPLYSNINGER_API];

const hentArbeidssokerperioder = async () => {
try {
const oppdaterteArbeidssokerperioder = await fetchToJson(ARBEIDSOKERPERIODER_URL, requestConfig());
if (oppdaterteArbeidssokerperioder) {
settArbeidssokerperioder(oppdaterteArbeidssokerperioder as ArbeidssokerperioderResponse);
}
} catch (error) {
console.error(error);
}
};

useEffect(() => {
if (erToggletPa) {
hentArbeidssokerperioder();
}
}, [erToggletPa]);

const contextValue = {
arbeidssokerperioder,
};

return (
<ArbeidssokerperioderContext.Provider value={contextValue}>
{props.children}
</ArbeidssokerperioderContext.Provider>
);
}

function useArbeidssokerperioder() {
const context = useContext(ArbeidssokerperioderContext);

if (context === undefined) {
throw new Error('useArbeidssokerperioder må brukes under en ArbeidssokerperioderProvider');
}
return context;
}

export { ArbeidssokerperioderProvider, useArbeidssokerperioder };
3 changes: 3 additions & 0 deletions src/demo/setup-demo-mock.ts
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ import {
PROFIL_URL,
REAKTIVERING_URL,
ULESTEDIALOGER_URL,
ARBEIDSOKERPERIODER_URL,
} from '../ducks/api';

import {
Expand Down Expand Up @@ -55,6 +56,7 @@ import {
} from './demo-state-behov-for-veiledning';
import levertMeldekortMock from '../mocks/meldeplikt-hendelser.mock';
import arbeidssokerInnholdMock from '../mocks/arbeidssoker-innhold-mock';
import arbeidssokerperioderMock from '../mocks/arbeidssokerperioder-mock';

export const demo_handlers = [
msw_get(ULESTEDIALOGER_URL, {
Expand Down Expand Up @@ -113,6 +115,7 @@ export const demo_handlers = [
}),

msw_get(ER_STANDARD_INNSATSGRUPPE_URL, hentStandardInnsatsgruppe().standardInnsatsgruppe),
msw_get(ARBEIDSOKERPERIODER_URL, arbeidssokerperioderMock),
http.get(`${MELDEPLIKT_URL}/siste`, () => {
// eslint-disable-next-line no-restricted-globals
const valg = hentDemoState(DemoData.ARBEIDSSOKER_NESTE_PERIODE);
Expand Down
21 changes: 12 additions & 9 deletions src/main-standard.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ import { MeldepliktProvider } from './contexts/meldeplikt';
import StandardWrapper from './standard-wrapper';
import { WindowInnerWidthProvider } from './contexts/window-inner-width';
import { StandardBundleProvider } from './contexts/standard-bundle';
import { ArbeidssokerperioderProvider } from './contexts/arbeidssokerperioder';

const Mikrofrontend = () => {
const [state, setState] = React.useState<Autentisering.State>(Autentisering.initialState);
Expand Down Expand Up @@ -67,15 +68,17 @@ const Mikrofrontend = () => {
<SprakValg.SprakContext.Provider value={valgtSprak}>
<StandardBundleProvider erStandardBundle={true}>
<ArbeidssokerDataProvider erStandard>
<MeldepliktProvider>
<ReaktiveringProvider>
<BesvarelseProvider>
<WindowInnerWidthProvider>
<StandardWrapper />
</WindowInnerWidthProvider>
</BesvarelseProvider>
</ReaktiveringProvider>
</MeldepliktProvider>
<ArbeidssokerperioderProvider>
<MeldepliktProvider>
<ReaktiveringProvider>
<BesvarelseProvider>
<WindowInnerWidthProvider>
<StandardWrapper />
</WindowInnerWidthProvider>
</BesvarelseProvider>
</ReaktiveringProvider>
</MeldepliktProvider>
</ArbeidssokerperioderProvider>
</ArbeidssokerDataProvider>
</StandardBundleProvider>
</SprakValg.SprakContext.Provider>
Expand Down
5 changes: 4 additions & 1 deletion src/main.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ import './index.css';
import * as Arbeidssoker from './contexts/arbeidssoker';
import * as FeatureToggle from './contexts/feature-toggles';
import * as SprakValg from './contexts/sprak';
import { ArbeidssokerperioderProvider } from './contexts/arbeidssokerperioder';

const Mikrofrontend = () => {
const [state, setState] = React.useState<Autentisering.State>(Autentisering.initialState);
Expand Down Expand Up @@ -58,7 +59,9 @@ const Mikrofrontend = () => {
<Arbeidssoker.ArbeidssokerContext.Provider value={arbeidssokerState}>
<FeatureToggle.FeaturetoggleContext.Provider value={featureToggleState}>
<SprakValg.SprakContext.Provider value={valgtSprak}>
<Innhold />
<ArbeidssokerperioderProvider>
<Innhold />
</ArbeidssokerperioderProvider>
</SprakValg.SprakContext.Provider>
</FeatureToggle.FeaturetoggleContext.Provider>
</Arbeidssoker.ArbeidssokerContext.Provider>
Expand Down
23 changes: 23 additions & 0 deletions src/mocks/arbeidssokerperioder-mock.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
const arbeidssokerperioderMock = [
{
periodeId: '3fa85f64-5717-4562-b3fc-2c963f66afa6',
startet: {
tidspunkt: {},
utfoertAv: {
type: 'UKJENT_VERDI',
},
kilde: 'string',
aarsak: 'string',
},
avsluttet: {
tidspunkt: {},
utfoertAv: {
type: 'UKJENT_VERDI',
},
kilde: 'string',
aarsak: 'string',
},
},
];

export default arbeidssokerperioderMock;
3 changes: 3 additions & 0 deletions src/mocks/handlers.ts
Original file line number Diff line number Diff line change
Expand Up @@ -27,10 +27,12 @@ import {
PROFIL_URL,
REAKTIVERING_URL,
ULESTEDIALOGER_URL,
ARBEIDSOKERPERIODER_URL,
} from '../ducks/api';
import arbeidssokerNiva3Response from './arbeidssoker-niva3-mock';
import levertMeldekortMock from './meldeplikt-hendelser.mock';
import arbeidssokerInnholdMock from './arbeidssoker-innhold-mock';
import arbeidssokerperioderMock from './arbeidssokerperioder-mock';

export const handlers = [
msw_get(AUTH_API, AuthResponse),
Expand All @@ -52,4 +54,5 @@ export const handlers = [
msw_get(PROFIL_URL, null, 204),
msw_get(REAKTIVERING_URL, null, 204),
msw_get(ARBEIDSOKER_INNHOLD, arbeidssokerInnholdMock, 200),
msw_get(ARBEIDSOKERPERIODER_URL, arbeidssokerperioderMock, 200),
];

0 comments on commit 44703f1

Please sign in to comment.