@@ -23,7 +23,6 @@ import { SkjønnsfastsettingType } from '@saksbilde/sykepengegrunnlag/skjønnsfa
23
23
import { SkjønnsfastsettingÅrsak } from '@saksbilde/sykepengegrunnlag/skjønnsfastsetting/form/SkjønnsfastsettingÅrsak' ;
24
24
import { SkjønnsfastsettingArbeidsgivere } from '@saksbilde/sykepengegrunnlag/skjønnsfastsetting/form/arbeidsgivere/SkjønnsfastsettingArbeidsgivere' ;
25
25
import {
26
- ArbeidsgiverForm ,
27
26
Skjønnsfastsettingstype ,
28
27
usePostSkjønnsfastsattSykepengegrunnlag ,
29
28
} from '@saksbilde/sykepengegrunnlag/skjønnsfastsetting/skjønnsfastsetting' ;
@@ -36,30 +35,6 @@ import styles from './SkjønnsfastsettingForm.module.css';
36
35
37
36
const skjemaFamily = atomFamily ( ( _skjæringstidspunkt : string ) => atom < Maybe < SkjønnsfastsettingFormFields > > ( null ) ) ;
38
37
39
- export const useSkjønnsfastsettelseFormState = ( skjæringstidspunkt : string ) =>
40
- useAtomValue ( skjemaFamily ( skjæringstidspunkt ) ) ;
41
-
42
- export const useSetSkjønnsfastsettelseFormState = ( skjæringstidspunkt : string ) => {
43
- const setState = useSetAtom ( skjemaFamily ( skjæringstidspunkt ) ) ;
44
- return ( årsak : string , begrunnelseFritekst : string , type ?: Skjønnsfastsettingstype ) => {
45
- setState ( ( prevState ) => {
46
- return {
47
- ...( prevState ?? defaultState ) ,
48
- type : type ,
49
- årsak : årsak ,
50
- begrunnelseFritekst : begrunnelseFritekst ,
51
- } as SkjønnsfastsettingFormFields ;
52
- } ) ;
53
- } ;
54
- } ;
55
-
56
- const defaultState : SkjønnsfastsettingFormFields = {
57
- begrunnelseFritekst : '' ,
58
- type : undefined ,
59
- årsak : '' ,
60
- arbeidsgivere : [ ] ,
61
- } ;
62
-
63
38
export const useAktiveArbeidsgivere = (
64
39
person : PersonFragment ,
65
40
period : BeregnetPeriodeFragment | GhostPeriodeFragment ,
@@ -86,23 +61,15 @@ function useFormDefaults(
86
61
aktiveArbeidsgivereInntekter : Arbeidsgiverinntekt [ ] ,
87
62
forrigeSkjønnsfastsettelse : Sykepengegrunnlagskjonnsfastsetting | null ,
88
63
) : SkjønnsfastsettingFormFields {
89
- const skjønnsfastsettelseFormState = useSkjønnsfastsettelseFormState ( period . skjaeringstidspunkt ) ;
64
+ const skjønnsfastsettelseFormState = useAtomValue ( skjemaFamily ( period . skjaeringstidspunkt ) ) ;
90
65
if ( skjønnsfastsettelseFormState ) {
91
- return {
92
- begrunnelseFritekst : skjønnsfastsettelseFormState . begrunnelseFritekst ,
93
- type : skjønnsfastsettelseFormState . type ,
94
- årsak : skjønnsfastsettelseFormState . årsak ,
95
- arbeidsgivere : aktiveArbeidsgivereInntekter . map ( ( inntekt ) => ( {
96
- organisasjonsnummer : inntekt . arbeidsgiver ,
97
- årlig : 0 ,
98
- } ) ) ,
99
- } ;
66
+ return skjønnsfastsettelseFormState ;
100
67
} else {
101
68
if ( forrigeSkjønnsfastsettelse && ! forrigeSkjønnsfastsettelse . ferdigstilt ) {
102
69
return {
103
70
begrunnelseFritekst : forrigeSkjønnsfastsettelse . skjonnsfastsatt . begrunnelseFritekst ?? '' ,
104
- type : mapType ( forrigeSkjønnsfastsettelse . skjonnsfastsatt . type ) ?? '' ,
105
- årsak : forrigeSkjønnsfastsettelse . skjonnsfastsatt . arsak ?? '' ,
71
+ type : mapType ( forrigeSkjønnsfastsettelse . skjonnsfastsatt . type ) ,
72
+ årsak : forrigeSkjønnsfastsettelse . skjonnsfastsatt . arsak ,
106
73
arbeidsgivere : aktiveArbeidsgivereInntekter . map ( ( inntekt ) => ( {
107
74
organisasjonsnummer : inntekt . arbeidsgiver ,
108
75
årlig : 0 ,
@@ -111,7 +78,7 @@ function useFormDefaults(
111
78
} else {
112
79
return {
113
80
begrunnelseFritekst : '' ,
114
- type : undefined ,
81
+ type : null ,
115
82
årsak : '' ,
116
83
arbeidsgivere : aktiveArbeidsgivereInntekter . map ( ( inntekt ) => ( {
117
84
organisasjonsnummer : inntekt . arbeidsgiver ,
@@ -135,12 +102,17 @@ const mapType = (type: Maybe<Skjonnsfastsettingstype> = Skjonnsfastsettingstype.
135
102
} ;
136
103
137
104
export interface SkjønnsfastsettingFormFields {
138
- arbeidsgivere : ArbeidsgiverForm [ ] ;
105
+ arbeidsgivere : SkjønnsfastsettingFormFieldsArbeidsgiver [ ] ;
139
106
årsak : string ;
140
- type ? : Skjønnsfastsettingstype ;
107
+ type : Skjønnsfastsettingstype | null ;
141
108
begrunnelseFritekst : string ;
142
109
}
143
110
111
+ export interface SkjønnsfastsettingFormFieldsArbeidsgiver {
112
+ organisasjonsnummer : string ;
113
+ årlig : number ;
114
+ }
115
+
144
116
interface SkjønnsfastsettingFormProps {
145
117
person : PersonFragment ;
146
118
periode : BeregnetPeriodeFragment | GhostPeriodeFragment ;
@@ -177,7 +149,6 @@ export const SkjønnsfastsettingForm = ({
177
149
) ;
178
150
const erBeslutteroppgave = isBeregnetPeriode ( periode ) && ( periode . totrinnsvurdering ?. erBeslutteroppgave ?? false ) ;
179
151
const feiloppsummeringRef = useRef < HTMLDivElement > ( null ) ;
180
- const setSkjønnsfastsettelseFormState = useSetSkjønnsfastsettelseFormState ( periode . skjaeringstidspunkt ) ;
181
152
const avrundetSammenligningsgrunnlag = avrundetToDesimaler ( sammenligningsgrunnlag ) ;
182
153
const cancelEditing = ( ) => {
183
154
setEditing ( false ) ;
@@ -203,24 +174,24 @@ export const SkjønnsfastsettingForm = ({
203
174
control : control ,
204
175
} ) ;
205
176
206
- const watchedValues = watch ( [ 'årsak' , 'begrunnelseFritekst' , 'type' ] ) ;
207
-
208
- const prevValues = useRef ( watchedValues ) ;
177
+ const watchedFormFields = watch ( ) ;
178
+ const prevFormFields = useRef ( watchedFormFields ) ;
209
179
180
+ const setFormFields = useSetAtom ( skjemaFamily ( periode . skjaeringstidspunkt ) ) ;
210
181
useEffect ( ( ) => {
211
- if ( JSON . stringify ( prevValues . current ) !== JSON . stringify ( watchedValues ) ) {
212
- setSkjønnsfastsettelseFormState ( watchedValues [ 0 ] , watchedValues [ 1 ] , watchedValues [ 2 ] ) ;
213
- prevValues . current = watchedValues ;
182
+ if ( JSON . stringify ( prevFormFields . current ) !== JSON . stringify ( watchedFormFields ) ) {
183
+ setFormFields ( watchedFormFields ) ;
184
+ prevFormFields . current = watchedFormFields ;
214
185
}
215
- } , [ watchedValues , setSkjønnsfastsettelseFormState ] ) ;
186
+ } , [ watchedFormFields , setFormFields ] ) ;
216
187
217
188
const valgtMal = maler . find ( ( it ) => it . arsak === valgtÅrsak ) ;
218
189
219
190
const harFeil = ! formState . isValid && formState . isSubmitted ;
220
191
221
192
const visFeilOppsummering = harFeil && Object . entries ( formState . errors ) . length > 0 ;
222
193
const sykepengegrunnlagEndring = watch ( 'arbeidsgivere' ) ?. reduce (
223
- ( a : number , b : ArbeidsgiverForm ) => + a + + b . årlig ,
194
+ ( a : number , b : SkjønnsfastsettingFormFieldsArbeidsgiver ) => + a + + b . årlig ,
224
195
0.0 ,
225
196
) ;
226
197
@@ -324,7 +295,7 @@ const valgtInntekt = (
324
295
inntekt : Arbeidsgiverinntekt ,
325
296
antallAktiveArbeidsgivere : number ,
326
297
totaltSammenligningsgrunnlag : number ,
327
- type ? : Skjønnsfastsettingstype ,
298
+ type : Skjønnsfastsettingstype | null ,
328
299
) : number => {
329
300
switch ( type ) {
330
301
case Skjønnsfastsettingstype . OMREGNET_ÅRSINNTEKT :
0 commit comments