1 Commits

Author SHA1 Message Date
Sebastian Seedorf
b3aec5e6b2 fix: skip sort in real mode, API already returns ORDER BY real_time ASC 2026-06-05 13:10:04 +02:00
3 changed files with 9 additions and 10 deletions

View File

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

View File

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

View File

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