// App.jsx
import React from 'react';
import { Routes, Route } from 'react-router-dom'; 
import { ThemeProvider } from '@mui/material/styles';
import CssBaseline from '@mui/material/CssBaseline';
import theme from './styles/theme/theme';
import Home from './pages/Home';
import UserProfile from './pages/UserProfile';
import UserContextProvider from './contexts/UserContext';
import TorrentUploadPage from './pages/UploadTorrent';
function App() {
  return (
    <UserContextProvider>
      <ThemeProvider theme={theme}>
        <CssBaseline />
        <div>
          <Routes>
            <Route path="/" element={<Home />} />
            <Route path="/user/:id" element={<UserProfile />} />
             <Route path="/Upload" element={<TorrentUploadPage />} />
          </Routes>
        </div>
      </ThemeProvider>
    </UserContextProvider>
  );
}

export default App;