// 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';

function App() {
  return (
    <UserContextProvider>
      <ThemeProvider theme={theme}>
        <CssBaseline />
        <div>
          <Routes>
            <Route path="/" element={<Home />} />
            <Route path="/user/:id" element={<UserProfile />} />
          </Routes>
        </div>
      </ThemeProvider>
    </UserContextProvider>
  );
}

export default App;