@@ -3,18 +3,24 @@ import React, { useCallback, useMemo, useRef, useState } from 'react';
33import Field from '@staticcms/core/components/common/field/Field' ;
44import Switch from '@staticcms/core/components/common/switch/Switch' ;
55import classNames from '@staticcms/core/lib/util/classNames.util' ;
6+ import { isNotEmpty } from '@staticcms/core/lib/util/string.util' ;
67import { generateClassNames } from '@staticcms/core/lib/util/theming.util' ;
78
89import type { BooleanField , WidgetControlProps } from '@staticcms/core/interface' ;
910import type { ChangeEvent , FC } from 'react' ;
1011
12+ import './BooleanControl.css' ;
13+
1114const classes = generateClassNames ( 'WidgetBoolean' , [
1215 'root' ,
1316 'error' ,
1417 'required' ,
1518 'disabled' ,
1619 'for-single-list' ,
1720 'input' ,
21+ 'content' ,
22+ 'prefix' ,
23+ 'suffix' ,
1824] ) ;
1925
2026const BooleanControl : FC < WidgetControlProps < boolean , BooleanField > > = ( {
@@ -43,6 +49,9 @@ const BooleanControl: FC<WidgetControlProps<boolean, BooleanField>> = ({
4349 [ onChange ] ,
4450 ) ;
4551
52+ const prefix = useMemo ( ( ) => field . prefix ?? '' , [ field . prefix ] ) ;
53+ const suffix = useMemo ( ( ) => field . suffix ?? '' , [ field . suffix ] ) ;
54+
4655 return (
4756 < Field
4857 inputRef = { ref }
@@ -61,13 +70,17 @@ const BooleanControl: FC<WidgetControlProps<boolean, BooleanField>> = ({
6170 forSingleList && classes [ 'for-single-list' ] ,
6271 ) }
6372 >
64- < Switch
65- ref = { ref }
66- value = { internalValue }
67- disabled = { disabled }
68- onChange = { handleChange }
69- rootClassName = { classes . input }
70- />
73+ < div className = { classes . content } >
74+ { isNotEmpty ( prefix ) ? < div className = { classes . prefix } > { prefix } </ div > : null }
75+ < Switch
76+ ref = { ref }
77+ value = { internalValue }
78+ disabled = { disabled }
79+ onChange = { handleChange }
80+ rootClassName = { classes . input }
81+ />
82+ { isNotEmpty ( suffix ) ? < div className = { classes . suffix } > { suffix } </ div > : null }
83+ </ div >
7184 </ Field >
7285 ) ;
7386} ;
0 commit comments