1
- import React from 'react' ;
1
+ import React , { ChangeEvent , useMemo } from 'react' ;
2
2
import { Select } from '@navikt/ds-react' ;
3
- import { ChangeEvent , useMemo } from 'react' ;
4
3
import StoreHandler from '../store/StoreHandler' ;
5
4
6
5
const EnhetVelger : React . FC = ( ) => {
@@ -9,53 +8,43 @@ const EnhetVelger: React.FC = () => {
9
8
enhetId : state . enhet . value ,
10
9
} ) ) ;
11
10
12
- const options = useMemo ( ( ) => {
13
- const res : JSX . Element [ ] = [ ] ;
14
-
15
- if ( enheter ?. length ) {
16
- res . push (
17
- < option value = "" key = "velg_enheter" disabled >
18
- Velg enhet
19
- </ option > ,
20
- ) ;
21
-
22
- for ( const enhet of enheter ) {
23
- res . push (
24
- < option
25
- key = { enhet . enhetId }
26
- value = { enhet . enhetId }
27
- > { `${ enhet . enhetId } ${ enhet . navn } ` } </ option > ,
28
- ) ;
29
- }
30
- }
31
- return res ;
11
+ const options : React . JSX . Element [ ] = useMemo ( ( ) => {
12
+ const enhetOptions =
13
+ enheter ?. map ( ( enhet ) => (
14
+ < option key = { enhet . enhetId } value = { enhet . enhetId } >
15
+ { `${ enhet . enhetId } ${ enhet . navn } ` }
16
+ </ option >
17
+ ) ) ?? [ ] ;
18
+
19
+ return [
20
+ < option value = "" key = "velg_enhet" disabled selected >
21
+ Velg enhet
22
+ </ option > ,
23
+ ...enhetOptions ,
24
+ ] ;
32
25
} , [ enheter ] ) ;
33
26
34
- const onChange = ( e : ChangeEvent < HTMLSelectElement > ) => {
35
- if ( ! enheter ) {
27
+ const onChange = async ( e : ChangeEvent < HTMLSelectElement > ) => {
28
+ if ( ! enheter ?. length ) {
36
29
throw new Error ( 'Hadde ingen enheter når veileder prøvde å endre enhet' ) ;
37
30
}
38
31
const value = e . currentTarget . value ;
39
- StoreHandler . enhetValueManager . changeEnhetLocallyAndExternally (
32
+ await StoreHandler . enhetValueManager . changeEnhetLocallyAndExternally (
40
33
enheter ,
41
34
value ,
42
35
) ;
43
36
} ;
44
37
45
- if ( ! options . length || enheter ?. length === 1 ) return null ;
46
-
47
38
return (
48
- < >
49
- < Select
50
- aria-label = "Velg enhet"
51
- value = { enhetId ?? undefined }
52
- label = { undefined }
53
- onChange = { onChange }
54
- className = "!dr-w-52 !dr-border !dr-border-solid !dr-border-gray-400 !dr-rounded-medium !dr-outline-none"
55
- >
56
- { options }
57
- </ Select >
58
- </ >
39
+ < Select
40
+ value = { enhetId ?? undefined }
41
+ label = "Velg enhet"
42
+ onChange = { onChange }
43
+ hideLabel
44
+ className = "dr-w-64"
45
+ >
46
+ { options }
47
+ </ Select >
59
48
) ;
60
49
} ;
61
50
0 commit comments