"use client"; import { useState } from "react"; import axios from "axios"; import { useRouter } from "next/navigation"; import { Lock, User } from "lucide-react"; // Ikon cantik export default function LoginPage() { const router = useRouter(); // State untuk menyimpan input user const [nrp, setNrp] = useState(""); const [password, setPassword] = useState(""); const [loading, setLoading] = useState(false); const [error, setError] = useState(""); // Fungsi saat tombol Login ditekan const handleLogin = async (e: React.FormEvent) => { e.preventDefault(); setLoading(true); setError(""); try { // 1. Tembak API Backend const response = await axios.post("http://localhost:8080/api/auth/login", { nrp_nip: nrp, password: password, }); // 2. Jika sukses, simpan Token & Data User ke LocalStorage (Browser) const { token, user } = response.data; localStorage.setItem("token", token); localStorage.setItem("user", JSON.stringify(user)); // 3. Pindah ke halaman Dashboard (Nanti kita buat) //alert("Login Berhasil! Selamat datang " + user.full_name); // Alert boleh dimatikan kalau mau if (user.role === "admin") { router.push("/admin"); } else { router.push("/dashboard"); } } catch (err: any) { // Jika gagal, tampilkan pesan error dari backend setError(err.response?.data?.error || "Gagal terhubung ke server"); } finally { setLoading(false); } }; return (
{/* Header / Logo */}

S-CLASS

Smart Classroom Booking System

{/* Form Login */}
{/* Pesan Error jika ada */} {error && (
{error}
)} {/* Input NRP */}
setNrp(e.target.value)} />
{/* Input Password */}
setPassword(e.target.value)} />
{/* Tombol Login */}
{/* Footer Kecil */}
© 2026 Skripsi S-CLASS Project
); }