25 lines
821 B
TypeScript
25 lines
821 B
TypeScript
import { create } from 'zustand';
|
|
import type { Room, TelemetryRecord } from '../types';
|
|
|
|
interface AppState {
|
|
currentRoom: Room | null;
|
|
setCurrentRoom: (room: Room | null) => void;
|
|
refreshTrigger: number;
|
|
triggerRefresh: () => void;
|
|
realtimeData: TelemetryRecord[];
|
|
setRealtimeData: (data: TelemetryRecord[]) => void;
|
|
wsConnected: boolean;
|
|
setWsConnected: (connected: boolean) => void;
|
|
}
|
|
|
|
export const useAppStore = create<AppState>()((set) => ({
|
|
currentRoom: null,
|
|
setCurrentRoom: (room) => set({ currentRoom: room }),
|
|
refreshTrigger: 0,
|
|
triggerRefresh: () => set((state) => ({ refreshTrigger: state.refreshTrigger + 1 })),
|
|
realtimeData: [],
|
|
setRealtimeData: (data) => set({ realtimeData: data }),
|
|
wsConnected: false,
|
|
setWsConnected: (connected) => set({ wsConnected: connected }),
|
|
}));
|