Skip to content

Commit 7a69bba

Browse files
committed
fix component->impedance output just for capacitors when sldier is used. Slider tooltip shown new value
1 parent d70255c commit 7a69bba

File tree

1 file changed

+22
-9
lines changed

1 file changed

+22
-9
lines changed

src/Circuit.jsx

Lines changed: 22 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)