"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/use-toast"; import { LogIn, User, Key } from "lucide-react"; interface LoginDialogProps { onLoginSuccess: (userData: any) => void; } export default function LoginDialog({ onLoginSuccess }: LoginDialogProps) { const [isOpen, setIsOpen] = useState(false); const [isLoading, setIsLoading] = useState(false); const { toast } = useToast(); // 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) { toast({ title: "Login Berhasil", description: "Selamat datang, Ketua Jurusan!", }); onLoginSuccess(data); setIsOpen(false); setKetuaForm({ nip: "", password: "" }); } else { toast({ variant: "destructive", title: "Login Gagal", description: data.message || "NIP atau password salah", }); } } catch (error) { toast({ variant: "destructive", title: "Error", description: "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) { toast({ title: "Login Berhasil", description: "Selamat datang, Admin!", }); onLoginSuccess(data); setIsOpen(false); setAdminForm({ username: "", password: "" }); } else { toast({ variant: "destructive", title: "Login Gagal", description: data.message || "Username atau password salah", }); } } catch (error) { toast({ variant: "destructive", title: "Error", description: "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 />
); }