@@ -14,6 +14,7 @@ import { CardToolbarComponent } from "@/features/common/components/card-toolbar/
14
14
import { CardToolbarCopyButtonComponent } from "@/features/common/components/card-toolbar-buttons/card-toolbar-copy-button/card-toolbar-copy-button.component" ;
15
15
import { CardToolbarClearButtonComponent } from "@/features/common/components/card-toolbar-buttons/card-toolbar-clear-button/card-toolbar-clear-button.component" ;
16
16
import styles from "./jwt-input.module.scss" ;
17
+ import { CheckboxComponent } from "@/features/common/components/checkbox/checkbox.component" ;
17
18
18
19
type JwtInputComponentProps = {
19
20
languageCode : string ;
@@ -24,14 +25,18 @@ export const JwtInputComponent: React.FC<JwtInputComponentProps> = ({
24
25
languageCode,
25
26
dictionary,
26
27
} ) => {
28
+ const [ autoFocusEnabled , setAutofocusEnabled ] = useState ( ( ) => {
29
+ const saved = localStorage . getItem ( "autofocus-enabled" ) ;
30
+ return saved ? ! ! JSON . parse ( saved ) : false
31
+ } ) ;
27
32
const handleJwtChange$ = useDecoderStore ( ( state ) => state . handleJwtChange ) ;
28
33
const jwt$ = useDecoderStore ( ( state ) => state . jwt ) ;
29
34
const decodeErrors$ = useDecoderStore ( ( state ) => state . decodingErrors ) ;
30
35
31
36
const decoderInputs$ = useDebuggerStore ( ( state ) => state . decoderInputs$ ) ;
32
37
33
38
const [ token , setToken ] = useState < string > (
34
- decoderInputs$ . jwt || DEFAULT_JWT . token ,
39
+ decoderInputs$ . jwt || DEFAULT_JWT . token
35
40
) ;
36
41
37
42
const clearValue = async ( ) => {
@@ -46,13 +51,23 @@ export const JwtInputComponent: React.FC<JwtInputComponentProps> = ({
46
51
handleJwtChange$ ( cleanValue ) ;
47
52
} ;
48
53
54
+ const handleCheckboxChange = ( selected : boolean ) => {
55
+ localStorage . setItem ( "autofocus-enabled" , JSON . stringify ( selected ) )
56
+ setAutofocusEnabled ( selected )
57
+ }
58
+
49
59
useEffect ( ( ) => {
50
60
setToken ( jwt$ ) ;
51
61
} , [ jwt$ ] ) ;
52
62
53
63
return (
54
64
< >
55
- < span className = { styles . headline } > { dictionary . headline } </ span >
65
+ < div style = { { display : "flex" , justifyContent : "space-between" } } >
66
+ < span className = { styles . headline } > { dictionary . headline } </ span >
67
+ < CheckboxComponent isSelected = { autoFocusEnabled } onChange = { e => handleCheckboxChange ( e ) } >
68
+ < span className = { styles . checkbox__label } > Enable auto-focus</ span >
69
+ </ CheckboxComponent >
70
+ </ div >
56
71
< CardComponent
57
72
id = { dataTestidDictionary . decoder . jwtEditor . id }
58
73
languageCode = { languageCode }
@@ -84,7 +99,7 @@ export const JwtInputComponent: React.FC<JwtInputComponentProps> = ({
84
99
) ,
85
100
} }
86
101
>
87
- < JwtEditorComponent token = { token } handleJwtChange = { handleJwtChange } />
102
+ < JwtEditorComponent token = { token } handleJwtChange = { handleJwtChange } autoFocus = { autoFocusEnabled } />
88
103
</ CardComponent >
89
104
</ >
90
105
) ;
0 commit comments