Compare commits
1 Commits
1-max-seri
...
5-remove-u
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
b3aec5e6b2 |
@@ -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, config.series_limit);
|
const data = buildSeriesData(rows, config.signal_type, timeMode);
|
||||||
if (!data) return null;
|
if (!data) return null;
|
||||||
|
|
||||||
const { keys, allXs, data: seriesData } = data;
|
const { keys, allXs, data: seriesData } = data;
|
||||||
|
|||||||
@@ -24,15 +24,13 @@ 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 sorted = [...upsRows].sort((a, b) =>
|
const data = timeMode === 'tick'
|
||||||
timeMode === 'tick'
|
? [...upsRows].sort((a, b) => a.game_tick - b.game_tick)
|
||||||
? a.game_tick - b.game_tick
|
: upsRows;
|
||||||
: new Date(a.real_time).getTime() - new Date(b.real_time).getTime(),
|
const xs = data.map((r) =>
|
||||||
);
|
|
||||||
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 = sorted.map((r) => r.ups);
|
const ys = data.map((r) => r.ups);
|
||||||
|
|
||||||
const xAxis: uPlot.Axis = {
|
const xAxis: uPlot.Axis = {
|
||||||
...AXIS_BASE,
|
...AXIS_BASE,
|
||||||
|
|||||||
@@ -1,5 +1,7 @@
|
|||||||
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[];
|
||||||
@@ -10,7 +12,6 @@ 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>>();
|
||||||
|
|
||||||
@@ -33,7 +34,7 @@ export function buildSeriesData(
|
|||||||
|
|
||||||
if (seriesMap.size === 0) return null;
|
if (seriesMap.size === 0) return null;
|
||||||
|
|
||||||
const keys = [...seriesMap.keys()].slice(0, seriesLimit);
|
const keys = [...seriesMap.keys()].slice(0, MAX_SERIES);
|
||||||
const allXs = [
|
const allXs = [
|
||||||
...new Set(
|
...new Set(
|
||||||
keys.flatMap((k) => {
|
keys.flatMap((k) => {
|
||||||
|
|||||||
Reference in New Issue
Block a user