| import ThemeProvider from '@/components/ThemeProvider' | |
| import MessageAlert from '@/components/MessageAlert' | |
| import StatusIndicator from '@/components/StatusIndicator' | |
| import GraphViewer from '@/GraphViewer' | |
| import { healthCheckInterval } from '@/lib/constants' | |
| import { useBackendState } from '@/stores/state' | |
| import { useSettingsStore } from '@/stores/settings' | |
| import { useEffect } from 'react' | |
| function App() { | |
| const message = useBackendState.use.message() | |
| const enableHealthCheck = useSettingsStore.use.enableHealthCheck() | |
| // health check | |
| useEffect(() => { | |
| if (!enableHealthCheck) return | |
| // Check immediately | |
| useBackendState.getState().check() | |
| const interval = setInterval(async () => { | |
| await useBackendState.getState().check() | |
| }, healthCheckInterval * 1000) | |
| return () => clearInterval(interval) | |
| }, [enableHealthCheck]) | |
| return ( | |
| <ThemeProvider> | |
| <div className="h-screen w-screen"> | |
| <GraphViewer /> | |
| </div> | |
| {enableHealthCheck && <StatusIndicator />} | |
| {message !== null && <MessageAlert />} | |
| </ThemeProvider> | |
| ) | |
| } | |
| export default App | |