32 lines
819 B
TypeScript
32 lines
819 B
TypeScript
import { create } from 'zustand'
|
|
import type { Stats } from '@/lib/types'
|
|
|
|
interface EngineState {
|
|
status: 'Idle' | 'Running' | 'Paused'
|
|
uptime_seconds: number
|
|
total_scanned: number
|
|
total_alerts: number
|
|
last_cycle: string
|
|
isOffline: boolean
|
|
setStats: (stats: Stats) => void
|
|
setOffline: (offline: boolean) => void
|
|
}
|
|
|
|
export const useEngineStore = create<EngineState>((set) => ({
|
|
status: 'Idle',
|
|
uptime_seconds: 0,
|
|
total_scanned: 0,
|
|
total_alerts: 0,
|
|
last_cycle: 'Never',
|
|
isOffline: false,
|
|
setStats: (stats) => set({
|
|
status: stats.engine_status,
|
|
uptime_seconds: stats.uptime_seconds,
|
|
total_scanned: stats.total_scanned,
|
|
total_alerts: stats.total_alerts,
|
|
last_cycle: stats.last_cycle,
|
|
isOffline: false,
|
|
}),
|
|
setOffline: (offline) => set({ isOffline: offline }),
|
|
}))
|