Diff of /src/App.tsx [000000] .. [d6876d]

Switch to side-by-side view

--- a
+++ b/src/App.tsx
@@ -0,0 +1,57 @@
+import React from 'react';
+import { BrowserRouter as Router, Routes, Route } from 'react-router-dom';
+import { ThemeProvider, createTheme } from '@mui/material';
+import { Provider as ReduxProvider } from 'react-redux';
+import { Layout } from './components/Layout/Layout';
+import { store } from './store/store';
+
+// Import pages (to be created)
+const Dashboard = React.lazy(() => import('./pages/Dashboard/Dashboard'));
+const Experiments = React.lazy(() => import('./pages/Experiments/Experiments'));
+const GeneAnalysis = React.lazy(() => import('./pages/GeneAnalysis/GeneAnalysis'));
+const Simulations = React.lazy(() => import('./pages/Simulations/Simulations'));
+const Monitoring = React.lazy(() => import('./pages/Monitoring/Monitoring'));
+const Settings = React.lazy(() => import('./pages/Settings/Settings'));
+
+const theme = createTheme({
+  palette: {
+    primary: {
+      main: '#2196f3',
+    },
+    secondary: {
+      main: '#ff4081',
+    },
+    background: {
+      default: '#f5f5f5',
+      paper: '#ffffff',
+    },
+  },
+  typography: {
+    fontFamily: '"Roboto", "Helvetica", "Arial", sans-serif',
+  },
+});
+
+const App: React.FC = () => {
+  return (
+    <ReduxProvider store={store}>
+      <ThemeProvider theme={theme}>
+        <Router>
+          <Layout>
+            <React.Suspense fallback={<div>Loading...</div>}>
+              <Routes>
+                <Route path="/" element={<Dashboard />} />
+                <Route path="/experiments" element={<Experiments />} />
+                <Route path="/gene-analysis" element={<GeneAnalysis />} />
+                <Route path="/simulations" element={<Simulations />} />
+                <Route path="/monitoring" element={<Monitoring />} />
+                <Route path="/settings" element={<Settings />} />
+              </Routes>
+            </React.Suspense>
+          </Layout>
+        </Router>
+      </ThemeProvider>
+    </ReduxProvider>
+  );
+};
+
+export default App;