1
1
import * as React from 'react'
2
- import { useContext , useEffect } from 'react'
2
+ import { useContext , useEffect , useState } from 'react'
3
3
import { SelectOptionsManager as Options } from '@/service/SelectOptions'
4
4
import { FormDollyFieldArray } from '@/components/ui/form/fieldArray/DollyFieldArray'
5
5
import {
@@ -54,14 +54,27 @@ export const ForelderBarnRelasjonForm = ({
54
54
const antall = opts ?. antall || 1
55
55
const identMaster = opts ?. identMaster || 'PDLF'
56
56
57
- const [ erBarn , setErBarn ] = React . useState (
57
+ const [ erBarn , setErBarn ] = useState (
58
58
formMethods . watch ( `${ path } .relatertPersonsRolle` ) === RELASJON_BARN ,
59
59
)
60
+
60
61
const relatertPerson = 'relatertPerson'
61
62
const nyRelatertPerson = 'nyRelatertPerson'
62
63
const relatertPersonUtenFolkeregisteridentifikator =
63
64
'relatertPersonUtenFolkeregisteridentifikator'
64
65
66
+ const getRolle = ( ) => {
67
+ const rolle = formMethods . watch ( `${ path } .relatertPersonsRolle` )
68
+ return forelderTyper . includes ( rolle ) ? RELASJON_FORELDER : RELASJON_BARN
69
+ }
70
+
71
+ const [ relatertPersonsRolle , setRelatertPersonsRolle ] = useState ( getRolle ( ) )
72
+
73
+ useEffect ( ( ) => {
74
+ setRelatertPersonsRolle ( getRolle ( ) )
75
+ setErBarn ( formMethods . watch ( `${ path } .relatertPersonsRolle` ) === RELASJON_BARN )
76
+ } , [ formMethods . watch ( 'pdldata.person.forelderBarnRelasjon' ) ?. length ] )
77
+
65
78
const handleChangeTypeForelderBarn = ( target : Target , path : string ) => {
66
79
const forelderBarnRelasjon = formMethods . watch ( path )
67
80
const forelderBarnClone = _ . cloneDeep ( forelderBarnRelasjon )
@@ -92,12 +105,6 @@ export const ForelderBarnRelasjonForm = ({
92
105
formMethods . trigger ( path )
93
106
}
94
107
95
- const relatertPersonsRolle = forelderTyper . includes (
96
- formMethods . watch ( `${ path } .relatertPersonsRolle` ) ,
97
- )
98
- ? RELASJON_FORELDER
99
- : RELASJON_BARN
100
-
101
108
const id = formMethods . watch ( `${ path } .id` )
102
109
103
110
const getForelderBarnType = ( ) => {
@@ -130,6 +137,7 @@ export const ForelderBarnRelasjonForm = ({
130
137
< div className = "toggle--wrapper" >
131
138
< ToggleGroup
132
139
onChange = { ( value : string ) => {
140
+ setRelatertPersonsRolle ( value )
133
141
formMethods . setValue (
134
142
path ,
135
143
value === RELASJON_BARN
@@ -140,7 +148,7 @@ export const ForelderBarnRelasjonForm = ({
140
148
formMethods . trigger ( path )
141
149
} }
142
150
size = { 'small' }
143
- defaultValue = { relatertPersonsRolle || RELASJON_BARN }
151
+ value = { relatertPersonsRolle }
144
152
style = { { backgroundColor : '#ffffff' } }
145
153
>
146
154
< ToggleGroup . Item value = { RELASJON_BARN } style = { { marginRight : 0 } } >
@@ -249,12 +257,20 @@ export const ForelderBarnRelasjon = ({ formMethods }: ForelderForm) => {
249
257
const { identtype, identMaster, personFoerLeggTil } = useContext ( BestillingsveilederContext )
250
258
const initiellMaster = identMaster === 'PDL' || identtype === 'NPID' ? 'PDL' : 'FREG'
251
259
260
+ const handleRemoveEntry = ( idx : number ) => {
261
+ const forelderBarnListe = formMethods . watch ( 'pdldata.person.forelderBarnRelasjon' )
262
+ const filterForelderBarnListe = forelderBarnListe ?. filter ( ( _ , index ) => index !== idx )
263
+ formMethods . setValue ( 'pdldata.person.forelderBarnRelasjon' , filterForelderBarnListe )
264
+ formMethods . trigger ( 'pdldata.person.forelderBarnRelasjon' )
265
+ }
266
+
252
267
return (
253
268
< FormDollyFieldArray
254
269
name = "pdldata.person.forelderBarnRelasjon"
255
270
header = { 'Relasjon' }
256
271
newEntry = { getInitialBarn ( initiellMaster ) }
257
272
canBeEmpty = { false }
273
+ handleRemoveEntry = { handleRemoveEntry }
258
274
>
259
275
{ ( path : string , idx : number ) => {
260
276
return (
0 commit comments