@@ -122,9 +122,12 @@ export const RadiusInputField: React.FC<RadiusInputFieldProps> = ({
122122 const [ radiusMode , setRadiusMode ] = useState < RadiusMode > (
123123 value ?. mode ?? "uniform" ,
124124 )
125- const [ radiusValue , setRadiusValue ] = useState < RadiusObject | string > (
126- value ?. radius ?? "" ,
127- )
125+ const [ radiusValue , setRadiusValue ] = useState < RadiusObject | string > ( ( ) => {
126+ const r = value ?. radius
127+ if ( r === undefined || r === null || r === "" ) return ""
128+ if ( typeof r === "number" ) return String ( r )
129+ return r
130+ } )
128131 const errorRed = useColorModeValue ( "red.500" , "red.300" )
129132 const activeColor = useColorModeValue ( "blue.500" , "blue.600" )
130133 const inactiveColor = useColorModeValue ( "gray.600" , "gray.400" )
@@ -145,16 +148,21 @@ export const RadiusInputField: React.FC<RadiusInputFieldProps> = ({
145148 setRadiusValue ( ( prev ) => {
146149 const prevString =
147150 typeof prev === "string" ? prev : JSON . stringify ( prev ?? "" )
151+ const next = value . radius
152+ const nextNormalised =
153+ typeof next === "number"
154+ ? String ( next )
155+ : ( next as RadiusObject | string )
148156 const nextString =
149- typeof value . radius === "string"
150- ? value . radius
151- : JSON . stringify ( value . radius ?? "" )
157+ typeof nextNormalised === "string"
158+ ? nextNormalised
159+ : JSON . stringify ( nextNormalised ?? "" )
152160
153161 if ( prevString === nextString ) {
154162 return prev
155163 }
156164
157- return value . radius as RadiusObject | string
165+ return nextNormalised
158166 } )
159167 }
160168 } , [ value ?. mode , value ?. radius ] )
0 commit comments