1 Commits

Author SHA1 Message Date
Sebastian Seedorf
8b5d4ee6a5 fix: pass config.series_limit to buildSeriesData instead of hardcoded 80 2026-06-05 12:48:47 +02:00
3 changed files with 10 additions and 9 deletions

View File

@@ -50,7 +50,7 @@ export default function SignalsChart({
const { containerRef, legendRef } = usePlot( const { containerRef, legendRef } = usePlot(
(el, w, h, lRef) => { (el, w, h, lRef) => {
const data = buildSeriesData(rows, config.signal_type, timeMode); const data = buildSeriesData(rows, config.signal_type, timeMode, config.series_limit);
if (!data) return null; if (!data) return null;
const { keys, allXs, data: seriesData } = data; const { keys, allXs, data: seriesData } = data;

View File

@@ -24,13 +24,15 @@ export default function UpsChart({ config, upsRows, timeMode, onEdit, onDelete }
(el, w, h, lRef) => { (el, w, h, lRef) => {
if (upsRows.length < 2) return null; if (upsRows.length < 2) return null;
const data = timeMode === 'tick' const sorted = [...upsRows].sort((a, b) =>
? [...upsRows].sort((a, b) => a.game_tick - b.game_tick) timeMode === 'tick'
: upsRows; ? a.game_tick - b.game_tick
const xs = data.map((r) => : new Date(a.real_time).getTime() - new Date(b.real_time).getTime(),
);
const xs = sorted.map((r) =>
timeMode === 'tick' ? r.game_tick : new Date(r.real_time).getTime() / 1000, timeMode === 'tick' ? r.game_tick : new Date(r.real_time).getTime() / 1000,
); );
const ys = data.map((r) => r.ups); const ys = sorted.map((r) => r.ups);
const xAxis: uPlot.Axis = { const xAxis: uPlot.Axis = {
...AXIS_BASE, ...AXIS_BASE,

View File

@@ -1,7 +1,5 @@
import type { SignalRow, ChartConfig, TimeMode } from '@/lib/types'; import type { SignalRow, ChartConfig, TimeMode } from '@/lib/types';
const MAX_SERIES = 80;
export interface SeriesData { export interface SeriesData {
keys: string[]; keys: string[];
allXs: number[]; allXs: number[];
@@ -12,6 +10,7 @@ export function buildSeriesData(
rows: SignalRow[], rows: SignalRow[],
signalType: ChartConfig['signal_type'], signalType: ChartConfig['signal_type'],
timeMode: TimeMode, timeMode: TimeMode,
seriesLimit: number = 80,
): SeriesData | null { ): SeriesData | null {
const seriesMap = new Map<string, Map<number, number>>(); const seriesMap = new Map<string, Map<number, number>>();
@@ -34,7 +33,7 @@ export function buildSeriesData(
if (seriesMap.size === 0) return null; if (seriesMap.size === 0) return null;
const keys = [...seriesMap.keys()].slice(0, MAX_SERIES); const keys = [...seriesMap.keys()].slice(0, seriesLimit);
const allXs = [ const allXs = [
...new Set( ...new Set(
keys.flatMap((k) => { keys.flatMap((k) => {