Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
48 commits
Select commit Hold shift + click to select a range
78ec688
frontend integraiton
Lucien950 Nov 29, 2025
50437eb
cleanup navbar
Lucien950 Nov 29, 2025
79c6f8d
live
Lucien950 Nov 29, 2025
66afbcf
move more things around
Lucien950 Nov 29, 2025
117ce16
move more things around
Lucien950 Nov 29, 2025
68b62bd
moved more things?
Lucien950 Nov 29, 2025
0a8baa7
more moving
Lucien950 Nov 29, 2025
77c5f83
more fixes
Lucien950 Nov 29, 2025
7847118
moving render around
Lucien950 Nov 29, 2025
d7454cb
cleanup
Lucien950 Nov 29, 2025
efa2557
clean
Lucien950 Nov 29, 2025
51e0357
fix canvas size, fix rerendering, fix pauseplay initialization. panni…
RealBabyPotato Nov 30, 2025
8a63757
more cleanup
RealBabyPotato Nov 30, 2025
abf3e6d
panning and zooming
RealBabyPotato Dec 6, 2025
c123ebe
zooming, panning, cleanup
RealBabyPotato Dec 6, 2025
b6b3991
articating and gooning
RealBabyPotato Dec 6, 2025
f13b147
update submodule
RealBabyPotato Dec 6, 2025
3a9aeaf
css changes
Lucien950 Dec 6, 2025
5e26c46
frontend integraiton
Lucien950 Nov 29, 2025
d188c99
cleanup navbar
Lucien950 Nov 29, 2025
c04db53
live
Lucien950 Nov 29, 2025
a88d3dc
move more things around
Lucien950 Nov 29, 2025
574f43a
move more things around
Lucien950 Nov 29, 2025
e0ae058
moved more things?
Lucien950 Nov 29, 2025
76d01e3
more moving
Lucien950 Nov 29, 2025
a50d338
more fixes
Lucien950 Nov 29, 2025
4864eda
moving render around
Lucien950 Nov 29, 2025
13677c5
cleanup
Lucien950 Nov 29, 2025
7c07da7
clean
Lucien950 Nov 29, 2025
d0a5729
fix canvas size, fix rerendering, fix pauseplay initialization. panni…
RealBabyPotato Nov 30, 2025
adb5114
more cleanup
RealBabyPotato Nov 30, 2025
75da6c2
panning and zooming
RealBabyPotato Dec 6, 2025
1bca410
zooming, panning, cleanup
RealBabyPotato Dec 6, 2025
f386109
articating and gooning
RealBabyPotato Dec 6, 2025
b3fcda4
css changes
Lucien950 Dec 6, 2025
526f3de
more touchups
Lucien950 Dec 6, 2025
f4b98e7
bomboclatt??
Lucien950 Dec 6, 2025
a27fc24
note
Jan 10, 2026
84cc98c
new credentials
Jan 10, 2026
e54b56c
please
RealBabyPotato Jan 10, 2026
e2febc1
Generic updater
RealBabyPotato Jan 14, 2026
023050a
autoscroll and clamp
RealBabyPotato Jan 14, 2026
61c18dc
Fix backwards scrolling
RealBabyPotato Jan 14, 2026
89a8f49
adjust screen clamp
RealBabyPotato Jan 21, 2026
ae2ddd3
Merge branch 'master' into edwinZ/frontend_integration
RealBabyPotato Jan 21, 2026
ae81689
add yellow highlighting to interpolated line when beginning of view i…
RealBabyPotato Jan 21, 2026
a98f5c7
fix shared tooltips
RealBabyPotato Jan 24, 2026
a8b6589
static x/y-axis
RealBabyPotato Jan 24, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion software/tracksight/frontend/.gitignore
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
node_modules/**
.env
!.prettierrc
!.prettierignore
!.prettierignore
17 changes: 17 additions & 0 deletions software/tracksight/frontend/app/historic/page.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
import { Calendar } from "lucide-react";

export default function Historic() {
return (
<div>
{/** TODO(evan): Make this dynamic and a selector **/}
{/** TODO(evan): Add the universal timeline here */}
<div className="hover:bg-gray-300 flex items-center gap-4 rounded-lg px-4 py-4 transition-colors hover:cursor-pointer">
<Calendar className="stroke-current" size={24} />
<div className="flex flex-col items-start">
<span className="text font-semibold">September 28th 2025</span>
<span className="text-sm opacity-50">Session 1</span>
</div>
</div>
</div>
);
}
61 changes: 0 additions & 61 deletions software/tracksight/frontend/app/live-data/page.tsx

This file was deleted.

176 changes: 0 additions & 176 deletions software/tracksight/frontend/app/live-data/useWidgetManager.ts

This file was deleted.

49 changes: 49 additions & 0 deletions software/tracksight/frontend/app/live/page.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
"use client";

// import AlertBoard from "@/components/shared/AlertBoard/AlertBoard";
// import ConnectionStatus from "@/components/pages/live-data/ConnectionStatus";
import { DisplayControlProvider } from "@/components/PausePlayControl";
import SyncedGraphContainer from "@/components/SyncedGraphContainer";
import { SignalProvider } from "@/lib/contexts/SignalContext";
import { WidgetAdder } from "@/components/WidgetAdder";
import { Widget } from "@/components/widgets/Widget";
import useWidgetManager from "@/components/widgets/useWidgetManager";

export default function LiveDataPage() {
const {
widgets,
setEnumSignal,
appendNumSignal,
removeNumSignal,
removeWidget,
updateWidget,
appendWidget
} = useWidgetManager();

return (
<DisplayControlProvider> {/* not so sure actually (OLD) */}
<SignalProvider> {/* provides signal data (OLD) */}
<SyncedGraphContainer>
{/** TODO(evan): Add pause / play button here */}
{/** TODO(evan): Add the universal timeline here */}
{/* TODO rework alerts */}
{/* <h2 className="text-xl font-bold mb-2">Alerts</h2> */}
{/* <AlertBoard /> */}
{/* <h2 className="text-xl font-bold mb-2">Connection Status</h2> */}
{/* <ConnectionStatus /> */}
{widgets.map(widgetData => <Widget
widgetData={widgetData}
setEnumSignal={setEnumSignal}
appendNumSignal={appendNumSignal}
removeNumSignal={removeNumSignal}
removeWidget={removeWidget}
updateWidget={updateWidget}
key={widgetData.id} />
)}
<WidgetAdder onAddWidget={appendWidget} />
{/* <DynamicRowManager /> */}
</SyncedGraphContainer>
</SignalProvider >
</DisplayControlProvider >
);
}
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

import { X } from "lucide-react";
import React, { useMemo, useState, useEffect, useRef, useCallback } from "react";
import { PlusButton } from "./PlusButton";
import { PlusButton } from "@/components/PlusButton";
import { DEBUG, BACKEND_URL, SignalMeta } from "@/lib/SignalConfig";

// Internal extension with pre-lowercased fields to avoid per-keystroke toLowerCase allocations
Expand Down Expand Up @@ -102,7 +102,6 @@ const RowEditorInner: React.FC<RowEditorProps> = ({
fetchSignals();
}
return () => abortRef.current?.abort();
// eslint-disable-next-line react-hooks/exhaustive-deps
}, [row.isOpen, hasFetched]);

// Filter signals based on debounced search term
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
import React, { useState, useRef, useEffect } from "react";
import { PlusButton } from "./PlusButton";
import { SignalType } from "@/lib/SignalConfig";
import { MockGraphConfig } from "../pages/live-data/MockGraph";
import { MockGraphConfig } from "./widgets/MockGraph";

interface InsertionBarProps {
onInsert: () => void;
Expand Down
21 changes: 6 additions & 15 deletions software/tracksight/frontend/components/Navbar.tsx
Original file line number Diff line number Diff line change
@@ -1,22 +1,13 @@
import { Calendar } from "lucide-react";
import Link from "next/link";

function Navbar() {
return (
<nav className="border-primary-300 bg-primary-100 fixed top-0 left-0 z-50 flex h-min w-screen flex-col">
<div className="flex flex-row items-center justify-between border-b-2 border-inherit px-10 py-5 select-none">
{/** TODO(evan): Make this dynamic and a selector **/}
<div className="hover:text-primary-900 flex items-center gap-4 rounded-md px-2 py-1 transition-colors hover:cursor-pointer">
<Calendar className="stroke-current" size={24} />
<div className="flex flex-col items-start">
<span className="text font-semibold">September 28th 2025</span>
<span className="text-sm opacity-50">Session 1</span>
</div>
</div>

{/** TODO(evan): Add pause / play button here */}
<nav className="fixed top-0 left-0 z-50 h-min w-screen">
<div className="flex flex-row items-center gap-6 select-none px-8 py-4">
<Link href="/">Home</Link>
<Link href="/live">Live Data</Link>
<Link href="/historical">Historical Data</Link>
</div>

{/** TODO(evan): Add the universal timeline here */}
</nav>
);
}
Expand Down
Loading
Loading