// frontend/app/page.jsx 'use client'; import { useEffect, useState } from 'react'; import Link from 'next/link'; import { useRouter } from 'next/navigation'; import { Button } from '@/components/ui/button'; import { Card, CardContent, CardHeader, CardTitle } from '@/components/ui/card'; import { Dialog, DialogTrigger, DialogContent, DialogHeader, DialogTitle, DialogDescription, } from '@/components/ui/dialog'; import { Label } from '@/components/ui/label'; import { Input } from '@/components/ui/input'; // 👉 ใช้ driver เดิมของโปรเจ็กต์ (relative path + credentials: 'include') import cookieDriver from '@/app/_auth/drivers/cookieDriver'; export default function HomePage() { const router = useRouter(); const [me, setMe] = useState(null); const [loading, setLoading] = useState(true); // dialog/login state const [open, setOpen] = useState(false); const [username, setUsername] = useState(''); const [password, setPassword] = useState(''); const [submitting, setSubmitting] = useState(false); const [err, setErr] = useState(''); // โหลดสถานะผู้ใช้แบบไม่ redirect useEffect(() => { let cancelled = false; (async () => { try { const res = await cookieDriver.me(); // ภายในยิง /api/auth/me ด้วย credentials: 'include' if (!cancelled && res && (res.user || res.username)) { const u = res.user ?? res; setMe(u); } } finally { if (!cancelled) setLoading(false); } })(); return () => { cancelled = true; }; }, []); async function onSubmit(e) { e?.preventDefault(); setErr(''); if (!username.trim() || !password) { setErr('กรอกชื่อผู้ใช้และรหัสผ่านให้ครบ'); return; } try { setSubmitting(true); const ok = await cookieDriver.login({ username, password }); // ยิง /api/auth/login แบบ relative if (!ok) { setErr('ชื่อผู้ใช้หรือรหัสผ่านไม่ถูกต้อง'); return; } // ตรวจ me อีกรอบให้ชัวร์ว่ามีคุกกี้แล้ว const res = await cookieDriver.me(); const u = res?.user ?? res ?? { username }; setMe(u); setOpen(false); router.push('/dashboard'); } catch { setErr('เชื่อมต่อเซิร์ฟเวอร์ไม่ได้'); } finally { setSubmitting(false); } } async function onLogout() { try { await cookieDriver.logout?.(); } catch {} setMe(null); } if (loading) { return (
{[...Array(3)].map((_, i) =>
)}
); } return (
{/* header */}

Welcome to DMS

{me ? ( <> สวัสดี, {me.first_name || me.username} ) : ( เข้าสู่ระบบ กรอกชื่อผู้ใช้และรหัสผ่านของคุณ
setUsername(e.target.value)} required />
setPassword(e.target.value)} required />
{err &&

{err}

}
)}
{/* เนื้อหาย่อก่อนเข้าดาชบอร์ด */}
📑 RFAs

📐 Drawings

📤 Transmittals

{!me && กรุณา Login ก่อน}
); }