import { useEffect } from "react";
import { Routes, Route, Navigate, useNavigate, useLocation } from "react-router-dom";
import LoginPage from "./src/Login/login";
import Dashboard from "./src/dashboard";
import AlumniForm from "./src/form-alumni";
import ExportKlasifikasi from "./src/Export-Klasifikasi";
import ForgotPassword from "./src/forgot-password";
import ProsesKlasifikasi from "./src/proses-klasifikasi";
import ResetPassword from "./src/reset-password";
import TahunAngkatan from "./src/tahun-angkatan";
import ImportData from "./src/ImportData";
import KuesionerAlumni from "./src/kuesioner-alumni";
import KamusKataKunci from "./src/kamus-kata-kunci";
function ProtectedRoute({ children }) {
const navigate = useNavigate();
const location = useLocation();
useEffect(() => {
const checkAuth = () => {
const token = localStorage.getItem('token');
const username = localStorage.getItem('username');
if (!token || !username) {
navigate('/', { replace: true });
}
};
checkAuth();
// Dengarkan saat logout dari tab browser lain
const handleStorageChange = (e) => {
if (e.key === 'token' || e.key === 'username' || e.key === null) {
checkAuth();
}
};
window.addEventListener('storage', handleStorageChange);
return () => window.removeEventListener('storage', handleStorageChange);
}, [navigate, location]);
const token = localStorage.getItem('token');
const username = localStorage.getItem('username');
if (!token || !username) {
return ;
}
return children;
}
function App() {
return (
{/* Rute Publik */}
} />
} />
} />
} />
} />
} />
{/* Rute Terproteksi (Wajib Login) */}
} />
} />
} />
} />
} />
} />
} />
} />
{/* Fallback jika route tidak ditemukan */}
} />
);
}
export default App;