'use client' import { useState } from 'react' import { useRouter } from 'next/navigation' import Link from 'next/link' import { loginUser } from '@/app/actions' import { Button } from '@/components/ui/button' import { Input } from '@/components/ui/input' import { LogIn, KeyRound, User, Loader2, Eye, EyeOff } from 'lucide-react' export default function LoginPage() { const router = useRouter() const [loading, setLoading] = useState(false) const [error, setError] = useState('') const [showPassword, setShowPassword] = useState(false) async function handleSubmit(e: React.FormEvent) { e.preventDefault() setLoading(true) setError('') const formData = new FormData(e.currentTarget) const username = (formData.get('username') as string).trim() const password = formData.get('password') as string if (!username || !password) { setError('Username dan Password wajib diisi') setLoading(false) return } const res = await loginUser(username, password) if (res.success) { const params = new URLSearchParams(window.location.search) const callbackUrl = params.get('callbackUrl') || '/' window.location.href = callbackUrl // Force hard reload to update context/middleware } else { setError(res.error || 'Gagal login') setLoading(false) } } return (
{/* Elegant Ambient Background */}
{/* Left Side: Branding (Hidden on Mobile) */}

Selamat Datang
di TitipIn

Platform modern dan terpercaya untuk mengelola pesanan jasa titip Anda dengan rapi, efisien, dan transparan.

A
B
C

Bergabung dengan ribuan
pengguna lainnya.

{/* Right Side: Form */}

TitipIn

Masuk ke Akun

Silakan masukkan kredensial Anda untuk melanjutkan

{error && (
{error}
)}

Belum punya akun?{' '}

© {new Date().getFullYear()} TitipIn - Sistem Titip Pesanan

) }