import { Route, Switch } from 'wouter'; // Import from wouter
import AuthPage from './pages/AuthPage/AuthPage';
import HomePage from './pages/HomePage';
import MainPage from './pages/MainPage/MainPage';
import SeedList from './pages/SeedList/SeedList';
import { UserProvider } from './context/UserContext';

function App() {
  return (
    <UserProvider>
      <Switch>
        <Route path="/" component={HomePage} />
        <Route path="/auth" component={AuthPage} />
        <Route path="/main-page" component={MainPage} />
        <Route path="/seed-list" component={SeedList} />
      </Switch>
    </UserProvider>
  );
}

export default App;
