"use client"; import { useState } from "react"; import { Button } from "@/components/ui/button"; import { Input } from "@/components/ui/input"; import { Label } from "@/components/ui/label"; import { Dialog, DialogContent, DialogHeader, DialogTitle, DialogTrigger, } from "@/components/ui/dialog"; import { Tabs, TabsContent, TabsList, TabsTrigger } from "@/components/ui/tabs"; import { useToast } from "@/components/ui/toast-provider"; import { LogIn, User, Key } from "lucide-react"; interface LoginDialogProps { onLoginSuccess: (userData: any) => void; } export default function LoginDialog({ onLoginSuccess }: LoginDialogProps) { const { showSuccess, showError } = useToast(); const [isOpen, setIsOpen] = useState(false); const [isLoading, setIsLoading] = useState(false); // Ketua Jurusan form state const [ketuaForm, setKetuaForm] = useState({ nip: "", password: "", }); // Admin form state const [adminForm, setAdminForm] = useState({ username: "", password: "", }); const handleKetuaLogin = async (e: React.FormEvent) => { e.preventDefault(); setIsLoading(true); try { const response = await fetch("/api/auth/login", { method: "POST", headers: { "Content-Type": "application/json", }, body: JSON.stringify({ nip: ketuaForm.nip, password: ketuaForm.password, role: "ketuajurusan", }), }); const data = await response.json(); if (response.ok) { showSuccess("Berhasil!", "Selamat datang, Ketua Jurusan!"); onLoginSuccess(data); setIsOpen(false); setKetuaForm({ nip: "", password: "" }); } else { showError("Gagal!", data.message || "NIP atau password salah"); } } catch (error) { showError("Gagal!", "Terjadi kesalahan saat login"); } finally { setIsLoading(false); } }; const handleAdminLogin = async (e: React.FormEvent) => { e.preventDefault(); setIsLoading(true); try { const response = await fetch("/api/auth/login", { method: "POST", headers: { "Content-Type": "application/json", }, body: JSON.stringify({ username: adminForm.username, password: adminForm.password, role: "admin", }), }); const data = await response.json(); if (response.ok) { showSuccess("Berhasil!", "Selamat datang, Admin!"); onLoginSuccess(data); setIsOpen(false); setAdminForm({ username: "", password: "" }); } else { showError("Gagal!", data.message || "Username atau password salah"); } } catch (error) { showError("Gagal!", "Terjadi kesalahan saat login"); } finally { setIsLoading(false); } }; return ( Login ke PODIF Ketua Jurusan Admin
setKetuaForm({ ...ketuaForm, nip: e.target.value })} required />
setKetuaForm({ ...ketuaForm, password: e.target.value })} required />
setAdminForm({ ...adminForm, username: e.target.value })} required />
setAdminForm({ ...adminForm, password: e.target.value })} required />
); }