Skip to content

Commit bfabb94

Browse files
✨ SkjønnsfastsettelseForm lagrer verdier lokalt for en person
Co-authored-by: Martin Solheim <[email protected]>
1 parent 0eba575 commit bfabb94

File tree

4 files changed

+56
-3
lines changed

4 files changed

+56
-3
lines changed

src/routes/oversikt/Oversikt.tsx

+2
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ import { BehandlingsstatistikkView } from '@oversikt/behandlingsstatistikk/Behan
1515
import { FiltermenySkeleton } from '@oversikt/filtermeny/Filtermeny';
1616
import { BehandletIdagTable } from '@oversikt/table/BehandletIdagTable';
1717
import { OppgaverTable } from '@oversikt/table/oppgaverTable/OppgaverTable';
18+
import { useResetSkjønnsfastsettelseFormState } from '@state/forms/skjønnsfastsetting';
1819
import { useOppgaveFeed } from '@state/oppgaver';
1920

2021
import { IngenOppgaver } from './IngenOppgaver';
@@ -48,6 +49,7 @@ export const Oversikt = (): ReactElement => {
4849
useKeyboardShortcuts();
4950
useFjernPersonFraApolloCache();
5051
useRefetchDriftsmeldinger();
52+
useResetSkjønnsfastsettelseFormState();
5153

5254
return (
5355
<main className={styles.Oversikt}>

src/routes/saksbilde/sykepengegrunnlag/skjønnsfastsetting/form/skjønnsfastsettingForm/SkjønnsfastsettingForm.tsx

+13
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ import {
2323
Skjønnsfastsettingstype,
2424
usePostSkjønnsfastsattSykepengegrunnlag,
2525
} from '@saksbilde/sykepengegrunnlag/skjønnsfastsetting/skjønnsfastsetting';
26+
import { useSetSkjønnsfastsettelseFormState } from '@state/forms/skjønnsfastsetting';
2627
import { avrundetToDesimaler } from '@utils/tall';
2728
import { isBeregnetPeriode } from '@utils/typeguards';
2829

@@ -68,6 +69,7 @@ export const SkjønnsfastsettingForm = ({
6869
);
6970
const erBeslutteroppgave = isBeregnetPeriode(periode) && (periode.totrinnsvurdering?.erBeslutteroppgave ?? false);
7071
const feiloppsummeringRef = useRef<HTMLDivElement>(null);
72+
const setSkjønnsfastsettelseFormState = useSetSkjønnsfastsettelseFormState();
7173
const avrundetSammenligningsgrunnlag = avrundetToDesimaler(sammenligningsgrunnlag);
7274
const cancelEditing = () => {
7375
setEditing(false);
@@ -93,6 +95,17 @@ export const SkjønnsfastsettingForm = ({
9395
control: control,
9496
});
9597

98+
const watchedValues = watch(['årsak', 'begrunnelseFritekst', 'type']);
99+
100+
const prevValues = useRef(watchedValues);
101+
102+
useEffect(() => {
103+
if (JSON.stringify(prevValues.current) !== JSON.stringify(watchedValues)) {
104+
setSkjønnsfastsettelseFormState(watchedValues[0], watchedValues[1], watchedValues[2]);
105+
prevValues.current = watchedValues;
106+
}
107+
}, [watchedValues, setSkjønnsfastsettelseFormState]);
108+
96109
const valgtMal = maler.find((it) => it.arsak === valgtÅrsak);
97110

98111
const harFeil = !formState.isValid && formState.isSubmitted;

src/routes/saksbilde/sykepengegrunnlag/skjønnsfastsetting/form/skjønnsfastsettingForm/useSkjønnsfastsettingDefaults.tsx

+6-3
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ import {
99
} from '@io/graphql';
1010
import { Skjønnsfastsettingstype } from '@saksbilde/sykepengegrunnlag/skjønnsfastsetting/skjønnsfastsetting';
1111
import { useCurrentArbeidsgiver } from '@state/arbeidsgiver';
12+
import { useSkjønnsfastsettelseFormState } from '@state/forms/skjønnsfastsetting';
1213
import { isSykepengegrunnlagskjønnsfastsetting } from '@utils/typeguards';
1314

1415
import { SkjønnsfastsettingFormFields } from './SkjønnsfastsettingForm';
@@ -23,6 +24,7 @@ export const useSkjønnsfastsettingDefaults = (
2324
defaults: SkjønnsfastsettingFormFields;
2425
} => {
2526
const arbeidsgiver = useCurrentArbeidsgiver(person);
27+
const skjønnsfastsettelseFormState = useSkjønnsfastsettelseFormState();
2628

2729
if (!arbeidsgiver)
2830
return {
@@ -89,9 +91,10 @@ export const useSkjønnsfastsettingDefaults = (
8991
aktiveArbeidsgivere: aktiveArbeidsgivere,
9092
aktiveArbeidsgivereInntekter: aktiveArbeidsgivereInntekter,
9193
defaults: {
92-
begrunnelseFritekst: forrigeSkjønnsfastsettelseFritekst,
93-
type: forrigeType ?? '',
94-
årsak: '',
94+
begrunnelseFritekst:
95+
skjønnsfastsettelseFormState?.begrunnelseFritekst ?? forrigeSkjønnsfastsettelseFritekst,
96+
type: skjønnsfastsettelseFormState?.type ?? forrigeType ?? '',
97+
årsak: skjønnsfastsettelseFormState?.årsak ?? '',
9598
arbeidsgivere: aktiveArbeidsgivereInntekter.map((inntekt) => ({
9699
organisasjonsnummer: inntekt.arbeidsgiver,
97100
årlig: 0,
+35
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
import { useEffect } from 'react';
2+
import { atom, useRecoilState, useRecoilValue, useSetRecoilState } from 'recoil';
3+
4+
import { Maybe } from '@io/graphql';
5+
import { SkjønnsfastsettingFormFields } from '@saksbilde/sykepengegrunnlag/skjønnsfastsetting/form/skjønnsfastsettingForm/SkjønnsfastsettingForm';
6+
import { Skjønnsfastsettingstype } from '@saksbilde/sykepengegrunnlag/skjønnsfastsetting/skjønnsfastsetting';
7+
8+
const skjønnsfastsettelseFormState = atom<Maybe<SkjønnsfastsettingFormFields>>({
9+
key: 'skjønnsfastsettelseFormState',
10+
default: null,
11+
});
12+
13+
export const useSkjønnsfastsettelseFormState = () => useRecoilValue(skjønnsfastsettelseFormState);
14+
15+
export const useSetSkjønnsfastsettelseFormState = () => {
16+
const [state, setState] = useRecoilState(skjønnsfastsettelseFormState);
17+
return (årsak: string, begrunnelseFritekst: string, type?: Skjønnsfastsettingstype) => {
18+
const prevState = state ?? defaultState;
19+
setState({ ...prevState, type: type, årsak: årsak, begrunnelseFritekst: begrunnelseFritekst });
20+
};
21+
};
22+
23+
export const useResetSkjønnsfastsettelseFormState = () => {
24+
const setState = useSetRecoilState(skjønnsfastsettelseFormState);
25+
useEffect(() => {
26+
setState(null);
27+
}, [setState]);
28+
};
29+
30+
const defaultState: SkjønnsfastsettingFormFields = {
31+
begrunnelseFritekst: '',
32+
type: undefined,
33+
årsak: '',
34+
arbeidsgivere: [],
35+
};

0 commit comments

Comments
 (0)