1
- import React from 'react' ;
1
+ import React , { useEffect , useState } from 'react' ;
2
2
3
3
import { prosessStegCodes } from '@k9-sak-web/konstanter' ;
4
4
import { FadingPanel , LoadingPanel } from '@fpsak-frontend/shared-components' ;
@@ -15,123 +15,133 @@ import prosessStegHooks from '../util/prosessSteg/prosessStegHooks';
15
15
import { ProsessStegUtledet } from '../util/prosessSteg/ProsessStegUtledet' ;
16
16
17
17
interface OwnProps {
18
- fagsak : Fagsak ;
19
- behandling : Behandling ;
20
- alleKodeverk : { [ key : string ] : KodeverkMedNavn [ ] } ;
21
- valgtProsessSteg ?: ProsessStegUtledet ;
22
- apentFaktaPanelInfo ?: { urlCode : string ; textCode : string } ;
23
- oppdaterProsessStegOgFaktaPanelIUrl ?: ( punktnavn ?: string , faktanavn ?: string ) => void ;
24
- lagringSideeffekterCallback : (
25
- aksjonspunktModeller : [ { kode : string ; isVedtakSubmission ?: boolean ; sendVarsel ?: boolean } ] ,
26
- ) => any ;
27
- lagreAksjonspunkter : ( params : any , keepData ?: boolean ) => Promise < any > ;
28
- lagreOverstyrteAksjonspunkter ?: ( params : any , keepData ?: boolean ) => Promise < any > ;
29
- useMultipleRestApi : ( endpoints : EndpointData [ ] , options : Options ) => RestApiData < any > ;
30
- featureToggles ?: FeatureToggles ;
18
+ fagsak : Fagsak ;
19
+ behandling : Behandling ;
20
+ alleKodeverk : { [ key : string ] : KodeverkMedNavn [ ] } ;
21
+ valgtProsessSteg ?: ProsessStegUtledet ;
22
+ apentFaktaPanelInfo ?: { urlCode : string ; textCode : string } ;
23
+ oppdaterProsessStegOgFaktaPanelIUrl ?: ( punktnavn ?: string , faktanavn ?: string ) => void ;
24
+ lagringSideeffekterCallback : (
25
+ aksjonspunktModeller : [ { kode : string ; isVedtakSubmission ?: boolean ; sendVarsel ?: boolean } ] ,
26
+ ) => any ;
27
+ lagreAksjonspunkter : ( params : any , keepData ?: boolean ) => Promise < any > ;
28
+ lagreOverstyrteAksjonspunkter ?: ( params : any , keepData ?: boolean ) => Promise < any > ;
29
+ useMultipleRestApi : ( endpoints : EndpointData [ ] , options : Options ) => RestApiData < any > ;
30
+ featureToggles ?: FeatureToggles ;
31
31
}
32
32
33
33
const ProsessStegPanel = ( {
34
- valgtProsessSteg,
35
- fagsak,
36
- behandling,
37
- alleKodeverk,
38
- apentFaktaPanelInfo,
39
- oppdaterProsessStegOgFaktaPanelIUrl,
40
- lagringSideeffekterCallback,
41
- lagreAksjonspunkter,
42
- lagreOverstyrteAksjonspunkter,
43
- useMultipleRestApi,
44
- featureToggles,
45
- } : OwnProps ) => {
46
- const erHenlagtOgVedtakStegValgt =
47
- behandling . behandlingHenlagt && valgtProsessSteg && valgtProsessSteg . getUrlKode ( ) === prosessStegCodes . VEDTAK ;
34
+ valgtProsessSteg,
35
+ fagsak,
36
+ behandling,
37
+ alleKodeverk,
38
+ apentFaktaPanelInfo,
39
+ oppdaterProsessStegOgFaktaPanelIUrl,
40
+ lagringSideeffekterCallback,
41
+ lagreAksjonspunkter,
42
+ lagreOverstyrteAksjonspunkter,
43
+ useMultipleRestApi,
44
+ featureToggles,
45
+ } : OwnProps ) => {
46
+ const erHenlagtOgVedtakStegValgt =
47
+ behandling . behandlingHenlagt && valgtProsessSteg && valgtProsessSteg . getUrlKode ( ) === prosessStegCodes . VEDTAK ;
48
48
49
- const panelKeys = valgtProsessSteg
50
- ? valgtProsessSteg
51
- . getDelPaneler ( ) [ 0 ]
52
- . getProsessStegDelPanelDef ( )
53
- . getEndepunkter ( featureToggles )
54
- . map ( e => ( { key : e } ) )
55
- : [ ] ;
49
+ const panelKeys = valgtProsessSteg
50
+ ? valgtProsessSteg
51
+ . getDelPaneler ( ) [ 0 ]
52
+ . getProsessStegDelPanelDef ( )
53
+ . getEndepunkter ( featureToggles )
54
+ . map ( e => ( { key : e } ) )
55
+ : [ ] ;
56
56
57
- const suspendRequest = ! ! (
58
- panelKeys . length === 0 ||
59
- erHenlagtOgVedtakStegValgt ||
60
- ! valgtProsessSteg ||
61
- ( ! valgtProsessSteg . getErStegBehandlet ( ) && valgtProsessSteg . getUrlKode ( ) )
62
- ) ;
57
+ const suspendRequest = ! ! (
58
+ panelKeys . length === 0 ||
59
+ erHenlagtOgVedtakStegValgt ||
60
+ ! valgtProsessSteg ||
61
+ ( ! valgtProsessSteg . getErStegBehandlet ( ) && valgtProsessSteg . getUrlKode ( ) )
62
+ ) ;
63
63
64
- const { data, state : hentDataState } = useMultipleRestApi ( panelKeys , {
65
- keepData : true ,
66
- isCachingOn : true ,
67
- suspendRequest,
68
- updateTriggers : [ behandling ?. versjon , suspendRequest , valgtProsessSteg ] ,
69
- } ) ;
64
+ const { data, state : hentDataState } = useMultipleRestApi ( panelKeys , {
65
+ keepData : true ,
66
+ isCachingOn : true ,
67
+ suspendRequest,
68
+ updateTriggers : [ behandling ?. versjon , suspendRequest , valgtProsessSteg ] ,
69
+ } ) ;
70
70
71
- const bekreftAksjonspunktCallback = prosessStegHooks . useBekreftAksjonspunkt (
72
- fagsak ,
73
- behandling ,
74
- lagringSideeffekterCallback ,
75
- lagreAksjonspunkter ,
76
- lagreOverstyrteAksjonspunkter ,
77
- valgtProsessSteg ,
78
- ) ;
71
+ const bekreftAksjonspunktCallback = prosessStegHooks . useBekreftAksjonspunkt (
72
+ fagsak ,
73
+ behandling ,
74
+ lagringSideeffekterCallback ,
75
+ lagreAksjonspunkter ,
76
+ lagreOverstyrteAksjonspunkter ,
77
+ valgtProsessSteg ,
78
+ ) ;
79
79
80
- if ( erHenlagtOgVedtakStegValgt ) {
81
- return < BehandlingHenlagtPanel /> ;
82
- }
83
- if ( ! valgtProsessSteg ) {
84
- return null ;
85
- }
86
- if ( ! valgtProsessSteg . getErStegBehandlet ( ) && valgtProsessSteg . getUrlKode ( ) ) {
87
- return < ProsessStegIkkeBehandletPanel /> ;
88
- }
89
80
90
- const harHentetData = panelKeys . length === 0 || hentDataState === RestApiState . SUCCESS ;
91
- const delPaneler = valgtProsessSteg . getDelPaneler ( ) ;
81
+ if ( erHenlagtOgVedtakStegValgt ) {
82
+ return < BehandlingHenlagtPanel /> ;
83
+ }
84
+ if ( ! valgtProsessSteg ) {
85
+ return null ;
86
+ }
87
+ if ( ! valgtProsessSteg . getErStegBehandlet ( ) && valgtProsessSteg . getUrlKode ( ) ) {
88
+ return < ProsessStegIkkeBehandletPanel /> ;
89
+ }
92
90
93
- return (
94
- // eslint-disable-next-line react/jsx-no-useless-fragment
95
- < >
96
- { valgtProsessSteg . getErStegBehandlet ( ) && (
97
- < MargMarkering
98
- behandlingStatus = { behandling . status }
99
- aksjonspunkter = { valgtProsessSteg . getAksjonspunkter ( ) }
100
- isReadOnly = { valgtProsessSteg . getErReadOnly ( ) }
101
- visAksjonspunktMarkering = { delPaneler . length === 1 }
102
- >
103
- { delPaneler . length === 1 && (
104
- < FadingPanel >
105
- { ! harHentetData && < LoadingPanel /> }
106
- { harHentetData && (
107
- < >
108
- { delPaneler [ 0 ] . getProsessStegDelPanelDef ( ) . getKomponent ( {
109
- behandling,
110
- featureToggles,
111
- alleKodeverk,
112
- submitCallback : bekreftAksjonspunktCallback ,
113
- ...delPaneler [ 0 ] . getKomponentData ( ) ,
114
- ...data ,
115
- } ) }
116
- </ >
117
- ) }
118
- </ FadingPanel >
119
- ) }
120
- { delPaneler . length > 1 && (
121
- < InngangsvilkarPanel
122
- behandling = { behandling }
123
- alleKodeverk = { alleKodeverk }
124
- prosessStegData = { delPaneler }
125
- submitCallback = { bekreftAksjonspunktCallback }
126
- apentFaktaPanelInfo = { apentFaktaPanelInfo }
127
- oppdaterProsessStegOgFaktaPanelIUrl = { oppdaterProsessStegOgFaktaPanelIUrl }
128
- useMultipleRestApi = { useMultipleRestApi }
129
- />
130
- ) }
131
- </ MargMarkering >
132
- ) }
133
- </ >
134
- ) ;
91
+ const harHentetData = panelKeys . length === 0 || hentDataState === RestApiState . SUCCESS ;
92
+ const delPaneler = valgtProsessSteg . getDelPaneler ( ) ;
93
+
94
+ const [ formData , setFormData ] = useState ( { } ) ;
95
+ useEffect ( ( ) => {
96
+ if ( formData ) {
97
+ setFormData ( undefined ) ;
98
+ }
99
+ } , [ behandling . versjon ] ) ;
100
+
101
+ return (
102
+ // eslint-disable-next-line react/jsx-no-useless-fragment
103
+ < >
104
+ { valgtProsessSteg . getErStegBehandlet ( ) && (
105
+ < MargMarkering
106
+ behandlingStatus = { behandling . status }
107
+ aksjonspunkter = { valgtProsessSteg . getAksjonspunkter ( ) }
108
+ isReadOnly = { valgtProsessSteg . getErReadOnly ( ) }
109
+ visAksjonspunktMarkering = { delPaneler . length === 1 }
110
+ >
111
+ { delPaneler . length === 1 && (
112
+ < FadingPanel >
113
+ { ! harHentetData && < LoadingPanel /> }
114
+ { harHentetData && (
115
+ < >
116
+ { delPaneler [ 0 ] . getProsessStegDelPanelDef ( ) . getKomponent ( {
117
+ behandling,
118
+ featureToggles,
119
+ alleKodeverk,
120
+ formData,
121
+ setFormData,
122
+ submitCallback : bekreftAksjonspunktCallback ,
123
+ ...delPaneler [ 0 ] . getKomponentData ( ) ,
124
+ ...data ,
125
+ } ) }
126
+ </ >
127
+ ) }
128
+ </ FadingPanel >
129
+ ) }
130
+ { delPaneler . length > 1 && (
131
+ < InngangsvilkarPanel
132
+ behandling = { behandling }
133
+ alleKodeverk = { alleKodeverk }
134
+ prosessStegData = { delPaneler }
135
+ submitCallback = { bekreftAksjonspunktCallback }
136
+ apentFaktaPanelInfo = { apentFaktaPanelInfo }
137
+ oppdaterProsessStegOgFaktaPanelIUrl = { oppdaterProsessStegOgFaktaPanelIUrl }
138
+ useMultipleRestApi = { useMultipleRestApi }
139
+ />
140
+ ) }
141
+ </ MargMarkering >
142
+ ) }
143
+ </ >
144
+ ) ;
135
145
} ;
136
146
137
147
export default ProsessStegPanel ;
0 commit comments