Skip to content

Commit 41b97c3

Browse files
coreyeastonclaude
andcommitted
fix: remove stackOffset="sign" to fix stacked area artifacts when chart is flipped
Zero download values (idle clients) were routed to the positive stack group while active values went to negative, causing area jumps and visual overlap on transitions. stackOffset="sign" was redundant since downloads/uploads already use separate stackIds with manual negation. Also removes useState/useEffect anti-pattern for derived chart data, using direct variable assignment from useMemo instead. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
1 parent 62aab99 commit 41b97c3

1 file changed

Lines changed: 3 additions & 8 deletions

File tree

frontend/src/components/BandwidthChart.tsx

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -190,10 +190,8 @@ export const BandwidthChart: React.FC<BandwidthChartProps> = ({
190190
timeRanges,
191191
}) => {
192192
const [rawData, setRawData] = useState<ChartDataPoint[]>([]);
193-
const [data, setData] = useState<ChartDataPoint[]>([]);
194193
const [isInitialLoad, setIsInitialLoad] = useState(true);
195194
const [error, setError] = useState('');
196-
const [scalingRatio, setScalingRatio] = useState(1);
197195
const [visibleSeries, setVisibleSeries] = useState<Record<string, boolean>>(loadVisibleSeries);
198196
const [downloadClients, setDownloadClients] = useState<DownloadClient[]>([]);
199197
const [snmpEnabled, setSnmpEnabled] = useState<boolean>(false);
@@ -537,11 +535,8 @@ export const BandwidthChart: React.FC<BandwidthChartProps> = ({
537535
return { data: chartData, ratio };
538536
}, [aggregatedData, visibleSeries, stackChart, flipped]);
539537

540-
// Update state from memoized values
541-
useEffect(() => {
542-
setData(transformedData.data);
543-
setScalingRatio(transformedData.ratio);
544-
}, [transformedData]);
538+
const data = transformedData.data;
539+
const scalingRatio = transformedData.ratio;
545540

546541
useEffect(() => {
547542
fetchData();
@@ -707,9 +702,9 @@ export const BandwidthChart: React.FC<BandwidthChartProps> = ({
707702
)}
708703
<ResponsiveContainer width="100%" height={700}>
709704
<ComposedChart
705+
key={`chart-${flipped}`}
710706
data={data}
711707
margin={{ top: 10, right: 10, left: 10, bottom: 20 }}
712-
stackOffset="sign"
713708
>
714709
<defs key={`chart-defs-${flipped}`}>
715710
{/* Download gradients - only for enabled clients */}

0 commit comments

Comments
 (0)