@@ -37,7 +37,7 @@ export class EnhetValueManager extends ContextValueManager {
37
37
if ( enhet && enhet === this . state . enhet . value ) {
38
38
return ;
39
39
}
40
-
40
+
41
41
const enheter = veileder . enheter ;
42
42
if ( ! enheter ?. length ) {
43
43
this . #resetFnrAndEnhetDueToNoLegalEnhet( ) ;
@@ -57,37 +57,35 @@ export class EnhetValueManager extends ContextValueManager {
57
57
) ;
58
58
} ;
59
59
60
- readonly updateEnhetLocallyToMatchContextHolder = async (
61
- ) => {
60
+ readonly updateEnhetLocallyToMatchContextHolder = async ( ) => {
62
61
const enheter = this . state . veileder ?. enheter ;
63
62
if ( ! enheter ?. length ) return ;
64
63
65
64
const passendeEnhet = enheter [ 0 ] ;
66
65
67
- const activeEnhet =
68
- await this . contextHolderApi . getVeiledersActiveEnhet ( ) ;
66
+ const activeEnhet = await this . contextHolderApi . getVeiledersActiveEnhet ( ) ;
69
67
if ( activeEnhet . error || ! activeEnhet . data ) {
70
68
this . #errorMessageManager. addErrorMessage (
71
69
PredefiniertFeilmeldinger . HENT_ENHET_FEILET ,
72
70
) ;
73
- return this . changeEnhetLocallyAndExternally ( passendeEnhet . enhetId ) ;
71
+ return this . changeEnhetLocallyAndExternally ( enheter , passendeEnhet . enhetId ) ;
74
72
}
75
- return this . changeEnhetLocally ( activeEnhet . data . aktivEnhet ) ;
73
+ return this . changeEnhetLocally ( enheter , activeEnhet . data . aktivEnhet ) ;
76
74
} ;
77
75
78
76
readonly #updateEnhetExternallyToMatchRequestedEnhet = async (
79
77
enheter : Enhet [ ] ,
80
78
enhet : string ,
81
79
) => {
82
80
if ( ! this . #haveLegalEnhet( enhet , enheter ) ) {
83
- return this . changeEnhetLocallyAndExternally ( enheter [ 0 ] . enhetId ) ;
81
+ return this . changeEnhetLocallyAndExternally ( enheter , enheter [ 0 ] . enhetId ) ;
84
82
}
85
- return this . changeEnhetLocallyAndExternally ( enhet ) ;
83
+ return this . changeEnhetLocallyAndExternally ( enheter , enhet ) ;
86
84
} ;
87
85
88
86
readonly #resetFnrAndEnhetDueToNoLegalEnhet = async ( ) => {
89
87
await this . #fnrValueManager. changeFnrLocallyAndExternally ( ) ;
90
- await this . changeEnhetLocallyAndExternally ( ) ;
88
+ await this . changeEnhetLocallyAndExternally ( [ ] ) ;
91
89
this . #errorMessageManager. addErrorMessage (
92
90
PredefiniertFeilmeldinger . INGEN_GYLDIG_ENHET ,
93
91
) ;
@@ -108,20 +106,31 @@ export class EnhetValueManager extends ContextValueManager {
108
106
readonly openEnhetModal = ( ) => this . openModal ( 'enhet' ) ;
109
107
110
108
readonly changeEnhetLocallyToWsRequestedValue = ( ) => {
111
- this . changeEnhetLocally ( this . state . enhet . wsRequestedValue ) ;
109
+ if ( ! this . state . veileder ?. enheter ) {
110
+ this . #errorMessageManager. addErrorMessage ( PredefiniertFeilmeldinger . WS_ERROR )
111
+ return
112
+ }
113
+
114
+ this . changeEnhetLocally ( this . state . veileder . enheter , this . state . enhet . wsRequestedValue ) ;
112
115
this . closeModal ( 'enhet' ) ;
113
116
} ;
114
117
115
- readonly changeEnhetLocally = async ( newEnhetId ?: string | null ) => {
116
- if ( ! newEnhetId ) {
118
+ readonly changeEnhetLocally = async (
119
+ veiledersEnheter : Enhet [ ] ,
120
+ newEnhetId ?: string | null ,
121
+ ) => {
122
+ if ( ! newEnhetId || ! veiledersEnheter . length ) {
117
123
const enhet = this . #updateEnhet( undefined ) ;
118
124
this . setState ( { enhet } ) ;
119
125
if ( this . #onEnhetChanged) this . #onEnhetChanged( newEnhetId ) ;
120
126
return ;
121
127
}
122
128
123
- const enhetResponse = await this . contextHolderApi . getEnhet ( newEnhetId ) ;
124
- if ( enhetResponse . error ) {
129
+ const matchendeEnhet = veiledersEnheter . find (
130
+ ( enhet ) => enhet . enhetId === newEnhetId ,
131
+ ) ;
132
+
133
+ if ( ! matchendeEnhet ) {
125
134
this . #errorMessageManager. addErrorMessage (
126
135
PredefiniertFeilmeldinger . HENT_ENHET_FEILET ,
127
136
) ;
@@ -130,15 +139,14 @@ export class EnhetValueManager extends ContextValueManager {
130
139
if ( this . #onEnhetChanged) this . #onEnhetChanged( null ) ;
131
140
return ;
132
141
}
133
- if ( ! enhetResponse . error && enhetResponse . data ) {
134
- const enhet = this . #updateEnhet( enhetResponse . data ) ;
135
- this . setState ( { enhet } ) ;
136
- if ( this . #onEnhetChanged) this . #onEnhetChanged( newEnhetId ) ;
137
- }
142
+
143
+ const enhet = this . #updateEnhet( matchendeEnhet ) ;
144
+ this . setState ( { enhet } ) ;
145
+ if ( this . #onEnhetChanged) this . #onEnhetChanged( newEnhetId ) ;
138
146
} ;
139
147
140
- readonly changeEnhetLocallyAndExternally = async ( newEnhetId ?: string ) => {
141
- await this . changeEnhetLocally ( newEnhetId ) ;
148
+ readonly changeEnhetLocallyAndExternally = async ( enheter : Enhet [ ] , newEnhetId ?: string ) => {
149
+ await this . changeEnhetLocally ( enheter , newEnhetId ) ;
142
150
this . contextHolderApi . changeEnhet ( newEnhetId ) ;
143
151
} ;
144
152
@@ -149,7 +157,7 @@ export class EnhetValueManager extends ContextValueManager {
149
157
} ;
150
158
151
159
readonly clearEnhet = ( ) => {
152
- this . changeEnhetLocally ( ) ;
160
+ this . changeEnhetLocally ( [ ] ) ;
153
161
} ;
154
162
155
163
#haveLegalEnhet = ( requestedEnhet : string , enheter : Enhet [ ] ) =>
0 commit comments