|
|
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]);
|
|
|
|
|
|
|
|
|
const { stopCurrentTask } = useAgentWebSocket({ url: getWebSocketUrl() });
|
|
|
|
|
|
|
|
|
(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;
|
|
|
|