@@ -5,9 +5,15 @@ type OptionItem = {
5
5
value : string ;
6
6
label : string ;
7
7
checked ?: boolean ;
8
- }
8
+ } ;
9
9
10
- function Option ( { item, name, required, selectedValue, onChange} : {
10
+ function Option ( {
11
+ item,
12
+ name,
13
+ required,
14
+ selectedValue,
15
+ onChange
16
+ } : {
11
17
item : OptionItem ;
12
18
name : string ;
13
19
required ?: boolean ;
@@ -33,10 +39,13 @@ function Option({item, name, required, selectedValue, onChange}: {
33
39
34
40
type InputElementWithValidationMessage = HTMLInputElement & {
35
41
validationMessage : string ;
36
- }
42
+ } ;
37
43
38
44
export default function FormRadioGroup ( {
39
- longLabel, name, options, required
45
+ longLabel,
46
+ name,
47
+ options,
48
+ required
40
49
} : {
41
50
longLabel ?: string ;
42
51
name : string ;
@@ -47,14 +56,14 @@ export default function FormRadioGroup({
47
56
const [ validationMessage , setValidationMessage ] = useState ( '' ) ;
48
57
const checkedValue = options . find ( ( opt ) => opt . checked ) ?. value ;
49
58
const [ selectedValue , setSelectedValue ] = useState ( checkedValue ) ;
50
- const validate = React . useCallback (
51
- ( ) => {
52
- const invalid = ref . current ?. querySelector < InputElementWithValidationMessage > ( ':invalid' ) ;
59
+ const validate = React . useCallback ( ( ) => {
60
+ const invalid =
61
+ ref . current ?. querySelector < InputElementWithValidationMessage > (
62
+ ':invalid'
63
+ ) ;
53
64
54
- setValidationMessage ( invalid ? invalid . validationMessage : '' ) ;
55
- } ,
56
- [ ]
57
- ) ;
65
+ setValidationMessage ( invalid ? invalid . validationMessage : '' ) ;
66
+ } , [ ] ) ;
58
67
const onChange = React . useCallback (
59
68
( { target : { value} } : React . ChangeEvent < HTMLInputElement > ) => {
60
69
setSelectedValue ( value ) ;
@@ -70,10 +79,14 @@ export default function FormRadioGroup({
70
79
React . useEffect ( validate , [ validate ] ) ;
71
80
72
81
return (
73
- < div className = 'form-radiogroup' >
74
- { longLabel && < label className = "field-long-label" > { longLabel } </ label > }
82
+ < div className = "form-radiogroup" >
83
+ { longLabel && (
84
+ < label className = "field-long-label" > { longLabel } </ label >
85
+ ) }
75
86
< div ref = { ref } >
76
- { options . map ( ( item ) => < Option item = { item } { ...passThruProps } key = { item . value } /> ) }
87
+ { options . map ( ( item ) => (
88
+ < Option item = { item } { ...passThruProps } key = { item . value } />
89
+ ) ) }
77
90
</ div >
78
91
< div className = "invalid-message" > { validationMessage } </ div >
79
92
</ div >
0 commit comments