File size: 1,251 Bytes
7fcdb70 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
import { CssBaseline, ThemeProvider } from '@mui/material';
import { useMemo } from 'react';
import { BrowserRouter, Route, Routes } from "react-router-dom";
import { getWebSocketUrl } from './config/api';
import { useAgentWebSocket } from './hooks/useAgentWebSocket';
import Task from "./pages/Task";
import Welcome from "./pages/Welcome";
import { selectIsDarkMode, useAgentStore } from './stores/agentStore';
import getTheme from './theme';
const App = () => {
const isDarkMode = useAgentStore(selectIsDarkMode);
const theme = useMemo(() => getTheme(isDarkMode ? 'dark' : 'light'), [isDarkMode]);
// Initialize WebSocket connection at app level so it persists across route changes
const { stopCurrentTask } = useAgentWebSocket({ url: getWebSocketUrl() });
// Store functions in window for global access
(window as Window & { __stopCurrentTask?: () => void }).__stopCurrentTask = stopCurrentTask;
return (
<ThemeProvider theme={theme}>
<CssBaseline />
<BrowserRouter>
<Routes>
<Route path="/" element={<Welcome />} />
<Route path="/task" element={<Task />} />
</Routes>
</BrowserRouter>
</ThemeProvider>
);
};
export default App;
|