finish ui

This commit is contained in:
csehviktor
2025-07-15 03:08:44 +02:00
parent e778f7934e
commit 96df5453b9
7 changed files with 142 additions and 70 deletions
+17 -15
View File
@@ -1,26 +1,28 @@
import type { StatusMessage } from "@/services/types";
import { atom } from "nanostores";
const store = atom<StatusMessage | null>(null);
export type TimePeriod = "all" | "hour" | "day" | "week" | "month";
export function getLastMessage(): StatusMessage | null {
return store.get();
}
export function setLastMessage(message: StatusMessage) {
store.set(message);
}
const realtimeData: StatusMessage[] = [];
let data: StatusMessage[] = [];
const maxRealtimePoints = 50;
export function addDataPoint(value: StatusMessage) {
realtimeData.push(value);
data.push(value);
if (realtimeData.length > maxRealtimePoints) {
realtimeData.shift();
if (data.length > maxRealtimePoints) {
data.shift();
}
}
export function getRealtimeData(): StatusMessage[] {
return realtimeData ?? [];
return data ?? [];
}
export function setHistoricalData(value: StatusMessage[]) {
data = value;
}
export async function getHistoricalData(url: string): Promise<StatusMessage[]> {
return await fetch(url)
.then((res) => res.json())
.then((data) => data as StatusMessage[]);
}
+2 -2
View File
@@ -5,8 +5,8 @@ type Callbacks = {
onClose?: () => void;
};
export function initializeConnection(agent: string, callbacks: Callbacks) {
const ws = new WebSocket(`ws://localhost:3000/ws/${agent}`);
export function initializeConnection(url: string, callbacks: Callbacks) {
const ws = new WebSocket(url);
ws.onopen = () => callbacks.onOpen?.();
ws.onmessage = (event) => callbacks.onMessage(event.data);