Skip to content

Commit bfa8f44

Browse files
🐛 SkjønnsfastsettingForm lukkes ved hopping mellom skjæringstidspunkt
* Skjemaet caches per skjæringstidspunkt og resettes når man går til oversikten Co-authored-by: Martin Solheim <[email protected]>
1 parent 0d571f1 commit bfa8f44

File tree

4 files changed

+24
-10
lines changed

4 files changed

+24
-10
lines changed

src/routes/saksbilde/sykepengegrunnlag/skjønnsfastsetting/SkjønnsfastsettingSykepengegrunnlag.tsx

+9-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import classNames from 'classnames';
2-
import React, { useEffect, useState } from 'react';
2+
import React, { useEffect, useRef, useState } from 'react';
33

44
import { useSkjønnsfastsettelsesMaler } from '@external/sanity';
55
import {
@@ -54,6 +54,14 @@ export const SkjønnsfastsettingSykepengegrunnlag = ({
5454
setEndretSykepengegrunnlag(null);
5555
}, [editing]);
5656

57+
const skjæringstidspunktRef = useRef(periode.skjaeringstidspunkt);
58+
useEffect(() => {
59+
if (periode.skjaeringstidspunkt !== skjæringstidspunktRef.current) {
60+
setEditing(false);
61+
skjæringstidspunktRef.current = periode.skjaeringstidspunkt;
62+
}
63+
}, [periode.skjaeringstidspunkt]);
64+
5765
return (
5866
<div className={classNames(styles.formWrapper, editing && styles.redigerer)}>
5967
<SkjønnsfastsettingHeader

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

+1-1
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ export const SkjønnsfastsettingForm = ({
6969
);
7070
const erBeslutteroppgave = isBeregnetPeriode(periode) && (periode.totrinnsvurdering?.erBeslutteroppgave ?? false);
7171
const feiloppsummeringRef = useRef<HTMLDivElement>(null);
72-
const setSkjønnsfastsettelseFormState = useSetSkjønnsfastsettelseFormState();
72+
const setSkjønnsfastsettelseFormState = useSetSkjønnsfastsettelseFormState(periode.skjaeringstidspunkt);
7373
const avrundetSammenligningsgrunnlag = avrundetToDesimaler(sammenligningsgrunnlag);
7474
const cancelEditing = () => {
7575
setEditing(false);

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

+1-1
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ export const useSkjønnsfastsettingDefaults = (
2424
defaults: SkjønnsfastsettingFormFields;
2525
} => {
2626
const arbeidsgiver = useCurrentArbeidsgiver(person);
27-
const skjønnsfastsettelseFormState = useSkjønnsfastsettelseFormState();
27+
const skjønnsfastsettelseFormState = useSkjønnsfastsettelseFormState(period.skjaeringstidspunkt);
2828

2929
if (!arbeidsgiver)
3030
return {

src/state/forms/skjønnsfastsetting.ts

+13-7
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,22 @@
11
import { atom, useAtomValue, useSetAtom } from 'jotai';
2+
import { atomFamily } from 'jotai/utils';
23
import { useEffect } from 'react';
34

45
import { Maybe } from '@io/graphql';
56
import { SkjønnsfastsettingFormFields } from '@saksbilde/sykepengegrunnlag/skjønnsfastsetting/form/skjønnsfastsettingForm/SkjønnsfastsettingForm';
67
import { Skjønnsfastsettingstype } from '@saksbilde/sykepengegrunnlag/skjønnsfastsetting/skjønnsfastsetting';
78

8-
const skjønnsfastsettelseFormState = atom<Maybe<SkjønnsfastsettingFormFields>>(null);
9+
const skjemaFamily = atomFamily(
10+
// _ er skjæringstidspunkt som brukes som key til skjemaFamily
11+
(_: string) => atom<Maybe<SkjønnsfastsettingFormFields>>(null),
12+
(a, b) => a === b,
13+
);
914

10-
export const useSkjønnsfastsettelseFormState = () => useAtomValue(skjønnsfastsettelseFormState);
15+
export const useSkjønnsfastsettelseFormState = (skjæringstidspunkt: string) =>
16+
useAtomValue(skjemaFamily(skjæringstidspunkt));
1117

12-
export const useSetSkjønnsfastsettelseFormState = () => {
13-
const setState = useSetAtom(skjønnsfastsettelseFormState);
18+
export const useSetSkjønnsfastsettelseFormState = (skjæringstispunkt: string) => {
19+
const setState = useSetAtom(skjemaFamily(skjæringstispunkt));
1420
return (årsak: string, begrunnelseFritekst: string, type?: Skjønnsfastsettingstype) => {
1521
setState((prevState) => {
1622
if (prevState) {
@@ -33,10 +39,10 @@ export const useSetSkjønnsfastsettelseFormState = () => {
3339
};
3440

3541
export const useResetSkjønnsfastsettelseFormState = () => {
36-
const setState = useSetAtom(skjønnsfastsettelseFormState);
3742
useEffect(() => {
38-
setState(null);
39-
}, [setState]);
43+
skjemaFamily.setShouldRemove(() => true);
44+
skjemaFamily.setShouldRemove(null);
45+
}, []);
4046
};
4147

4248
const defaultState: SkjønnsfastsettingFormFields = {

0 commit comments

Comments
 (0)