Newer
Older
2025-C1231033 / react-project / App.js
import React, { useState } from 'react';
import { BrowserRouter as Router, Routes, Route, Link, useNavigate } from 'react-router-dom';
import Register from './Register';
import Login from './Login';
import StudentDashboard from './StudentDashboard';
import FacilityDashboard from './FacilityDashboard';

function App() {
  const [user, setUser] = useState(null);

  return (
    <Router>
      <div>
        <nav style={{ marginBottom: '20px' }}>
          <Link to="/login" style={{ marginRight: '10px' }}>Login</Link>
          <Link to="/register">Register</Link>
        </nav>
        <Routes>
          <Route
            path="/login"
            element={
              <Login
                onLoginSuccess={(userData) => {
                  setUser(userData);
                  // 動的に遷移(useNavigateはLogin側で使う)
                }}
              />
            }
          />
          <Route path="/register" element={<Register />} />
          <Route
            path="/student"
            element={user ? <StudentDashboard user={user} /> : <div>Unauthorized</div>}
          />
          <Route
            path="/facility"
            element={user ? <FacilityDashboard user={user} /> : <div>Unauthorized</div>}
          />
          <Route path="/" element={<div>Welcome! Please <Link to="/login">login</Link> or <Link to="/register">register</Link>.</div>} />
        </Routes>
      </div>
    </Router>
  );
}

export default App;