@@ -425,7 +425,20 @@ function ImpedanceComponent({ real, imaginary, zToVal }) {
425425 ) ;
426426}
427427
428- function SliderAdjust ( { handleChange, value } ) {
428+ function SliderAdjust ( { handleChange, value, baseValue, unit } ) {
429+ const formatAdjustedValue = ( sliderValue ) => {
430+ if ( baseValue !== undefined && unit !== undefined ) {
431+ const numValue = parseFloat ( baseValue ) ;
432+ if ( ! isNaN ( numValue ) ) {
433+ const adjusted = numValue * ( 1 + ( sliderValue || 0 ) / 100 ) ;
434+ // Format with appropriate precision
435+ const formatted = adjusted . toPrecision ( 4 ) ;
436+ return `${ sliderValue } % (${ formatted } ${ unit } )` ;
437+ }
438+ }
439+ return `${ sliderValue } %` ;
440+ } ;
441+
429442 return (
430443 < Slider
431444 size = "small"
@@ -437,7 +450,7 @@ function SliderAdjust({ handleChange, value }) {
437450 max = { 20 }
438451 step = { 1 }
439452 value = { value === undefined ? 0 : value }
440- valueLabelFormat = { ( value ) => ` ${ value } %` }
453+ valueLabelFormat = { ( val ) => formatAdjustedValue ( val ) }
441454 onChange = { ( e ) => handleChange ( e . target . value ) }
442455 color = { value === 0 || value == undefined ? "primary" : "warning" }
443456 />
@@ -467,8 +480,8 @@ function ComplexComponent({ real, imaginary, index, setUserCircuit, slider_re, s
467480 />
468481 </ Box >
469482 < Box sx = { { display : "flex" , m : 0 , p : 0 , mt : 0 , mb : 1 , zIndex : 10 } } >
470- < SliderAdjust handleChange = { ( v ) => setValue ( v , "slider_re" , setUserCircuit , index ) } value = { slider_re } />
471- < SliderAdjust handleChange = { ( v ) => setValue ( v , "slider_im" , setUserCircuit , index ) } value = { slider_im } />
483+ < SliderAdjust handleChange = { ( v ) => setValue ( v , "slider_re" , setUserCircuit , index ) } value = { slider_re } baseValue = { real } unit = "" />
484+ < SliderAdjust handleChange = { ( v ) => setValue ( v , "slider_im" , setUserCircuit , index ) } value = { slider_im } baseValue = { imaginary } unit = "j" />
472485 </ Box >
473486 </ >
474487 ) ;
@@ -541,7 +554,7 @@ function InductorComponent({ value, unit, index, setUserCircuit, slider }) {
541554 </ Select >
542555 </ Box >
543556 < Box sx = { { display : "flex" , m : 0 , p : 0 , zIndex : 10 } } >
544- < SliderAdjust handleChange = { ( v ) => setValue ( v , "slider" , setUserCircuit , index ) } value = { slider } />
557+ < SliderAdjust handleChange = { ( v ) => setValue ( v , "slider" , setUserCircuit , index ) } value = { slider } baseValue = { value } unit = { unit } />
545558 </ Box >
546559 </ >
547560 ) ;
@@ -585,7 +598,7 @@ function WireComponent({ value, unit, index, setUserCircuit, slider, zo, frequen
585598 </ Select >
586599 </ Box >
587600 < Box sx = { { display : "flex" , m : 0 , p : 0 , zIndex : 10 } } >
588- < SliderAdjust handleChange = { ( v ) => setValue ( v , "slider" , setUserCircuit , index ) } value = { slider } />
601+ < SliderAdjust handleChange = { ( v ) => setValue ( v , "slider" , setUserCircuit , index ) } value = { slider } baseValue = { value } unit = { unit } />
589602 </ Box >
590603 < TextField
591604 label = "Zo"
@@ -645,7 +658,7 @@ function ResistorComponent({ value, unit, index, setUserCircuit, slider }) {
645658 </ Select >
646659 </ Box >
647660 < Box sx = { { display : "flex" , m : 0 , p : 0 , zIndex : 10 } } >
648- < SliderAdjust handleChange = { ( v ) => setValue ( v , "slider" , setUserCircuit , index ) } value = { slider } />
661+ < SliderAdjust handleChange = { ( v ) => setValue ( v , "slider" , setUserCircuit , index ) } value = { slider } baseValue = { value } unit = { unit } />
649662 </ Box >
650663 </ >
651664 ) ;
@@ -669,7 +682,7 @@ function CapacitorComponent({ value, unit, index, setUserCircuit, slider }) {
669682 </ Select >
670683 </ Box >
671684 < Box sx = { { display : "flex" , m : 0 , p : 0 , zIndex : 10 } } >
672- < SliderAdjust handleChange = { ( v ) => setValue ( v , "slider" , setUserCircuit , index ) } value = { slider } />
685+ < SliderAdjust handleChange = { ( v ) => setValue ( v , "slider" , setUserCircuit , index ) } value = { slider } baseValue = { value } unit = { unit } />
673686 </ Box >
674687 </ >
675688 ) ;
@@ -756,7 +769,7 @@ function Circuit({ userCircuit, setUserCircuit, frequency, setPlotType, setSetti
756769 } ;
757770 } else if ( component . name == "shortedCap" || component . name == "seriesCap" ) {
758771 real = 0 ;
759- imaginary = - 1 / ( component . value * 2 * Math . PI * frequency * unitConverter [ component . unit ] ) ;
772+ imaginary = - 1 / ( component . value * 2 * Math . PI * frequency * unitConverter [ component . unit ] * ( 1 + slider / 100 ) ) ;
760773 zToVal = ( v ) => {
761774 setValue ( - 1 / ( v * 2 * Math . PI * frequency * unitConverter [ component . unit ] ) , "value" , setUserCircuit , index ) ;
762775 } ;
0 commit comments